Skip to content

Commit bc2f544

Browse files
author
Alvaro Denis
committed
Merge branch 'stdevAlDen_t353_improve_code_quality4hw_signer' into stdevAlDen_t255_hardware_wallet_operations ref #255
2 parents 9b54a17 + 1051dfe commit bc2f544

6 files changed

Lines changed: 39 additions & 177 deletions

File tree

src/coin/mocks/PersistibleSet.go

Lines changed: 0 additions & 127 deletions
This file was deleted.

src/coin/skycoin/models/wallet.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -825,11 +825,7 @@ func NewWalletDirectory(dirPath string) *WalletDirectory {
825825
type WalletDirectory struct {
826826
// Implements WallentEnv interface
827827
WalletDir string
828-
wltService core.PersistibleSet
829-
}
830-
831-
func (wd *WalletDirectory) SetWltService(wltSrv core.PersistibleSet) {
832-
wd.wltService = wltSrv
828+
wltService *SkycoinLocalWallet
833829
}
834830

835831
func lookupWallet(env core.WalletEnv, firstAddr string) (core.Wallet, error) {

src/core/wallet.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@ type WalletSet interface {
2424
SupportedWalletTypes() []string
2525
}
2626

27-
type PersistibleSet interface {
28-
WalletSet
29-
WalletStorage
30-
}
31-
3227
// WalletStorage provides access to the underlying wallets data store
3328
type WalletStorage interface {
3429
// Encrypt protects wallet data using cryptography

src/models/history/historyManager.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,8 @@ func (hm *HistoryManager) updateTxns() {
129129
logHistoryManager.Warn("Couldn't get address iterator")
130130
continue
131131
}
132-
var newTxnsFinded bool
132+
133133
for addressIterator.Next() {
134-
newTxnsFinded = false
135134
txnsIterator := addressIterator.Value().GetCryptoAccount().ListTransactions()
136135
if txnsIterator == nil {
137136
logHistoryManager.Warn("Couldn't get transaction iterator")
@@ -186,15 +185,10 @@ func (hm *HistoryManager) updateTxns() {
186185
if corrupted {
187186
continue
188187
}
189-
newTxnsFinded = true
188+
hm.NewTransactions()
190189
hm.txnFinded[txnsIterator.Value().GetId()] = struct{}{}
191190
}
192191
}
193-
if newTxnsFinded {
194-
models.Helper.RunInMain(func() {
195-
hm.NewTransactions()
196-
})
197-
}
198192

199193
}
200194
}

src/models/walletsManager.go

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,21 @@ type updateWalletInfo struct {
4343
}
4444
type WalletManager struct {
4545
qtCore.QObject
46-
WalletEnv core.WalletEnv
47-
SeedGenerator core.SeedGenerator
48-
wallets []*QWallet
49-
addresseseByWallets map[string](map[string]*QAddress)
50-
utilByWallets map[string]*utilByWallet
51-
markedAddress map[string]int
52-
outputsByAddress map[string][]*QOutput
53-
outputsByAddressMutex sync.Mutex
54-
altManager core.AltcoinManager
55-
signer core.BlockchainSignService
56-
transactionAPI core.BlockchainTransactionAPI
57-
walletsIterator core.WalletIterator
58-
updaterChannel chan *updateWalletInfo
59-
timerUpdate chan time.Duration
46+
WalletEnv core.WalletEnv
47+
SeedGenerator core.SeedGenerator
48+
wallets []*QWallet
49+
addresseseByWallets map[string](map[string]*QAddress)
50+
orderedAddressesByWallets map[string][]*QAddress
51+
utilByWallets map[string]*utilByWallet
52+
markedAddress map[string]int
53+
outputsByAddress map[string][]*QOutput
54+
outputsByAddressMutex sync.Mutex
55+
altManager core.AltcoinManager
56+
signer core.BlockchainSignService
57+
transactionAPI core.BlockchainTransactionAPI
58+
walletsIterator core.WalletIterator
59+
updaterChannel chan *updateWalletInfo
60+
timerUpdate chan time.Duration
6061

6162
_ func() `slot:"updateWalletEnvs"`
6263
_ func(wltId, address string) `slot:"updateOutputs"`
@@ -123,6 +124,7 @@ func (walletM *WalletManager) init() {
123124
walletM.ConnectEditMarkAddress(walletM.editMarkAddress)
124125
walletM.ConnectMarkFieldOfAddress(walletM.markFieldOfAddress)
125126
walletM.addresseseByWallets = make(map[string](map[string]*QAddress), 0)
127+
walletM.orderedAddressesByWallets = make(map[string][]*QAddress, 0)
126128
walletM.utilByWallets = make(map[string]*utilByWallet, 0)
127129
walletM.outputsByAddress = make(map[string][]*QOutput, 0)
128130
walletM.SeedGenerator = new(sky.SeedService)
@@ -295,7 +297,8 @@ func (walletM *WalletManager) updateWalletEnvs() {
295297
func (walletM *WalletManager) initWalletAddresses(wltId string) {
296298
logWalletManager.Info("Updating Addresses")
297299
wlt := walletM.WalletEnv.GetWalletSet().GetWallet(wltId)
298-
qAddresses := make(map[string]*QAddress, 0)
300+
qAddresses1 := make(map[string]*QAddress, 0)
301+
qAddresses2 := make([]*QAddress, 0)
299302
it, err := wlt.GetLoadedAddresses()
300303
if err != nil {
301304
logWalletManager.WithError(err).Warn("Couldn't loaded addresses")
@@ -313,25 +316,27 @@ func (walletM *WalletManager) initWalletAddresses(wltId string) {
313316
qAddress.SetAddressCoinHours("N/A")
314317
qml.QQmlEngine_SetObjectOwnership(qAddress, qml.QQmlEngine__CppOwnership)
315318

316-
//qAddresses = append(qAddresses, qAddress)
317-
qAddresses[addr.String()] = qAddress
319+
qAddresses2 = append(qAddresses2, qAddress)
320+
qAddresses1[addr.String()] = qAddress
318321
go walletM.getOutputs(wltId, addr.String())
319322
}
320323

321-
walletM.addresseseByWallets[wltId] = qAddresses
324+
walletM.addresseseByWallets[wltId] = qAddresses1
325+
walletM.orderedAddressesByWallets[wltId] = qAddresses2
322326

323327
}
324328

325329
func (walletM *WalletManager) updateAddresses(wltId string) {
326-
mutex := walletM.utilByWallets[wltId].m
330+
mutex := &walletM.utilByWallets[wltId].m
327331
sendChan := walletM.utilByWallets[wltId].sendChannel
328332
addresses, ok := walletM.addresseseByWallets[wltId]
329333
if !ok {
330334
walletM.addresseseByWallets[wltId] = make(map[string]*QAddress)
335+
walletM.orderedAddressesByWallets[wltId] = make([]*QAddress, 0)
331336
addresses = walletM.addresseseByWallets[wltId]
332337
}
333-
mutex.Lock()
334-
defer mutex.Unlock()
338+
(*mutex).Lock()
339+
defer (*mutex).Unlock()
335340
logWalletManager.Info("Updating Addresses")
336341
wlt := walletM.WalletEnv.GetWalletSet().GetWallet(wltId)
337342
if wlt == nil {
@@ -794,7 +799,6 @@ func (walletM *WalletManager) sendTo(wltId, destinationAddress, amount string) *
794799
}
795800
logWalletManager.Info("Transaction created")
796801
return qTxn
797-
798802
}
799803

800804
func (walletM *WalletManager) signTxn(wltIds, address []string, source string, tmpPwd interface{}, index []int, qTxn *QTransaction) *QTransaction {
@@ -857,7 +861,12 @@ func (walletM *WalletManager) signTxn(wltIds, address []string, source string, t
857861
logWalletManager.WithError(err).Warnf("No signer %s for wallet %v", source, wlts[0])
858862
return nil
859863
}
860-
if suid, err := signer.GetSignerUID(); err != nil && wlts[0].GetId() == string(suid) {
864+
signerUid, err := signer.GetSignerUID()
865+
if err != nil {
866+
logWalletManager.WithError(err).Errorln("unable to ger signer uuid")
867+
return nil
868+
}
869+
if wlts[0].GetId() == string(signerUid) {
861870
// NOTE the signer is the wallet it self
862871
signer = nil
863872
}
@@ -1071,16 +1080,13 @@ func (walletM *WalletManager) editWallet(id, label string) *QWallet {
10711080
}
10721081

10731082
func (walletM *WalletManager) getAddresses(Id string) []*QAddress {
1074-
addrs, ok := walletM.addresseseByWallets[Id]
1083+
addrs, ok := walletM.orderedAddressesByWallets[Id]
10751084
if !ok {
10761085
walletM.updateAddresses(Id)
1077-
addrs = walletM.addresseseByWallets[Id]
1078-
}
1079-
addresses := make([]*QAddress, 0)
1080-
for _, addr := range addrs {
1081-
addresses = append(addresses, addr)
1086+
addrs = walletM.orderedAddressesByWallets[Id]
10821087
}
1083-
return addresses
1088+
1089+
return addrs
10841090
}
10851091

10861092
func fromWalletToQWallet(wlt core.Wallet, isEncrypted, withoutBalance bool) *QWallet {

src/models/walletsModel.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,8 +324,6 @@ func (walletModel *WalletModel) data(index *core.QModelIndex, role int) *core.QV
324324
}
325325
return false
326326
}
327-
// FIXME: consider a double checking here instead of hadHwConnected
328-
// be careful this can have a big performance impact
329327
return core.NewQVariant1(valInSlice())
330328
}
331329
case Expand:

0 commit comments

Comments
 (0)