use large account bal in unit tests #360

Merged
telackey merged 4 commits from ian/v4_dev into v1.11.5-statediff-v4 2023-04-05 22:51:08 +00:00
4 changed files with 21 additions and 7 deletions

3
go.mod
View File

@ -78,10 +78,12 @@ require (
require (
github.com/georgysavva/scany v1.2.1
github.com/jackc/pgtype v1.8.1
github.com/jmoiron/sqlx v1.3.5
github.com/lib/pq v1.10.7
github.com/multiformats/go-multihash v0.0.15
github.com/pganalyze/pg_query_go/v2 v2.2.0
github.com/shopspring/decimal v1.2.0
github.com/thoas/go-funk v0.9.3
)
@ -123,7 +125,6 @@ require (
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgproto3/v2 v2.1.1 // indirect
github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect
github.com/jackc/pgtype v1.8.1 // indirect
github.com/jackc/puddle v1.1.3 // indirect
github.com/jbenet/goprocess v0.1.4 // indirect
github.com/klauspost/compress v1.15.15 // indirect

View File

@ -20,10 +20,13 @@ import (
"fmt"
"strconv"
"github.com/ethereum/go-ethereum/statediff/indexer/database/metrics"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/statediff/indexer/database/metrics"
"github.com/ethereum/go-ethereum/statediff/indexer/models"
"github.com/jackc/pgtype"
shopspring "github.com/jackc/pgtype/ext/shopspring-numeric"
"github.com/shopspring/decimal"
)
var (
@ -88,7 +91,7 @@ func (w *Writer) upsertTransactionCID(tx Tx, transaction models.TxModel) error {
return insertError{"eth.transaction_cids", err, "COPY", transaction}
}
value, err := strconv.ParseFloat(transaction.Value, 64)
value, err := toNumeric(transaction.Value)
if err != nil {
return insertError{"eth.transaction_cids", err, "COPY", transaction}
}
@ -234,7 +237,7 @@ func (w *Writer) upsertStateAccount(tx Tx, stateAccount models.StateAccountModel
if err != nil {
return insertError{"eth.state_accounts", err, "COPY", stateAccount}
}
balance, err := strconv.ParseFloat(stateAccount.Balance, 64)
balance, err := toNumeric(stateAccount.Balance)
if err != nil {
return insertError{"eth.state_accounts", err, "COPY", stateAccount}
}
@ -304,6 +307,15 @@ func toRow(args ...interface{}) []interface{} {
return row
}
func toNumeric(value string) (*shopspring.Numeric, error) {
decimalValue, err := decimal.NewFromString(value)
if nil != err {
return nil, err
}
return &shopspring.Numeric{Decimal: decimalValue, Status: pgtype.Present}, nil
}
// combine row (or rows) into a slice of rows for CopyFrom
func toRows(rows ...[]interface{}) [][]interface{} {
return rows

View File

@ -187,9 +187,10 @@ var (
AccountCodeHash = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470")
AccountLeafKey = test_helpers.Account2LeafKey
RemovedLeafKey = test_helpers.Account1LeafKey
Balance, _ = new(big.Int).SetString("106387458790507306766", 10)
Account, _ = rlp.EncodeToBytes(&types.StateAccount{
Nonce: nonce0,
Balance: big.NewInt(1000),
Balance: Balance,
CodeHash: AccountCodeHash.Bytes(),
Root: common.HexToHash(AccountRoot),
})

View File

@ -439,7 +439,7 @@ func TestPublishAndIndexStateIPLDs(t *testing.T, db sql.Database) {
BlockNumber: mocks.BlockNumber.String(),
HeaderID: account.HeaderID,
StatePath: stateNode.Path,
Balance: "1000",
Balance: mocks.Balance.String(),
CodeHash: mocks.AccountCodeHash.Bytes(),
StorageRoot: mocks.AccountRoot,
Nonce: 0,