From 9f80473f9131ea9dbd7639526c94a50477450449 Mon Sep 17 00:00:00 2001 From: Maykel Arias Torres Date: Mon, 14 Oct 2019 22:59:52 -0400 Subject: [PATCH] [src] refs #142 FInalized `src/coin` , `src/core`, `src/util` and `src/main`. --- .golangci.yml | 1 + Makefile | 3 +- src/coin/skycoin/main.go | 22 ++-- src/coin/skycoin/models/account.go | 7 +- src/coin/skycoin/models/blockchain.go | 2 +- src/coin/skycoin/models/coin.go | 16 ++- src/coin/skycoin/models/network.go | 4 +- src/coin/skycoin/models/networking.go | 5 +- src/coin/skycoin/models/wallet.go | 143 +++++++++++++++++++------- src/coin/skycoin/params.go | 27 ----- src/coin/skycoin/params/params.go | 3 +- src/core/network.go | 4 +- src/main/config.go | 22 +++- src/util/pluginutil.go | 3 +- src/util/util.go | 2 +- 15 files changed, 165 insertions(+), 99 deletions(-) delete mode 100644 src/coin/skycoin/params.go diff --git a/.golangci.yml b/.golangci.yml index 7110ec10..5d2f546a 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -25,6 +25,7 @@ run: # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ skip-dirs: - /usr/local/go/src + - src/models # which files to skip: they will be analyzed, but issues from them # won't be reported. Default value is empty list, but there is diff --git a/Makefile b/Makefile index 9694e10b..38369b11 100644 --- a/Makefile +++ b/Makefile @@ -81,9 +81,8 @@ install-linters: ## Install linters cat ./.travis/install-golangci-lint.sh | sh -s -- -b $(GOPATH)/bin v1.10.2 lint: ## Run linters. Use make install-linters first. - # vendorcheck ./... # src needs separate linting rules -# golangci-lint run -c .golangci.yml ./src/... + golangci-lint run -c .golangci.yml ./src/... help: @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/src/coin/skycoin/main.go b/src/coin/skycoin/main.go index fab8cf71..b310eb73 100644 --- a/src/coin/skycoin/main.go +++ b/src/coin/skycoin/main.go @@ -18,23 +18,23 @@ type SkyFiberPlugin struct { func (p *SkyFiberPlugin) ListSupportedAltcoins() []core.AltcoinMetadata { return []core.AltcoinMetadata{ core.AltcoinMetadata{ - Name: SkycoinName, - Ticker: SkycoinTicker, - Family: SkycoinFamily, + Name: params.SkycoinName, + Ticker: params.SkycoinTicker, + Family: params.SkycoinFamily, HasBip44: false, Accuracy: 6, }, core.AltcoinMetadata{ - Name: CoinHoursName, - Ticker: CoinHoursTicker, - Family: CoinHoursFamily, + Name: params.CoinHoursName, + Ticker: params.CoinHoursTicker, + Family: params.CoinHoursFamily, HasBip44: false, Accuracy: 0, }, core.AltcoinMetadata{ - Name: CalculatedHoursName, - Ticker: CalculatedHoursTicker, - Family: CalculatedHoursFamily, + Name: params.CalculatedHoursName, + Ticker: params.CalculatedHoursTicker, + Family: params.CalculatedHoursFamily, HasBip44: false, Accuracy: 0, }, @@ -42,7 +42,7 @@ func (p *SkyFiberPlugin) ListSupportedAltcoins() []core.AltcoinMetadata { } func (p *SkyFiberPlugin) ListSupportedFamilies() []string { - return []string{SkycoinFamily} + return []string{params.SkycoinFamily} } func (p *SkyFiberPlugin) RegisterTo(manager core.AltcoinManager) { @@ -99,5 +99,5 @@ func NewSkyFiberPlugin(params params.SkyFiberParams) core.AltcoinPlugin { func init() { cf := local.GetConfigManager() core.GetMultiPool().CreateSection(sky.PoolSection, sky.NewSkycoinConnectionFactory(cf.GetNode())) - util.RegisterAltcoin(NewSkyFiberPlugin(SkycoinMainNetParams)) + util.RegisterAltcoin(NewSkyFiberPlugin(params.SkycoinMainNetParams)) } diff --git a/src/coin/skycoin/models/account.go b/src/coin/skycoin/models/account.go index d478fbc8..a52d7ccd 100644 --- a/src/coin/skycoin/models/account.go +++ b/src/coin/skycoin/models/account.go @@ -6,11 +6,11 @@ import ( "strconv" "github.com/fibercrypto/FiberCryptoWallet/src/core" + "github.com/fibercrypto/FiberCryptoWallet/src/util" "github.com/skycoin/skycoin/src/cli" "github.com/skycoin/skycoin/src/readable" "github.com/skycoin/skycoin/src/util/droplet" "github.com/skycoin/skycoin/src/wallet" - "github.com/fibercrypto/FiberCryptoWallet/src/util" ) func (addr *SkycoinAddress) GetBalance(ticker string) (uint64, error) { @@ -95,7 +95,7 @@ func (addr *SkycoinAddress) ListTransactions() core.TransactionIterator { } func (addr *SkycoinAddress) ListPendingTransactions() (core.TransactionIterator, error) { //------TODO - return nil,nil + return nil, nil } func (wlt *RemoteWallet) GetBalance(ticker string) (uint64, error) { @@ -196,6 +196,9 @@ func (wlt *LocalWallet) GetBalance(ticker string) (uint64, error) { } bl, err := getBalanceOfAddresses(outs, addrs) + if err != nil { + return 0, err + } if ticker == Sky { flSky, err := strconv.ParseFloat(bl.Confirmed.Coins, 64) diff --git a/src/coin/skycoin/models/blockchain.go b/src/coin/skycoin/models/blockchain.go index dcff56bf..aca7f8f1 100644 --- a/src/coin/skycoin/models/blockchain.go +++ b/src/coin/skycoin/models/blockchain.go @@ -75,7 +75,7 @@ type SkycoinBlockchainInfo struct { } type SkycoinBlockchainStatus struct { //Implements BlockchainStatus interface - lastTimeStatusRequested uint64 + lastTimeStatusRequested uint64 //nolint structcheck TODO: Not used lastTimeSupplyRequested uint64 CacheTime uint64 cachedStatus *SkycoinBlockchainInfo diff --git a/src/coin/skycoin/models/coin.go b/src/coin/skycoin/models/coin.go index 5472b6f9..ee18740b 100644 --- a/src/coin/skycoin/models/coin.go +++ b/src/coin/skycoin/models/coin.go @@ -5,12 +5,12 @@ import ( "strconv" "time" - "github.com/skycoin/skycoin/src/cipher" - "github.com/skycoin/skycoin/src/visor" - "github.com/skycoin/skycoin/src/coin" "github.com/fibercrypto/FiberCryptoWallet/src/core" "github.com/fibercrypto/FiberCryptoWallet/src/util" + "github.com/skycoin/skycoin/src/cipher" + "github.com/skycoin/skycoin/src/coin" "github.com/skycoin/skycoin/src/readable" + "github.com/skycoin/skycoin/src/visor" ) /* @@ -279,7 +279,10 @@ func (txn *SkycoinTransaction) GetStatus() core.TransactionStatus { return 0 } defer core.GetMultiPool().Return(PoolSection, c) - txnU, _ := c.Transaction(txn.skyTxn.Hash) + txnU, err := c.Transaction(txn.skyTxn.Hash) + if err != nil { + return 0 + } if txnU.Status.Confirmed { txn.status = core.TXN_STATUS_CONFIRMED return txn.status @@ -417,7 +420,10 @@ func (in *SkycoinTransactionInput) GetSpentOutput() core.TransactionOutput { if err != nil { return nil } - skyAccuracy, _ := util.AltcoinQuotient("SKY") + skyAccuracy, err := util.AltcoinQuotient("SKY") + if err != nil { + return nil + } skyOut := &SkycoinTransactionOutput{ skyOut: readable.TransactionOutput{ diff --git a/src/coin/skycoin/models/network.go b/src/coin/skycoin/models/network.go index 9008d6ba..f518ee70 100644 --- a/src/coin/skycoin/models/network.go +++ b/src/coin/skycoin/models/network.go @@ -34,7 +34,7 @@ func NewSkycoinApiClient(section string) (*api.Client, error) { if err != nil { for _, ok := err.(core.NotAvailableObjectsError); ok; _, ok = err.(core.NotAvailableObjectsError) { - obj, err = pool.Get(section) + _, err = pool.Get(section) if err == nil { break } @@ -44,7 +44,7 @@ func NewSkycoinApiClient(section string) (*api.Client, error) { skyApi, ok := obj.(*api.Client) if !ok { - return nil, errors.New(fmt.Sprintf("There is not propers client in %s pool", section)) + return nil, fmt.Errorf("There is not propers client in %s pool", section) } return skyApi, nil } diff --git a/src/coin/skycoin/models/networking.go b/src/coin/skycoin/models/networking.go index 9d445da1..559f95b8 100644 --- a/src/coin/skycoin/models/networking.go +++ b/src/coin/skycoin/models/networking.go @@ -28,10 +28,7 @@ func (it *SkycoinPexNodeIterator) Next() bool { } func (it *SkycoinPexNodeIterator) HasNext() bool { - if (it.current + 1) >= len(it.networks) { - return false - } - return true + return !((it.current + 1) >= len(it.networks)) } func NewSkycoinPexNodeIterator(network []core.PexNode) *SkycoinPexNodeIterator { diff --git a/src/coin/skycoin/models/wallet.go b/src/coin/skycoin/models/wallet.go index 8902cbaa..752d314e 100644 --- a/src/coin/skycoin/models/wallet.go +++ b/src/coin/skycoin/models/wallet.go @@ -57,10 +57,7 @@ func (it *SkycoinWalletIterator) Next() bool { } func (it *SkycoinWalletIterator) HasNext() bool { - if (it.current + 1) >= len(it.wallets) { - return false - } - return true + return !((it.current + 1) >= len(it.wallets)) } func NewSkycoinWalletIterator(wallets []core.Wallet) *SkycoinWalletIterator { @@ -78,7 +75,10 @@ func (wltSrv *SkycoinRemoteWallet) ListWallets() core.WalletIterator { if err != nil { return nil } - defer core.GetMultiPool().Return(wltSrv.poolSection, c) + err = core.GetMultiPool().Return(wltSrv.poolSection, c) + if err != nil { + return nil + } wlts, err := c.Wallets() if err != nil { @@ -95,14 +95,20 @@ func (wltSrv *SkycoinRemoteWallet) ListWallets() core.WalletIterator { } func (wltSrv *SkycoinRemoteWallet) CreateWallet(label string, seed string, IsEncrypted bool, pwd core.PasswordReader, scanAddressesN int) (core.Wallet, error) { - wlt := &RemoteWallet{} + wlt := &RemoteWallet{} //nolint megacheck False negative c, err := NewSkycoinApiClient(wltSrv.poolSection) if err != nil { return nil, err } - defer core.GetMultiPool().Return(wltSrv.poolSection, c) + err = core.GetMultiPool().Return(wltSrv.poolSection, c) + if err != nil { + return nil, err + } if IsEncrypted { - password, _ := pwd("Enter your password") + password, err := pwd("Enter your password") + if err != nil { + return nil, err + } wltOpt := api.CreateWalletOptions{} wltOpt.Type = WalletTypeDeterministic wltOpt.Seed = seed @@ -139,8 +145,14 @@ func (wltSrv *SkycoinRemoteWallet) Encrypt(walletName string, pwd core.PasswordR if err != nil { return } - defer core.GetMultiPool().Return(wltSrv.poolSection, c) - password, _ := pwd("Insert password") + err = core.GetMultiPool().Return(wltSrv.poolSection, c) + if err != nil { + return + } + password, err := pwd("Insert password") + if err != nil { + return + } _, err = c.EncryptWallet(walletName, password) if err != nil { return @@ -152,8 +164,14 @@ func (wltSrv *SkycoinRemoteWallet) Decrypt(walletName string, pwd core.PasswordR if err != nil { return } - defer core.GetMultiPool().Return(wltSrv.poolSection, c) - password, _ := pwd("Insert password") + err = core.GetMultiPool().Return(wltSrv.poolSection, c) + if err != nil { + return + } + password, err := pwd("Insert password") + if err != nil { + return + } _, err = c.DecryptWallet(walletName, password) if err != nil { return @@ -165,7 +183,10 @@ func (wltSrv *SkycoinRemoteWallet) IsEncrypted(walletName string) (bool, error) if err != nil { return false, err } - defer core.GetMultiPool().Return(wltSrv.poolSection, c) + err = core.GetMultiPool().Return(wltSrv.poolSection, c) + if err != nil { + return false, err + } wlt, err := c.Wallet(walletName) if err != nil { return false, err @@ -177,7 +198,10 @@ func (wltSrv *SkycoinRemoteWallet) GetWallet(id string) core.Wallet { if err != nil { return nil } - defer core.GetMultiPool().Return(wltSrv.poolSection, c) + err = core.GetMultiPool().Return(wltSrv.poolSection, c) + if err != nil { + return nil + } wltR, err := c.Wallet(id) if err != nil { return nil @@ -193,7 +217,7 @@ func NewWalletNode(nodeAddress string) *WalletNode { sections := pool.ListSections() cont := 1 var sect string - for true { + for { find := false sect = fmt.Sprintf("skycoin-%d", cont) for _, sec := range sections { @@ -288,7 +312,10 @@ func (wlt *RemoteWallet) Sign(txn core.Transaction, source string, pwd core.Pass logrus.Warn(err) return nil, err } - defer core.GetMultiPool().Return(PoolSection, client) + err = core.GetMultiPool().Return(PoolSection, client) + if err != nil { + return nil, err + } unInjectedTransaction, ok := txn.(*SkycoinUninjectedTransaction) if !ok { logrus.Warn(err) @@ -345,8 +372,14 @@ func (wlt *RemoteWallet) SetLabel(name string) { return } - defer core.GetMultiPool().Return(wlt.poolSection, c) - _ = c.UpdateWallet(wlt.Id, name) + err = core.GetMultiPool().Return(wlt.poolSection, c) + if err != nil { + return + } + err = c.UpdateWallet(wlt.Id, name) + if err != nil { + return + } } func (wlt *RemoteWallet) GetId() string { @@ -369,7 +402,10 @@ func (wlt *RemoteWallet) Transfer(to core.Address, amount uint64, options core.K if err != nil { return nil, err } - defer core.GetMultiPool().Return(wlt.poolSection, client) + err = core.GetMultiPool().Return(wlt.poolSection, client) + if err != nil { + return nil, err + } txnResponse, err := client.WalletCreateTransaction(req) if err != nil { @@ -476,7 +512,10 @@ func (wlt RemoteWallet) SendFromAddress(from []core.Address, to []core.Transacti if err != nil { return nil, err } - defer core.GetMultiPool().Return(wlt.poolSection, client) + err = core.GetMultiPool().Return(wlt.poolSection, client) + if err != nil { + return nil, err + } txnResponse, err := client.WalletCreateTransaction(req) if err != nil { @@ -499,7 +538,10 @@ func (wlt *RemoteWallet) Spend(unspent, new []core.TransactionOutput, change cor if err != nil { return nil, err } - defer core.GetMultiPool().Return(wlt.poolSection, client) + err = core.GetMultiPool().Return(wlt.poolSection, client) + if err != nil { + return nil, err + } txnResponse, err := client.WalletCreateTransaction(req) if err != nil { @@ -517,8 +559,14 @@ func (wlt *RemoteWallet) GenAddresses(addrType core.AddressType, startIndex, cou if err != nil { return nil } - defer core.GetMultiPool().Return(wlt.poolSection, c) - password, _ := pwd("Insert password") + err = core.GetMultiPool().Return(wlt.poolSection, c) + if err != nil { + return nil + } + password, err := pwd("Insert password") + if err != nil { + return nil + } wltR, err := c.Wallet(wlt.Id) if err != nil { return nil @@ -527,7 +575,7 @@ func (wlt *RemoteWallet) GenAddresses(addrType core.AddressType, startIndex, cou for _, entry := range wltR.Entries[startIndex:int(util.Min(len(wltR.Entries), int(startIndex+count)))] { addresses = append(addresses, walletEntryToAddress(entry, wlt.poolSection)) } - //Checking if all the neccesary addresses exists + //Checking if all the necessary addresses exists if uint32(len(wltR.Entries)) < (startIndex + count) { difference := (startIndex + count) - uint32(len(wltR.Entries)) newAddrs, err := c.NewWalletAddress(wlt.Id, int(difference), password) @@ -552,7 +600,10 @@ func (wlt *RemoteWallet) GetLoadedAddresses() (core.AddressIterator, error) { if err != nil { return nil, err } - defer core.GetMultiPool().Return(wlt.poolSection, c) + err = core.GetMultiPool().Return(wlt.poolSection, c) + if err != nil { + return nil, err + } wltR, err := c.Wallet(wlt.Id) if err != nil { return nil, err @@ -653,7 +704,11 @@ func (wltSrv *SkycoinLocalWallet) GetWallet(id string) core.Wallet { } func (wltSrv *SkycoinLocalWallet) CreateWallet(label string, seed string, IsEncrypted bool, pwd core.PasswordReader, scanAddressesN int) (core.Wallet, error) { - password, _ := pwd("Insert Password") + password, err := pwd("Insert Password") + + if err != nil { + return nil, err + } passwordByte := []byte(password) opts := wallet.Options{ @@ -665,7 +720,6 @@ func (wltSrv *SkycoinLocalWallet) CreateWallet(label string, seed string, IsEncr } wltName := wltSrv.newUnicWalletFilename() var wlt wallet.Wallet - var err error if scanAddressesN > 0 { wlt, err = wallet.NewWalletScanAhead(wltName, opts, &TransactionFinder{}) if err != nil { @@ -719,7 +773,10 @@ func (wltSrv *SkycoinLocalWallet) Encrypt(walletName string, password core.Passw return } - pwd, _ := password("Insert Password") + pwd, err := password("Insert Password") + if err != nil { + return + } pwdBytes := []byte(pwd) if err := wallet.Lock(wlt, pwdBytes, "scrypt-chacha20poly1305"); err != nil { @@ -742,6 +799,9 @@ func (wltSrv *SkycoinLocalWallet) Decrypt(walletName string, password core.Passw return } pwd, err := password("Insert Password") + if err != nil { + return + } pwdBytes := []byte(pwd) unlockedWallet, err := wallet.Unlock(wlt, pwdBytes) @@ -751,8 +811,6 @@ func (wltSrv *SkycoinLocalWallet) Decrypt(walletName string, password core.Passw if err := wallet.Save(unlockedWallet, wltSrv.walletDir); err != nil { return } - return - } func (wltSrv *SkycoinLocalWallet) IsEncrypted(walletName string) (bool, error) { @@ -778,7 +836,10 @@ func (tf *TransactionFinder) AddressesActivity(addresses []cipher.Address) ([]bo if err != nil { return nil, err } - defer core.GetMultiPool().Return(PoolSection, c) + err = core.GetMultiPool().Return(PoolSection, c) + if err != nil { + return nil, err + } for i := 0; i < len(addrs); i++ { txn, err := c.Transactions([]string{addrs[i]}) @@ -806,7 +867,10 @@ func (wlt LocalWallet) Sign(Txn core.Transaction, source string, pwd core.Passwo if err != nil { return nil, err } - defer core.GetMultiPool().Return(PoolSection, clt) + err = core.GetMultiPool().Return(PoolSection, clt) + if err != nil { + return nil, err + } unTxn, ok := Txn.(*SkycoinUninjectedTransaction) if !ok { @@ -931,7 +995,10 @@ func (wlt *LocalWallet) Transfer(to core.Address, amount uint64, options core.Ke if err != nil { return nil, err } - defer core.GetMultiPool().Return(PoolSection, client) + err = core.GetMultiPool().Return(PoolSection, client) + if err != nil { + return nil, err + } txnR, err := client.CreateTransaction(*txnReq) if err != nil { return nil, err @@ -949,7 +1016,10 @@ func (wlt LocalWallet) SendFromAddress(from []core.Address, to []core.Transactio if err != nil { return nil, err } - defer core.GetMultiPool().Return(PoolSection, client) + err = core.GetMultiPool().Return(PoolSection, client) + if err != nil { + return nil, err + } txnR, err := client.CreateTransaction(*txnReq) if err != nil { return nil, err @@ -967,7 +1037,10 @@ func (wlt LocalWallet) Spend(unspent, new []core.TransactionOutput, change core. if err != nil { return nil, err } - defer core.GetMultiPool().Return(PoolSection, client) + err = core.GetMultiPool().Return(PoolSection, client) + if err != nil { + return nil, err + } txnR, err := client.CreateTransaction(*txnReq) if err != nil { return nil, err diff --git a/src/coin/skycoin/params.go b/src/coin/skycoin/params.go deleted file mode 100644 index 1f52de3f..00000000 --- a/src/coin/skycoin/params.go +++ /dev/null @@ -1,27 +0,0 @@ -package skycoin - -import ( - "github.com/fibercrypto/FiberCryptoWallet/src/coin/skycoin/params" - skyparams "github.com/skycoin/skycoin/src/params" -) - -var ( - SkycoinMainNetParams = params.SkyFiberParams{ - Distribution: skyparams.MainNetDistribution, - } -) - -const ( - SkycoinTicker = params.SkycoinTicker - SkycoinName = params.SkycoinName - SkycoinFamily = params.SkycoinFamily - SkycoinDescription = params.SkycoinDescription - CoinHoursTicker = params.CoinHoursTicker - CoinHoursName = params.CoinHoursName - CoinHoursFamily = params.CoinHoursFamily - CoinHoursDescription = params.CoinHoursDescription - CalculatedHoursTicker = params.CalculatedHoursTicker - CalculatedHoursName = params.CalculatedHoursName - CalculatedHoursFamily = params.CalculatedHoursFamily - CalculatedHoursDescription = params.CalculatedHoursDescription -) diff --git a/src/coin/skycoin/params/params.go b/src/coin/skycoin/params/params.go index 8be1975f..3ecb12e4 100644 --- a/src/coin/skycoin/params/params.go +++ b/src/coin/skycoin/params/params.go @@ -14,6 +14,7 @@ var ( } ) +// Constparams const ( SkycoinTicker = "SKY" SkycoinName = "Skycoin" @@ -24,7 +25,7 @@ const ( CoinHoursFamily = "SkyFiber" CoinHoursDescription = "Coin Hours is the parallel asset used for transaction fee, for creating scarcity, and to increase transaction privacy" CalculatedHoursTicker = "SKYCHC" - CalculatedHoursName = "Calculated Hours" + CalculatedHoursName = "Calculated Hours" CalculatedHoursFamily = "SkyFiber" CalculatedHoursDescription = "Calculated Hours are Coin Hours calculated considering the time since an output was created" ) diff --git a/src/core/network.go b/src/core/network.go index 3fe5733f..bf3738f9 100644 --- a/src/core/network.go +++ b/src/core/network.go @@ -94,13 +94,13 @@ func (mp *MultiConnectionsPool) Get(poolSection string) (PooledObject, error) { func (mp *MultiConnectionsPool) Return(poolSection string, obj PooledObject) error { mutex, ok := mp.mutexs[poolSection] if !ok { - return errors.New(fmt.Sprintf("There is not exist %s poolSection", poolSection)) + return fmt.Errorf("There is not exist %s poolSection", poolSection) } mutex.Lock() defer mutex.Unlock() index := findIndex(mp.inUse[poolSection], obj) if index == -1 { - return errors.New(fmt.Sprintf("That object is no from this pool")) + return fmt.Errorf("That object is no from this pool") } mp.available[poolSection] = append(mp.available[poolSection], obj) mp.inUse[poolSection] = append(mp.inUse[poolSection][:index], mp.inUse[poolSection][index+1:]...) diff --git a/src/main/config.go b/src/main/config.go index f53ac880..bb467379 100644 --- a/src/main/config.go +++ b/src/main/config.go @@ -93,7 +93,10 @@ func (cm *ConfigManager) EditNode(node string) { func (cm *ConfigManager) Save() error { - jsonFormat, _ := json.Marshal(cm.getConfigManagerJson()) + jsonFormat, err := json.Marshal(cm.getConfigManagerJson()) + if err != nil { + return err + } return ioutil.WriteFile(getConfigFileDir(), jsonFormat, 0644) } @@ -168,7 +171,7 @@ func configFileExist() bool { func loadConfigFromFile() *ConfigManager { cm := new(configManagerJson) fileDir := getConfigFileDir() - dat, err := ioutil.ReadFile(fileDir) + dat, err := ioutil.ReadFile(fileDir) //nolint gosec if err != nil { @@ -196,11 +199,20 @@ func getDefaultConfigManager() *ConfigManager { cm.node = "https://staging.node.skycoin.net" cm.sourceList = []*WalletSource{getDefaultWalletSource()} - jsonFormat, _ := json.Marshal(cm.getConfigManagerJson()) + jsonFormat, err := json.Marshal(cm.getConfigManagerJson()) + if err != nil { + return nil + } - os.MkdirAll(filepath.Dir(getConfigFileDir()), 0755) + err = os.MkdirAll(filepath.Dir(getConfigFileDir()), 0750) + if err != nil { + return nil + } - ioutil.WriteFile(getConfigFileDir(), jsonFormat, 0644) + err = ioutil.WriteFile(getConfigFileDir(), jsonFormat, 0644) + if err != nil { + return nil + } return cm diff --git a/src/util/pluginutil.go b/src/util/pluginutil.go index d563ed97..71d3fa55 100644 --- a/src/util/pluginutil.go +++ b/src/util/pluginutil.go @@ -1,8 +1,9 @@ package util import ( - "math" "errors" + "math" + "github.com/fibercrypto/FiberCryptoWallet/src/core" ) diff --git a/src/util/util.go b/src/util/util.go index 93fd42c1..c6d600ab 100644 --- a/src/util/util.go +++ b/src/util/util.go @@ -64,7 +64,7 @@ func FormatCoins(n uint64, quotient uint64) string { func RemoveZeros(s string) string { index := 0 temp := 0 - for true { + for { temp = index for _, c := range s[index:] { if string(c) != "0" {