From 5c74b6b27b68ac7812781b2227c13c879219f604 Mon Sep 17 00:00:00 2001 From: Mauricio Perdomo Date: Mon, 10 Feb 2020 13:35:00 -0500 Subject: [PATCH 1/2] [models] Change TransactionDetailsFromCoreTxn function for don't use info from model objects --- src/models/history/historyManager.go | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/models/history/historyManager.go b/src/models/history/historyManager.go index 22b1e0dd..4a207ffb 100644 --- a/src/models/history/historyManager.go +++ b/src/models/history/historyManager.go @@ -509,28 +509,33 @@ func TransactionDetailsFromCoreTxn(txn core.Transaction, addresses map[string]st for _, addr := range ins { inFind[addr.Address()] = struct{}{} } - outs := outputs.Addresses() - for _, addr := range outs { - _, ok := inFind[addr.Address()] + //outs := outputs.Addresses() + for _, addr := range txn.GetOutputs() { + _, ok := inFind[addr.GetAddress().String()] if !ok { - hours, err := strconv.ParseUint(addr.AddressCoinHours(), 10, 64) + hours, err := addr.GetCoins(params.CoinHoursTicker) //strconv.ParseUint(addr.AddressCoinHours(), 10, 64) if err != nil { logHistoryManager.WithError(err).Warn("Couldn't parse Coin Hours from address") return nil, err } traspassedHoursMoved += hours - skyFloat, err := strconv.ParseFloat(addr.AddressSky(), 64) + //skyFloat, err := strconv.ParseFloat(addr.AddressSky(), 64) + //if err != nil { + // logHistoryManager.WithError(err).Warn("Couldn't parse Skycoins from addresses") + // return nil, err + //} + //accuracy, err := util.AltcoinQuotient(params.SkycoinTicker) + //if err != nil { + // logHistoryManager.WithError(err).Warn("Couldn't get Skycoins quotient") + // return nil, err + //} + //sky := uint64(skyFloat * float64(accuracy)) + sky, err := addr.GetCoins(params.SkycoinTicker) if err != nil { - logHistoryManager.WithError(err).Warn("Couldn't parse Skycoins from addresses") + logHistoryManager.WithError(err).Error("Couldn't get Sky from address") return nil, err } - accuracy, err := util.AltcoinQuotient(params.SkycoinTicker) - if err != nil { - logHistoryManager.WithError(err).Warn("Couldn't get Skycoins quotient") - return nil, err - } - sky := uint64(skyFloat * float64(accuracy)) - skyAmountMoved += sky + skyAmountMoved += sky //addr.GetCoins(params.SkycoinTicker) } } From e197dff7682be5179c0aa442dc2a1546e8ad5241 Mon Sep 17 00:00:00 2001 From: Mauricio Perdomo Date: Mon, 10 Feb 2020 14:09:28 -0500 Subject: [PATCH 2/2] [models] Change TransactionDetailsFromCoreTxn function for don't functions of strconv package and use FormatCoins instead --- src/models/history/historyManager.go | 35 +++++----------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/src/models/history/historyManager.go b/src/models/history/historyManager.go index 4a207ffb..40364337 100644 --- a/src/models/history/historyManager.go +++ b/src/models/history/historyManager.go @@ -1,7 +1,6 @@ package history import ( - "strconv" "time" "github.com/fibercrypto/fibercryptowallet/src/coin/skycoin/config" @@ -82,7 +81,6 @@ func (hm *HistoryManager) init() { case <-uptimeTicker.C: logHistoryManager.Debug("Updating history") go hm.updateTxns() - //go hm.reviewForNew() } historyManager = hm } @@ -363,8 +361,7 @@ func TransactionDetailsFromCoreTxn(txn core.Transaction, addresses map[string]st return nil, err } - skyFloat := float64(skyUint64) / float64(accuracy) - qIn.SetAddressSky(strconv.FormatFloat(skyFloat, 'f', -1, 64)) + qIn.SetAddressSky(util.FormatCoins(skyUint64, accuracy)) chUint64, err := in.GetCoins(params.CalculatedHoursTicker) if err != nil { logHistoryManager.WithError(err).Warn("Couldn't get Coin Hours balance") @@ -489,14 +486,12 @@ func TransactionDetailsFromCoreTxn(txn core.Transaction, addresses map[string]st return nil, err } txnDetails.SetHoursTraspassed(util.FormatCoins(traspassedHoursIn, accuracy)) - val := float64(skyAmountIn) accuracy, err = util.AltcoinQuotient(params.SkycoinTicker) if err != nil { logHistoryManager.WithError(err).Warn("Couldn't get Skycoins quotient") return nil, err } - val = val / float64(accuracy) - txnDetails.SetAmount(strconv.FormatFloat(val, 'f', -1, 64)) + txnDetails.SetAmount(util.FormatCoins(skyAmountIn, accuracy)) } case transactions.TransactionTypeInternal: @@ -509,33 +504,21 @@ func TransactionDetailsFromCoreTxn(txn core.Transaction, addresses map[string]st for _, addr := range ins { inFind[addr.Address()] = struct{}{} } - //outs := outputs.Addresses() for _, addr := range txn.GetOutputs() { _, ok := inFind[addr.GetAddress().String()] if !ok { - hours, err := addr.GetCoins(params.CoinHoursTicker) //strconv.ParseUint(addr.AddressCoinHours(), 10, 64) + hours, err := addr.GetCoins(params.CoinHoursTicker) if err != nil { logHistoryManager.WithError(err).Warn("Couldn't parse Coin Hours from address") return nil, err } traspassedHoursMoved += hours - //skyFloat, err := strconv.ParseFloat(addr.AddressSky(), 64) - //if err != nil { - // logHistoryManager.WithError(err).Warn("Couldn't parse Skycoins from addresses") - // return nil, err - //} - //accuracy, err := util.AltcoinQuotient(params.SkycoinTicker) - //if err != nil { - // logHistoryManager.WithError(err).Warn("Couldn't get Skycoins quotient") - // return nil, err - //} - //sky := uint64(skyFloat * float64(accuracy)) sky, err := addr.GetCoins(params.SkycoinTicker) if err != nil { logHistoryManager.WithError(err).Error("Couldn't get Sky from address") return nil, err } - skyAmountMoved += sky //addr.GetCoins(params.SkycoinTicker) + skyAmountMoved += sky } } @@ -545,15 +528,12 @@ func TransactionDetailsFromCoreTxn(txn core.Transaction, addresses map[string]st return nil, err } txnDetails.SetHoursTraspassed(util.FormatCoins(traspassedHoursMoved, accuracy)) - val := float64(skyAmountMoved) - //FIXME: Error here is skipped accuracy, err = util.AltcoinQuotient(params.SkycoinTicker) if err != nil { logHistoryManager.WithError(err).Warn("Couldn't get Skycoins quotient") return nil, err } - val = val / float64(accuracy) - txnDetails.SetAmount(strconv.FormatFloat(val, 'f', -1, 64)) + txnDetails.SetAmount(util.FormatCoins(skyAmountMoved, accuracy)) } case transactions.TransactionTypeSend: @@ -564,15 +544,12 @@ func TransactionDetailsFromCoreTxn(txn core.Transaction, addresses map[string]st return nil, err } txnDetails.SetHoursTraspassed(util.FormatCoins(traspassedHoursOut, accuracy)) - val := float64(skyAmountOut) accuracy, err = util.AltcoinQuotient(params.SkycoinTicker) if err != nil { logHistoryManager.WithError(err).Warn("Couldn't get Skycoins quotient") return nil, err } - val = val / float64(accuracy) - txnDetails.SetAmount(strconv.FormatFloat(val, 'f', -1, 64)) - + txnDetails.SetAmount(util.FormatCoins(skyAmountOut, accuracy)) } } txnDetails.SetAddresses(txnAddresses)