From b3df7e1fa6c273dc8ef33646dbe4461366c44d86 Mon Sep 17 00:00:00 2001 From: Rongjian Lan Date: Thu, 26 Sep 2019 13:45:12 -0700 Subject: [PATCH 1/4] Add staking transaction struct and handler logic --- api/proto/node/node.go | 1 + node/node.go | 53 +++++++++++++++++++++++++--- node/node_cross_shard.go | 1 + node/node_handler.go | 18 ++++++++++ node/node_newblock.go | 6 ++-- node/worker/worker.go | 23 +++++++----- staking/types/messages.go | 30 ++++++++++++++++ staking/types/staking_transaction.go | 26 ++++++++++++++ staking/types/validator.go | 2 +- 9 files changed, 143 insertions(+), 17 deletions(-) create mode 100644 staking/types/messages.go create mode 100644 staking/types/staking_transaction.go diff --git a/api/proto/node/node.go b/api/proto/node/node.go index 916cbf001..d8c4b5024 100644 --- a/api/proto/node/node.go +++ b/api/proto/node/node.go @@ -28,6 +28,7 @@ const ( _ // used to be Control PING // node send ip/pki to register with leader ShardState + Staking ) // BlockchainSyncMessage is a struct for blockchain sync message. diff --git a/node/node.go b/node/node.go index 4d7b7a235..8eda30de1 100644 --- a/node/node.go +++ b/node/node.go @@ -6,6 +6,8 @@ import ( "sync" "time" + types2 "github.com/harmony-one/harmony/staking/types" + "github.com/ethereum/go-ethereum/common" "github.com/harmony-one/harmony/internal/params" @@ -126,6 +128,9 @@ type Node struct { pendingTxMutex sync.Mutex recentTxsStats types.RecentTxsStats + pendingStakingTransactions types2.StakingTransactions // All the staking transactions received but not yet processed for Consensus + pendingStakingTxMutex sync.Mutex + Worker *worker.Worker BeaconWorker *worker.Worker // worker for beacon chain @@ -255,6 +260,17 @@ func (node *Node) reducePendingTransactions() { } } +func (node *Node) reducePendingStakingTransactions() { + txPoolLimit := core.ShardingSchedule.MaxTxPoolSizeLimit() + curLen := len(node.pendingStakingTransactions) + + // If length of pendingStakingTransactions is greater than TxPoolLimit then by greedy take the TxPoolLimit recent transactions. + if curLen > txPoolLimit+txPoolLimit { + node.pendingStakingTransactions = append(types2.StakingTransactions(nil), node.pendingStakingTransactions[curLen-txPoolLimit:]...) + utils.Logger().Info().Msg("mem stat reduce pending staking transaction") + } +} + func (node *Node) tryBroadcast(tx *types.Transaction) { msg := proto_node.ConstructTransactionListMessageAccount(types.Transactions{tx}) @@ -279,6 +295,15 @@ func (node *Node) addPendingTransactions(newTxs types.Transactions) { utils.Logger().Info().Int("length of newTxs", len(newTxs)).Int("totalPending", len(node.pendingTransactions)).Msg("Got more transactions") } +// Add new staking transactions to the pending staking transaction list. +func (node *Node) addPendingStakingTransactions(newStakingTxs types2.StakingTransactions) { + node.pendingStakingTxMutex.Lock() + node.pendingStakingTransactions = append(node.pendingStakingTransactions, newStakingTxs...) + node.reducePendingStakingTransactions() + node.pendingStakingTxMutex.Unlock() + utils.Logger().Info().Int("length of newStakingTxs", len(newStakingTxs)).Int("totalPending", len(node.pendingTransactions)).Msg("Got more staking transactions") +} + // AddPendingTransaction adds one new transaction to the pending transaction list. // This is only called from SDK. func (node *Node) AddPendingTransaction(newTx *types.Transaction) { @@ -315,8 +340,7 @@ func (node *Node) AddPendingReceipts(receipts *types.CXReceiptsProof) { // Take out a subset of valid transactions from the pending transaction list // Note the pending transaction list will then contain the rest of the txs -func (node *Node) getTransactionsForNewBlock(coinbase common.Address) types.Transactions { - node.pendingTxMutex.Lock() +func (node *Node) getTransactionsForNewBlock(coinbase common.Address) (types.Transactions, types2.StakingTransactions) { txsThrottleConfig := core.ShardingSchedule.TxsThrottleConfig() @@ -332,7 +356,21 @@ func (node *Node) getTransactionsForNewBlock(coinbase common.Address) types.Tran } node.recentTxsStats[newBlockNum] = make(types.BlockTxsCounts) + // Must update to the correct current state before processing potential txns + if err := node.Worker.UpdateCurrent(coinbase); err != nil { + utils.Logger().Error(). + Err(err). + Msg("Failed updating worker's state before txn selection") + return types.Transactions{}, types2.StakingTransactions{} + } + + node.pendingTxMutex.Lock() + defer node.pendingTxMutex.Unlock() + node.pendingStakingTxMutex.Lock() + defer node.pendingStakingTxMutex.Unlock() + selected, unselected, invalid := node.Worker.SelectTransactionsForNewBlock(newBlockNum, node.pendingTransactions, node.recentTxsStats, txsThrottleConfig, coinbase) + selectedStaking, unselectedStaking, invalidStaking := node.Worker.SelectStakingTransactionsForNewBlock(newBlockNum, node.pendingTransactions, node.recentTxsStats, txsThrottleConfig, coinbase) node.pendingTransactions = unselected node.reducePendingTransactions() @@ -341,9 +379,16 @@ func (node *Node) getTransactionsForNewBlock(coinbase common.Address) types.Tran Int("selected", len(selected)). Int("invalidDiscarded", len(invalid)). Msg("Selecting Transactions") - node.pendingTxMutex.Unlock() - return selected + node.pendingStakingTransactions = unselectedStaking + node.reducePendingStakingTransactions() + utils.Logger().Info(). + Int("remainPending", len(node.pendingStakingTransactions)). + Int("selected", len(unselectedStaking)). + Int("invalidDiscarded", len(invalidStaking)). + Msg("Selecting Transactions") + + return selected, selectedStaking } // StartServer starts a server and process the requests by a handler. diff --git a/node/node_cross_shard.go b/node/node_cross_shard.go index d870def58..3817f7ffe 100644 --- a/node/node_cross_shard.go +++ b/node/node_cross_shard.go @@ -289,6 +289,7 @@ func (node *Node) VerifyCrosslinkHeader(prevHeader, header *block.Header) error } // Verify signature of the new cross link header + // TODO: check whether to recalculate shard state shardState, err := node.Blockchain().ReadShardState(prevHeader.Epoch()) committee := shardState.FindCommitteeByID(prevHeader.ShardID()) diff --git a/node/node_handler.go b/node/node_handler.go index dd2f96e9b..17a2ae146 100644 --- a/node/node_handler.go +++ b/node/node_handler.go @@ -9,6 +9,8 @@ import ( "sync/atomic" "time" + types2 "github.com/harmony-one/harmony/staking/types" + "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/common" @@ -151,6 +153,9 @@ func (node *Node) messageHandler(content []byte, sender libp2p_peer.ID) { case proto_node.Transaction: utils.Logger().Debug().Msg("NET: received message: Node/Transaction") node.transactionMessageHandler(msgPayload) + case proto_node.Staking: + utils.Logger().Debug().Msg("NET: received message: Node/Staking") + node.stakingMessageHandler(msgPayload) case proto_node.Block: utils.Logger().Debug().Msg("NET: received message: Node/Block") blockMsgType := proto_node.BlockMessageType(msgPayload[0]) @@ -239,11 +244,24 @@ func (node *Node) transactionMessageHandler(msgPayload []byte) { utils.Logger().Error(). Err(err). Msg("Failed to deserialize transaction list") + return } node.addPendingTransactions(txs) } } +func (node *Node) stakingMessageHandler(msgPayload []byte) { + txs := types2.StakingTransactions{} + err := rlp.Decode(bytes.NewReader(msgPayload[:]), &txs) + if err != nil { + utils.Logger().Error(). + Err(err). + Msg("Failed to deserialize staking transaction list") + return + } + node.addPendingStakingTransactions(txs) +} + // BroadcastNewBlock is called by consensus leader to sync new blocks with other clients/nodes. // NOTE: For now, just send to the client (basically not broadcasting) // TODO (lc): broadcast the new blocks to new nodes doing state sync diff --git a/node/node_newblock.go b/node/node_newblock.go index a673f0da6..e7815f0de 100644 --- a/node/node_newblock.go +++ b/node/node_newblock.go @@ -81,10 +81,10 @@ func (node *Node) proposeNewBlock() (*types.Block, error) { // Update worker's current header and state data in preparation to propose/process new transactions coinbase := node.Consensus.SelfAddress - // Prepare transactions - selectedTxs := node.getTransactionsForNewBlock(coinbase) + // Prepare transactions including staking transactions + selectedTxs, selectedStakingTxs := node.getTransactionsForNewBlock(coinbase) - if err := node.Worker.CommitTransactions(selectedTxs, coinbase); err != nil { + if err := node.Worker.CommitTransactions(selectedTxs, selectedStakingTxs, coinbase); err != nil { ctxerror.Log15(utils.GetLogger().Error, ctxerror.New("cannot commit transactions"). WithCause(err)) diff --git a/node/worker/worker.go b/node/worker/worker.go index d89a452e7..e82347394 100644 --- a/node/worker/worker.go +++ b/node/worker/worker.go @@ -5,6 +5,8 @@ import ( "math/big" "time" + types2 "github.com/harmony-one/harmony/staking/types" + blockfactory "github.com/harmony-one/harmony/block/factory" "github.com/harmony-one/harmony/shard" @@ -96,13 +98,6 @@ func (w *Worker) throttleTxs(selected types.Transactions, recentTxsStats types.R // SelectTransactionsForNewBlock selects transactions for new block. func (w *Worker) SelectTransactionsForNewBlock(newBlockNum uint64, txs types.Transactions, recentTxsStats types.RecentTxsStats, txsThrottleConfig *shardingconfig.TxsThrottleConfig, coinbase common.Address) (types.Transactions, types.Transactions, types.Transactions) { - // Must update to the correct current state before processing potential txns - if err := w.UpdateCurrent(coinbase); err != nil { - utils.Logger().Error(). - Err(err). - Msg("Failed updating worker's state before txn selection") - return types.Transactions{}, txs, types.Transactions{} - } if w.current.gasPool == nil { w.current.gasPool = new(core.GasPool).AddGas(w.current.header.GasLimit()) @@ -154,6 +149,12 @@ func (w *Worker) SelectTransactionsForNewBlock(newBlockNum uint64, txs types.Tra return selected, unselected, invalid } +// SelectStakingTransactionsForNewBlock selects staking transactions for new block. +func (w *Worker) SelectStakingTransactionsForNewBlock(newBlockNum uint64, txs types.Transactions, recentTxsStats types.RecentTxsStats, txsThrottleConfig *shardingconfig.TxsThrottleConfig, coinbase common.Address) (types2.StakingTransactions, types2.StakingTransactions, types2.StakingTransactions) { + // TODO: implement staking transaction selection + return types2.StakingTransactions{}, types2.StakingTransactions{}, types2.StakingTransactions{} +} + func (w *Worker) commitTransaction(tx *types.Transaction, coinbase common.Address) ([]*types.Log, error) { snap := w.current.state.Snapshot() @@ -177,8 +178,8 @@ func (w *Worker) commitTransaction(tx *types.Transaction, coinbase common.Addres return receipt.Logs, nil } -// CommitTransactions commits transactions. -func (w *Worker) CommitTransactions(txs types.Transactions, coinbase common.Address) error { +// CommitTransactions commits transactions including staking transactions. +func (w *Worker) CommitTransactions(txs types.Transactions, stakingTxns types2.StakingTransactions, coinbase common.Address) error { // Must update to the correct current state before processing potential txns if err := w.UpdateCurrent(coinbase); err != nil { utils.Logger().Error(). @@ -199,6 +200,10 @@ func (w *Worker) CommitTransactions(txs types.Transactions, coinbase common.Addr } } + for _, stakingTx := range stakingTxns { + _ = stakingTx + // TODO: add logic to commit staking txns + } return nil } diff --git a/staking/types/messages.go b/staking/types/messages.go new file mode 100644 index 000000000..73555ecc0 --- /dev/null +++ b/staking/types/messages.go @@ -0,0 +1,30 @@ +package types + +import ( + "math/big" + + "github.com/harmony-one/bls/ffi/go/bls" + "github.com/harmony-one/harmony/internal/common" +) + +// StakingMessage must fulfill these interfaces +type StakingMessage interface { + // Type returns a human-readable string for the type of the staking message + Type() string + + // Signer returns the ECDSA address who must sign the outer transaction + Signer() common.Address +} + +// MsgCreateValidator - struct for creating a new validator +type MsgCreateValidator struct { + Description Description `json:"description" yaml:"description"` + Commission CommissionRates `json:"commission" yaml:"commission"` + MinSelfDelegation big.Int `json:"min_self_delegation" yaml:"min_self_delegation"` + Address common.Address `json:"validator_address" yaml:"validator_address"` + ValidatingPubKey bls.PublicKey `json:"validating_pub_key" yaml:"validating_pub_key"` + Amount big.Int `json:"amount" yaml:"amount"` +} + +func (msg MsgCreateValidator) Type() string { return "create_validator" } +func (msg MsgCreateValidator) Signer() common.Address { return msg.Address } diff --git a/staking/types/staking_transaction.go b/staking/types/staking_transaction.go new file mode 100644 index 000000000..5d2ee5441 --- /dev/null +++ b/staking/types/staking_transaction.go @@ -0,0 +1,26 @@ +package types + +import ( + "math/big" + + "github.com/harmony-one/harmony/internal/common" +) + +// StakingTransaction struct. +type StakingTransaction struct { + AccountNonce uint64 `json:"nonce" gencodec:"required"` + Price *big.Int `json:"gasPrice" gencodec:"required"` + GasLimit uint64 `json:"gas" gencodec:"required"` + Msg StakingMessage `json:"msg" gencodec:"required"` + + // Signature values + V *big.Int `json:"v" gencodec:"required"` + R *big.Int `json:"r" gencodec:"required"` + S *big.Int `json:"s" gencodec:"required"` + + // This is only used when marshaling to JSON. + Hash *common.Hash `json:"hash" rlp:"-"` +} + +// StakingTransactions is a Transaction slice type for basic sorting. +type StakingTransactions []*StakingTransaction diff --git a/staking/types/validator.go b/staking/types/validator.go index 3673f8083..7bc8362d7 100644 --- a/staking/types/validator.go +++ b/staking/types/validator.go @@ -9,7 +9,7 @@ import ( // Validator - data fields for a validator type Validator struct { - StakingAddress common.Address `json:"staking_address" yaml:"staking_address"` // ECDSA address of the validator + Address common.Address `json:"address" yaml:"address"` // ECDSA address of the validator ValidatingPubKey bls.PublicKey `json:"validating_pub_key" yaml:"validating_pub_key"` // The BLS public key of the validator for consensus Description Description `json:"description" yaml:"description"` // description for the validator Active bool `json:"active" yaml:"active"` // Is the validator active in the validating process or not From 301706771c2cb06e9dac0cabf8765263112fd9a9 Mon Sep 17 00:00:00 2001 From: Rongjian Lan Date: Thu, 26 Sep 2019 14:05:45 -0700 Subject: [PATCH 2/4] Fix lint and build --- node/node_handler_test.go | 8 +- node/staking_test.go | 4 +- node/worker/worker_test.go | 4 +- staking/types/messages.go | 5 +- test.txt | 1638 ++++++++++++++++++++++++++++++++++++ test/chain/main.go | 10 +- 6 files changed, 1657 insertions(+), 12 deletions(-) create mode 100644 test.txt diff --git a/node/node_handler_test.go b/node/node_handler_test.go index 1326042cc..69a466d8a 100644 --- a/node/node_handler_test.go +++ b/node/node_handler_test.go @@ -30,8 +30,8 @@ func TestAddNewBlock(t *testing.T) { nodeconfig.GetShardConfig(0).SetNetworkType(nodeconfig.Devnet) node := New(host, consensus, testDBFactory, false) - selectedTxs := node.getTransactionsForNewBlock(common.Address{}) - node.Worker.CommitTransactions(selectedTxs, common.Address{}) + selectedTxs, selectedStakingTxs := node.getTransactionsForNewBlock(common.Address{}) + node.Worker.CommitTransactions(selectedTxs, selectedStakingTxs, common.Address{}) block, _ := node.Worker.FinalizeNewBlock([]byte{}, []byte{}, 0, common.Address{}, nil, nil) err = node.AddNewBlock(block) @@ -59,8 +59,8 @@ func TestVerifyNewBlock(t *testing.T) { } node := New(host, consensus, testDBFactory, false) - selectedTxs := node.getTransactionsForNewBlock(common.Address{}) - node.Worker.CommitTransactions(selectedTxs, common.Address{}) + selectedTxs, selectedStakingTxs := node.getTransactionsForNewBlock(common.Address{}) + node.Worker.CommitTransactions(selectedTxs, selectedStakingTxs, common.Address{}) block, _ := node.Worker.FinalizeNewBlock([]byte{}, []byte{}, 0, common.Address{}, nil, nil) if err := node.VerifyNewBlock(block); err != nil { diff --git a/node/staking_test.go b/node/staking_test.go index ad35a81b8..73fa8c934 100644 --- a/node/staking_test.go +++ b/node/staking_test.go @@ -41,8 +41,8 @@ func TestUpdateStakingList(t *testing.T) { node.BlockPeriod = 8 * time.Second for i := 0; i < 1; i++ { - selectedTxs := node.getTransactionsForNewBlock(common.Address{}) - node.Worker.CommitTransactions(selectedTxs, common.Address{}) + selectedTxs, selectedStakingTxs := node.getTransactionsForNewBlock(common.Address{}) + node.Worker.CommitTransactions(selectedTxs, selectedStakingTxs, common.Address{}) block, err := node.Worker.FinalizeNewBlock([]byte{}, []byte{}, 0, common.Address{}, nil, nil) // The block must first be finalized before being added to the blockchain. diff --git a/node/worker/worker_test.go b/node/worker/worker_test.go index 4c0a8d2a1..da5622c3f 100644 --- a/node/worker/worker_test.go +++ b/node/worker/worker_test.go @@ -5,6 +5,8 @@ import ( "math/rand" "testing" + types2 "github.com/harmony-one/harmony/staking/types" + blockfactory "github.com/harmony-one/harmony/block/factory" chain2 "github.com/harmony-one/harmony/internal/chain" @@ -75,7 +77,7 @@ func TestCommitTransactions(t *testing.T) { tx, _ := types.SignTx(types.NewTransaction(baseNonce, testBankAddress, uint32(0), big.NewInt(int64(denominations.One*randAmount)), params.TxGas, nil, nil), types.HomesteadSigner{}, testBankKey) // Commit the tx to the worker - err := worker.CommitTransactions(types.Transactions{tx}, testBankAddress) + err := worker.CommitTransactions(types.Transactions{tx}, types2.StakingTransactions{}, testBankAddress) if err != nil { t.Error(err) } diff --git a/staking/types/messages.go b/staking/types/messages.go index 73555ecc0..66bed1aed 100644 --- a/staking/types/messages.go +++ b/staking/types/messages.go @@ -26,5 +26,8 @@ type MsgCreateValidator struct { Amount big.Int `json:"amount" yaml:"amount"` } -func (msg MsgCreateValidator) Type() string { return "create_validator" } +// Type ... +func (msg MsgCreateValidator) Type() string { return "create_validator" } + +// Signer ... func (msg MsgCreateValidator) Signer() common.Address { return msg.Address } diff --git a/test.txt b/test.txt new file mode 100644 index 000000000..9655fe5a3 --- /dev/null +++ b/test.txt @@ -0,0 +1,1638 @@ +Checking go.mod... +go.mod stayed the same as in the repository. +Running golint... +golint passed. +Running goimports... +goimports passed. +Running go generate... +go generate FAILED! +--- BEGIN go generate --- +api/client/service/proto/client.go +protoc client.proto --go_out=plugins=grpc:. +api/proto/message/message.go +protoc message.proto --go_out=plugins=grpc:. +api/service/syncing/downloader/proto/downloader.go +protoc downloader.proto --go_out=plugins=grpc:. +cmd/client/wallet/main.go +go run ../../../scripts/wallet_embed_ini_files.go +dyld: Library not loaded: lib/libbls384_256.dylib + Referenced from: /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/go-build550183318/b001/exe/wallet_embed_ini_files + Reason: image not found +signal: abort trap +cmd/client/wallet/main.go:263: running "go": exit status 1 +cmd/client/wallet_stress_test/main.go +go run ../../../scripts/wallet_embed_ini_files.go +dyld: Library not loaded: lib/libbls384_256.dylib + Referenced from: /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/go-build903453504/b001/exe/wallet_embed_ini_files + Reason: image not found +signal: abort trap +cmd/client/wallet_stress_test/main.go:149: running "go": exit status 1 +core/rawdb/interfaces.go +mockgen -source interfaces.go -destination mock/mock.go +internal/ctxerror/ctxerror.go +mockgen -source ctxerror.go -destination mock/ctxerror.go +internal/utils/logging_test.go +mockgen -destination mock_log/logger.go github.com/ethereum/go-ethereum/log Logger +mockgen -destination mock_log/handler.go github.com/ethereum/go-ethereum/log Handler +internal/utils/testing.go +mockgen -source=testing.go -destination=mock/testing.go +p2p/host.go +mockgen -source host.go -destination=host/mock/host_mock.go +p2p/host/hostv2/hostv2.go +mockgen -source hostv2.go -destination=mock/hostv2_mock.go +p2p/stream.go +mockgen -source stream.go -package p2p -destination=mock_stream.go +--- END go generate --- +Running go test... +=== RUN TestTextHash +--- PASS: TestTextHash (0.00s) +=== RUN TestHDPathParsing +--- PASS: TestHDPathParsing (0.00s) +=== RUN TestURLParsing +--- PASS: TestURLParsing (0.00s) +=== RUN TestURLString +--- PASS: TestURLString (0.00s) +=== RUN TestURLMarshalJSON +--- PASS: TestURLMarshalJSON (0.00s) +=== RUN TestURLUnmarshalJSON +--- PASS: TestURLUnmarshalJSON (0.00s) +=== RUN TestURLComparison +--- PASS: TestURLComparison (0.00s) +PASS +ok github.com/harmony-one/harmony/accounts 0.124s +=== RUN TestReader +--- PASS: TestReader (0.00s) +=== RUN TestTestNumbers +--- PASS: TestTestNumbers (0.00s) +=== RUN TestTestString +--- PASS: TestTestString (0.00s) +=== RUN TestTestBool +--- PASS: TestTestBool (0.00s) +=== RUN TestTestSlice +--- PASS: TestTestSlice (0.00s) +=== RUN TestMethodSignature +--- PASS: TestMethodSignature (0.00s) +=== RUN TestMultiPack +--- PASS: TestMultiPack (0.00s) +=== RUN TestInputVariableInputLength +--- PASS: TestInputVariableInputLength (0.00s) +=== RUN TestInputFixedArrayAndVariableInputLength +--- PASS: TestInputFixedArrayAndVariableInputLength (0.00s) +=== RUN TestDefaultFunctionParsing +--- PASS: TestDefaultFunctionParsing (0.00s) +=== RUN TestBareEvents +--- PASS: TestBareEvents (0.00s) +=== RUN TestUnpackEvent +--- PASS: TestUnpackEvent (0.00s) +=== RUN TestUnpackEventIntoMap +--- PASS: TestUnpackEventIntoMap (0.00s) +=== RUN TestUnpackMethodIntoMap +--- PASS: TestUnpackMethodIntoMap (0.00s) +=== RUN TestUnpackIntoMapNamingConflict +--- PASS: TestUnpackIntoMapNamingConflict (0.00s) +=== RUN TestABI_MethodByID +--- PASS: TestABI_MethodByID (0.00s) +=== RUN TestEventId +--- PASS: TestEventId (0.00s) +=== RUN TestEventString +--- PASS: TestEventString (0.00s) +=== RUN TestEventMultiValueWithArrayUnpack +--- PASS: TestEventMultiValueWithArrayUnpack (0.00s) +=== RUN TestEventTupleUnpack +=== RUN TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure +=== RUN TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_slice +=== RUN TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure_with_abi:_tag +=== RUN TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_duplicated_abi_tag +=== RUN TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_a_field_and_a_tag_mapping_to_the_same_abi_variable +=== RUN TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_an_empty_tag +=== RUN TestEventTupleUnpack/Can_unpack_Pledge_event_into_structure +=== RUN TestEventTupleUnpack/Can_unpack_Pledge_event_into_slice +=== RUN TestEventTupleUnpack/Can_unpack_Pledge_event_into_an_array +=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_slice_with_wrong_types +=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_struct_with_wrong_filed_types +=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_too_short_slice +=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_map +=== RUN TestEventTupleUnpack/Can_unpack_abi_variables_with_mixed_case +--- PASS: TestEventTupleUnpack (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_slice (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure_with_abi:_tag (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_duplicated_abi_tag (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_a_field_and_a_tag_mapping_to_the_same_abi_variable (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_an_empty_tag (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_Pledge_event_into_structure (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_Pledge_event_into_slice (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_Pledge_event_into_an_array (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_slice_with_wrong_types (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_struct_with_wrong_filed_types (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_too_short_slice (0.00s) + --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_map (0.00s) + --- PASS: TestEventTupleUnpack/Can_unpack_abi_variables_with_mixed_case (0.00s) +=== RUN TestEventUnpackIndexed +--- PASS: TestEventUnpackIndexed (0.00s) +=== RUN TestEventIndexedWithArrayUnpack +--- PASS: TestEventIndexedWithArrayUnpack (0.00s) +=== RUN TestMethodString +--- PASS: TestMethodString (0.00s) +=== RUN TestNumberTypes +--- PASS: TestNumberTypes (0.00s) +=== RUN TestPack +--- PASS: TestPack (0.00s) +=== RUN TestMethodPack +--- PASS: TestMethodPack (0.00s) +=== RUN TestPackNumber +--- PASS: TestPackNumber (0.00s) +=== RUN TestReflectNameToStruct +=== RUN TestReflectNameToStruct/OneToOneCorrespondance +=== RUN TestReflectNameToStruct/MissingFieldsInStruct +=== RUN TestReflectNameToStruct/MoreFieldsInStructThanArgs +=== RUN TestReflectNameToStruct/MissingFieldInArgs +=== RUN TestReflectNameToStruct/NoAbiDescriptor +=== RUN TestReflectNameToStruct/NoArgs +=== RUN TestReflectNameToStruct/DifferentName +=== RUN TestReflectNameToStruct/DifferentName#01 +=== RUN TestReflectNameToStruct/MultipleFields +=== RUN TestReflectNameToStruct/MultipleFieldsABIMissing +=== RUN TestReflectNameToStruct/NameConflict +=== RUN TestReflectNameToStruct/Underscored +=== RUN TestReflectNameToStruct/DoubleMapping +=== RUN TestReflectNameToStruct/AlreadyMapped +--- PASS: TestReflectNameToStruct (0.00s) + --- PASS: TestReflectNameToStruct/OneToOneCorrespondance (0.00s) + --- PASS: TestReflectNameToStruct/MissingFieldsInStruct (0.00s) + --- PASS: TestReflectNameToStruct/MoreFieldsInStructThanArgs (0.00s) + --- PASS: TestReflectNameToStruct/MissingFieldInArgs (0.00s) + --- PASS: TestReflectNameToStruct/NoAbiDescriptor (0.00s) + --- PASS: TestReflectNameToStruct/NoArgs (0.00s) + --- PASS: TestReflectNameToStruct/DifferentName (0.00s) + --- PASS: TestReflectNameToStruct/DifferentName#01 (0.00s) + --- PASS: TestReflectNameToStruct/MultipleFields (0.00s) + --- PASS: TestReflectNameToStruct/MultipleFieldsABIMissing (0.00s) + --- PASS: TestReflectNameToStruct/NameConflict (0.00s) + --- PASS: TestReflectNameToStruct/Underscored (0.00s) + --- PASS: TestReflectNameToStruct/DoubleMapping (0.00s) + --- PASS: TestReflectNameToStruct/AlreadyMapped (0.00s) +=== RUN TestTypeRegexp +--- PASS: TestTypeRegexp (0.00s) +=== RUN TestTypeCheck +--- PASS: TestTypeCheck (0.00s) +=== RUN TestUnpack +=== RUN TestUnpack/0 +=== RUN TestUnpack/1 +=== RUN TestUnpack/2 +=== RUN TestUnpack/3 +=== RUN TestUnpack/4 +=== RUN TestUnpack/5 +=== RUN TestUnpack/6 +=== RUN TestUnpack/7 +=== RUN TestUnpack/8 +=== RUN TestUnpack/9 +=== RUN TestUnpack/10 +=== RUN TestUnpack/11 +=== RUN TestUnpack/12 +=== RUN TestUnpack/13 +=== RUN TestUnpack/14 +=== RUN TestUnpack/15 +=== RUN TestUnpack/16 +=== RUN TestUnpack/17 +=== RUN TestUnpack/18 +=== RUN TestUnpack/19 +=== RUN TestUnpack/20 +=== RUN TestUnpack/21 +=== RUN TestUnpack/22 +=== RUN TestUnpack/23 +=== RUN TestUnpack/24 +=== RUN TestUnpack/25 +=== RUN TestUnpack/26 +=== RUN TestUnpack/27 +=== RUN TestUnpack/28 +=== RUN TestUnpack/29 +=== RUN TestUnpack/30 +=== RUN TestUnpack/31 +=== RUN TestUnpack/32 +=== RUN TestUnpack/33 +=== RUN TestUnpack/34 +=== RUN TestUnpack/35 +=== RUN TestUnpack/36 +=== RUN TestUnpack/37 +=== RUN TestUnpack/38 +=== RUN TestUnpack/39 +=== RUN TestUnpack/40 +=== RUN TestUnpack/41 +=== RUN TestUnpack/42 +=== RUN TestUnpack/43 +=== RUN TestUnpack/44 +=== RUN TestUnpack/45 +=== RUN TestUnpack/46 +=== RUN TestUnpack/47 +=== RUN TestUnpack/48 +=== RUN TestUnpack/49 +=== RUN TestUnpack/50 +=== RUN TestUnpack/51 +=== RUN TestUnpack/52 +=== RUN TestUnpack/53 +=== RUN TestUnpack/54 +=== RUN TestUnpack/55 +=== RUN TestUnpack/56 +=== RUN TestUnpack/57 +=== RUN TestUnpack/58 +=== RUN TestUnpack/59 +=== RUN TestUnpack/60 +=== RUN TestUnpack/61 +--- PASS: TestUnpack (0.00s) + --- PASS: TestUnpack/0 (0.00s) + --- PASS: TestUnpack/1 (0.00s) + --- PASS: TestUnpack/2 (0.00s) + --- PASS: TestUnpack/3 (0.00s) + --- PASS: TestUnpack/4 (0.00s) + --- PASS: TestUnpack/5 (0.00s) + --- PASS: TestUnpack/6 (0.00s) + --- PASS: TestUnpack/7 (0.00s) + --- PASS: TestUnpack/8 (0.00s) + --- PASS: TestUnpack/9 (0.00s) + --- PASS: TestUnpack/10 (0.00s) + --- PASS: TestUnpack/11 (0.00s) + --- PASS: TestUnpack/12 (0.00s) + --- PASS: TestUnpack/13 (0.00s) + --- PASS: TestUnpack/14 (0.00s) + --- PASS: TestUnpack/15 (0.00s) + --- PASS: TestUnpack/16 (0.00s) + --- PASS: TestUnpack/17 (0.00s) + --- PASS: TestUnpack/18 (0.00s) + --- PASS: TestUnpack/19 (0.00s) + --- PASS: TestUnpack/20 (0.00s) + --- PASS: TestUnpack/21 (0.00s) + --- PASS: TestUnpack/22 (0.00s) + --- PASS: TestUnpack/23 (0.00s) + --- PASS: TestUnpack/24 (0.00s) + --- PASS: TestUnpack/25 (0.00s) + --- PASS: TestUnpack/26 (0.00s) + --- PASS: TestUnpack/27 (0.00s) + --- PASS: TestUnpack/28 (0.00s) + --- PASS: TestUnpack/29 (0.00s) + --- PASS: TestUnpack/30 (0.00s) + --- PASS: TestUnpack/31 (0.00s) + --- PASS: TestUnpack/32 (0.00s) + --- PASS: TestUnpack/33 (0.00s) + --- PASS: TestUnpack/34 (0.00s) + --- PASS: TestUnpack/35 (0.00s) + --- PASS: TestUnpack/36 (0.00s) + --- PASS: TestUnpack/37 (0.00s) + --- PASS: TestUnpack/38 (0.00s) + --- PASS: TestUnpack/39 (0.00s) + --- PASS: TestUnpack/40 (0.00s) + --- PASS: TestUnpack/41 (0.00s) + --- PASS: TestUnpack/42 (0.00s) + --- PASS: TestUnpack/43 (0.00s) + --- PASS: TestUnpack/44 (0.00s) + --- PASS: TestUnpack/45 (0.00s) + --- PASS: TestUnpack/46 (0.00s) + --- PASS: TestUnpack/47 (0.00s) + --- PASS: TestUnpack/48 (0.00s) + --- PASS: TestUnpack/49 (0.00s) + --- PASS: TestUnpack/50 (0.00s) + --- PASS: TestUnpack/51 (0.00s) + --- PASS: TestUnpack/52 (0.00s) + --- PASS: TestUnpack/53 (0.00s) + --- PASS: TestUnpack/54 (0.00s) + --- PASS: TestUnpack/55 (0.00s) + --- PASS: TestUnpack/56 (0.00s) + --- PASS: TestUnpack/57 (0.00s) + --- PASS: TestUnpack/58 (0.00s) + --- PASS: TestUnpack/59 (0.00s) + --- PASS: TestUnpack/60 (0.00s) + --- PASS: TestUnpack/61 (0.00s) +=== RUN TestUnpackSetDynamicArrayOutput +--- PASS: TestUnpackSetDynamicArrayOutput (0.00s) +=== RUN TestMethodMultiReturn +=== RUN TestMethodMultiReturn/Can_unpack_into_structure +=== RUN TestMethodMultiReturn/Can_unpack_into_reversed_structure +=== RUN TestMethodMultiReturn/Can_unpack_into_a_slice +=== RUN TestMethodMultiReturn/Can_unpack_into_an_array +=== RUN TestMethodMultiReturn/Can_unpack_into_interface_array +=== RUN TestMethodMultiReturn/Can_unpack_into_interface_slice +=== RUN TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types +=== RUN TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types#01 +--- PASS: TestMethodMultiReturn (0.00s) + --- PASS: TestMethodMultiReturn/Can_unpack_into_structure (0.00s) + --- PASS: TestMethodMultiReturn/Can_unpack_into_reversed_structure (0.00s) + --- PASS: TestMethodMultiReturn/Can_unpack_into_a_slice (0.00s) + --- PASS: TestMethodMultiReturn/Can_unpack_into_an_array (0.00s) + --- PASS: TestMethodMultiReturn/Can_unpack_into_interface_array (0.00s) + --- PASS: TestMethodMultiReturn/Can_unpack_into_interface_slice (0.00s) + --- PASS: TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types (0.00s) + --- PASS: TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types#01 (0.00s) +=== RUN TestMultiReturnWithArray +--- PASS: TestMultiReturnWithArray (0.00s) +=== RUN TestMultiReturnWithStringArray +--- PASS: TestMultiReturnWithStringArray (0.00s) +=== RUN TestMultiReturnWithStringSlice +--- PASS: TestMultiReturnWithStringSlice (0.00s) +=== RUN TestMultiReturnWithDeeplyNestedArray +--- PASS: TestMultiReturnWithDeeplyNestedArray (0.00s) +=== RUN TestUnmarshal +--- PASS: TestUnmarshal (0.00s) +=== RUN TestUnpackTuple +--- PASS: TestUnpackTuple (0.00s) +=== RUN TestOOMMaliciousInput +--- PASS: TestOOMMaliciousInput (0.00s) +=== RUN ExampleJSON +--- PASS: ExampleJSON (0.00s) +PASS +ok github.com/harmony-one/harmony/accounts/abi 0.135s +=== RUN TestMakeTopics +=== RUN TestMakeTopics/support_fixed_byte_types,_right_padded_to_32_bytes +--- PASS: TestMakeTopics (0.00s) + --- PASS: TestMakeTopics/support_fixed_byte_types,_right_padded_to_32_bytes (0.00s) +=== RUN TestParseTopics +=== RUN TestParseTopics/support_fixed_byte_types,_right_padded_to_32_bytes +--- PASS: TestParseTopics (0.00s) + --- PASS: TestParseTopics/support_fixed_byte_types,_right_padded_to_32_bytes (0.00s) +=== RUN TestPassingBlockNumber +--- PASS: TestPassingBlockNumber (0.00s) +=== RUN TestUnpackIndexedStringTyLogIntoMap +--- PASS: TestUnpackIndexedStringTyLogIntoMap (0.00s) +=== RUN TestUnpackIndexedSliceTyLogIntoMap +--- PASS: TestUnpackIndexedSliceTyLogIntoMap (0.00s) +=== RUN TestUnpackIndexedArrayTyLogIntoMap +--- PASS: TestUnpackIndexedArrayTyLogIntoMap (0.00s) +=== RUN TestUnpackIndexedFuncTyLogIntoMap +--- PASS: TestUnpackIndexedFuncTyLogIntoMap (0.00s) +=== RUN TestUnpackIndexedBytesTyLogIntoMap +--- PASS: TestUnpackIndexedBytesTyLogIntoMap (0.00s) +=== RUN TestUnpackIntoMapNamingConflict +--- PASS: TestUnpackIntoMapNamingConflict (0.00s) +PASS +ok github.com/harmony-one/harmony/accounts/abi/bind 0.113s +=== RUN TestWatchNewFile +=== PAUSE TestWatchNewFile +=== RUN TestWatchNoDir +=== PAUSE TestWatchNoDir +=== RUN TestCacheInitialReload +--- PASS: TestCacheInitialReload (0.01s) +=== RUN TestCacheAddDeleteOrder +--- PASS: TestCacheAddDeleteOrder (0.00s) +=== RUN TestCacheFind +--- PASS: TestCacheFind (0.00s) +=== RUN TestUpdatedKeyfileContents +=== PAUSE TestUpdatedKeyfileContents +=== RUN TestKeyStore +--- PASS: TestKeyStore (0.01s) +=== RUN TestSign +--- PASS: TestSign (0.00s) +=== RUN TestSignWithPassphrase +--- PASS: TestSignWithPassphrase (0.00s) +=== RUN TestTimedUnlock +--- PASS: TestTimedUnlock (0.25s) +=== RUN TestOverrideUnlock +--- PASS: TestOverrideUnlock (0.26s) +=== RUN TestSignRace +--- PASS: TestSignRace (0.02s) +=== RUN TestWalletNotifierLifecycle +--- PASS: TestWalletNotifierLifecycle (6.31s) +=== RUN TestWalletNotifications +--- PASS: TestWalletNotifications (1.69s) +=== RUN TestKeyEncryptDecrypt +--- PASS: TestKeyEncryptDecrypt (0.00s) +=== RUN TestKeyStorePlain +--- PASS: TestKeyStorePlain (0.00s) +=== RUN TestKeyStorePassphrase +--- PASS: TestKeyStorePassphrase (0.00s) +=== RUN TestKeyStorePassphraseDecryptionFail +--- PASS: TestKeyStorePassphraseDecryptionFail (0.00s) +=== RUN TestImportPreSaleKey +--- PASS: TestImportPreSaleKey (0.01s) +=== RUN TestV3_PBKDF2_1 +=== PAUSE TestV3_PBKDF2_1 +=== RUN TestV3_PBKDF2_2 +--- SKIP: TestV3_PBKDF2_2 (0.00s) + plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests +=== RUN TestV3_PBKDF2_3 +--- SKIP: TestV3_PBKDF2_3 (0.00s) + plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests +=== RUN TestV3_PBKDF2_4 +--- SKIP: TestV3_PBKDF2_4 (0.00s) + plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests +=== RUN TestV3_Scrypt_1 +=== PAUSE TestV3_Scrypt_1 +=== RUN TestV3_Scrypt_2 +--- SKIP: TestV3_Scrypt_2 (0.00s) + plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests +=== RUN TestV1_1 +=== PAUSE TestV1_1 +=== RUN TestV1_2 +=== PAUSE TestV1_2 +=== RUN TestKeyForDirectICAP +=== PAUSE TestKeyForDirectICAP +=== RUN TestV3_31_Byte_Key +=== PAUSE TestV3_31_Byte_Key +=== RUN TestV3_30_Byte_Key +=== PAUSE TestV3_30_Byte_Key +=== CONT TestWatchNewFile +=== CONT TestV3_30_Byte_Key +=== CONT TestV3_31_Byte_Key +=== CONT TestKeyForDirectICAP +=== CONT TestUpdatedKeyfileContents +=== CONT TestWatchNoDir +=== CONT TestV3_PBKDF2_1 +=== CONT TestV1_2 +--- PASS: TestV3_30_Byte_Key (0.01s) +--- PASS: TestV3_31_Byte_Key (0.01s) +=== CONT TestV1_1 +=== CONT TestV3_Scrypt_1 +--- PASS: TestV3_PBKDF2_1 (0.76s) +--- PASS: TestKeyForDirectICAP (1.55s) +--- PASS: TestWatchNewFile (2.41s) +--- PASS: TestWatchNoDir (3.11s) +--- PASS: TestV1_1 (3.30s) +--- PASS: TestV1_2 (3.31s) +--- PASS: TestV3_Scrypt_1 (3.44s) +--- PASS: TestUpdatedKeyfileContents (10.34s) +PASS +ok github.com/harmony-one/harmony/accounts/keystore 19.084s +=== RUN TestClient +--- PASS: TestClient (0.00s) +PASS +ok github.com/harmony-one/harmony/api/client 0.114s +=== RUN TestGetFreeToken +--- PASS: TestGetFreeToken (0.00s) +=== RUN TestFetchAccountState +--- PASS: TestFetchAccountState (0.00s) +=== RUN TestGetStakingContractInfo +--- PASS: TestGetStakingContractInfo (0.00s) +PASS +ok github.com/harmony-one/harmony/api/client/service 0.121s +? github.com/harmony-one/harmony/api/client/service/proto [no test files] +? github.com/harmony-one/harmony/api/proto [no test files] +=== RUN TestString +--- PASS: TestString (0.00s) +=== RUN TestSerialize +--- PASS: TestSerialize (0.00s) +PASS +ok github.com/harmony-one/harmony/api/proto/discovery 0.137s +=== RUN TestClient +--- PASS: TestClient (0.00s) +=== RUN TestServerStart +--- PASS: TestServerStart (1.00s) +PASS +ok github.com/harmony-one/harmony/api/proto/message 1.163s +=== RUN TestSerializeBlockchainSyncMessage +--- PASS: TestSerializeBlockchainSyncMessage (0.00s) +=== RUN TestConstructTransactionListMessageAccount +--- PASS: TestConstructTransactionListMessageAccount (0.00s) +=== RUN TestConstructBlocksSyncMessage +--- PASS: TestConstructBlocksSyncMessage (0.00s) +=== RUN TestRoleTypeToString +--- PASS: TestRoleTypeToString (0.00s) +=== RUN TestInfoToString +--- PASS: TestInfoToString (0.00s) +PASS +ok github.com/harmony-one/harmony/api/proto/node 0.108s +=== RUN TestTakeAction +SupportSyncingTest starting +SupportSyncingTest starting +--- PASS: TestTakeAction (0.21s) +=== RUN TestMessageChan +--- PASS: TestMessageChan (0.00s) +=== RUN TestStopServices +SupportSyncingTest stopping +--- PASS: TestStopServices (0.00s) +=== RUN TestInit +--- PASS: TestInit (0.00s) +PASS +ok github.com/harmony-one/harmony/api/service 0.310s +? github.com/harmony-one/harmony/api/service/blockproposal [no test files] +? github.com/harmony-one/harmony/api/service/clientsupport [no test files] +? github.com/harmony-one/harmony/api/service/consensus [no test files] +=== RUN TestDiscoveryService +--- PASS: TestDiscoveryService (3.01s) +PASS +ok github.com/harmony-one/harmony/api/service/discovery 3.124s +=== RUN TestGetBlockInfoKey +--- PASS: TestGetBlockInfoKey (0.00s) +=== RUN TestGetAddressKey +--- PASS: TestGetAddressKey (0.00s) +=== RUN TestGetBlockKey +--- PASS: TestGetBlockKey (0.00s) +=== RUN TestGetTXKey +--- PASS: TestGetTXKey (0.00s) +=== RUN TestGetCommitteeKey +--- PASS: TestGetCommitteeKey (0.00s) +=== RUN TestInit +--- PASS: TestInit (0.07s) +=== RUN TestDump +--- PASS: TestDump (0.00s) +=== RUN TestDumpCommittee +--- PASS: TestDumpCommittee (0.00s) +=== RUN TestUpdateAddressStorage +--- PASS: TestUpdateAddressStorage (0.00s) +=== RUN TestGetTransaction +--- PASS: TestGetTransaction (0.00s) +PASS +ok github.com/harmony-one/harmony/api/service/explorer 0.172s +? github.com/harmony-one/harmony/api/service/metrics [no test files] +=== RUN TestService +--- PASS: TestService (2.01s) +PASS +ok github.com/harmony-one/harmony/api/service/networkinfo 2.123s +? github.com/harmony-one/harmony/api/service/randomness [no test files] +? github.com/harmony-one/harmony/api/service/resharding [no test files] +? github.com/harmony-one/harmony/api/service/staking [no test files] +=== RUN TestCreateTestSyncPeerConfig +--- PASS: TestCreateTestSyncPeerConfig (0.00s) +=== RUN TestCompareSyncPeerConfigByblockHashes +--- PASS: TestCompareSyncPeerConfigByblockHashes (0.00s) +=== RUN TestCreateStateSync +--- PASS: TestCreateStateSync (0.00s) +PASS +ok github.com/harmony-one/harmony/api/service/syncing 0.092s +? github.com/harmony-one/harmony/api/service/syncing/downloader [no test files] +? github.com/harmony-one/harmony/api/service/syncing/downloader/proto [no test files] +=== RUN TestHeader_EncodeRLP +=== RUN TestHeader_EncodeRLP/v0 +=== RUN TestHeader_EncodeRLP/v1 +=== RUN TestHeader_EncodeRLP/v2 +--- PASS: TestHeader_EncodeRLP (0.00s) + --- PASS: TestHeader_EncodeRLP/v0 (0.00s) + --- PASS: TestHeader_EncodeRLP/v1 (0.00s) + --- PASS: TestHeader_EncodeRLP/v2 (0.00s) +=== RUN TestHeader_DecodeRLP +=== RUN TestHeader_DecodeRLP/v0 +=== RUN TestHeader_DecodeRLP/v1 +=== RUN TestHeader_DecodeRLP/v2 +--- PASS: TestHeader_DecodeRLP (0.00s) + --- PASS: TestHeader_DecodeRLP/v0 (0.00s) + --- PASS: TestHeader_DecodeRLP/v1 (0.00s) + --- PASS: TestHeader_DecodeRLP/v2 (0.00s) +PASS +ok github.com/harmony-one/harmony/block 0.111s +=== RUN Test_factory_NewHeader +=== RUN Test_factory_NewHeader/MainnetGenesis +=== RUN Test_factory_NewHeader/MainnetEpoch1 +--- PASS: Test_factory_NewHeader (0.00s) + --- PASS: Test_factory_NewHeader/MainnetGenesis (0.00s) + --- PASS: Test_factory_NewHeader/MainnetEpoch1 (0.00s) +PASS +ok github.com/harmony-one/harmony/block/factory 0.130s +? github.com/harmony-one/harmony/block/interface [no test files] +? github.com/harmony-one/harmony/block/v0 [no test files] +? github.com/harmony-one/harmony/block/v1 [no test files] +? github.com/harmony-one/harmony/block/v2 [no test files] +? github.com/harmony-one/harmony/cmd/bootnode [no test files] +? github.com/harmony-one/harmony/cmd/client/txgen [no test files] +? github.com/harmony-one/harmony/cmd/client/wallet [no test files] +? github.com/harmony-one/harmony/cmd/client/wallet_stress_test [no test files] +? github.com/harmony-one/harmony/cmd/demo [no test files] +? github.com/harmony-one/harmony/cmd/harmony [no test files] +? github.com/harmony-one/harmony/cmd/hmyclient [no test files] +? github.com/harmony-one/harmony/cmd/keygen [no test files] +? github.com/harmony-one/harmony/common/denominations [no test files] +=== RUN TestConstructAnnounceMessage +--- PASS: TestConstructAnnounceMessage (0.62s) +=== RUN TestConstructPreparedMessage +--- PASS: TestConstructPreparedMessage (0.45s) + consensus_leader_msg_test.go:66: prepareBitmap.SetKey: key not found + consensus_leader_msg_test.go:69: prepareBitmap.SetKey: key not found +=== RUN TestPopulateMessageFields +--- PASS: TestPopulateMessageFields (0.32s) +=== RUN TestSignAndMarshalConsensusMessage +--- PASS: TestSignAndMarshalConsensusMessage (0.41s) +=== RUN TestSetViewID +--- PASS: TestSetViewID (0.38s) +=== RUN TestNew +--- PASS: TestNew (0.36s) +=== RUN TestConstructPrepareMessage +--- PASS: TestConstructPrepareMessage (0.34s) +=== RUN TestConstructCommitMessage +--- PASS: TestConstructCommitMessage (0.33s) +=== RUN TestParsePbftMessage +--- PASS: TestParsePbftMessage (0.40s) +=== RUN TestGetMessagesByTypeSeqViewHash +--- PASS: TestGetMessagesByTypeSeqViewHash (0.00s) +=== RUN TestHasMatchingAnnounce +--- PASS: TestHasMatchingAnnounce (0.00s) +PASS +ok github.com/harmony-one/harmony/consensus 9.014s +? github.com/harmony-one/harmony/consensus/engine [no test files] +? github.com/harmony-one/harmony/contracts [no test files] +? github.com/harmony-one/harmony/contracts/structs [no test files] +=== RUN TestIsEpochBlock +--- PASS: TestIsEpochBlock (0.00s) +=== RUN TestEncodeGenesisConfig +--- PASS: TestEncodeGenesisConfig (0.00s) +=== RUN TestFakeNewNodeList +newNodeList: [ECDSA: one1qqqrvvpcxu6rwvfnxc6ngvecx5mrgvf3254yj4, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qq6n2de3xuuryven8qcnqvfcxuurwd3s837n5r, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qqcnjv3kxqcnydfcxc6nyd3kxg6rqvpe5srx9h, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qqqrgvp5xy6nxwf5x5mngve4xsmnvdfhekh0gx, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qqen2ve5xvengvekxuerzdpjxvmnyd33m0urmm, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] +--- PASS: TestFakeNewNodeList (0.00s) +=== RUN TestShuffle +--- PASS: TestShuffle (0.00s) +=== RUN TestSortCommitteeBySize +--- PASS: TestSortCommitteeBySize (0.00s) +=== RUN TestUpdateShardState +--- PASS: TestUpdateShardState (0.00s) +=== RUN TestAssignNewNodes +--- PASS: TestAssignNewNodes (0.00s) +=== RUN TestStrictTxListAdd +--- PASS: TestStrictTxListAdd (0.91s) +=== RUN TestStateChangeDuringTransactionPoolReset +=== PAUSE TestStateChangeDuringTransactionPoolReset +=== RUN TestInvalidTransactions +=== PAUSE TestInvalidTransactions +=== RUN TestTransactionQueue +=== PAUSE TestTransactionQueue +=== RUN TestTransactionNegativeValue +=== PAUSE TestTransactionNegativeValue +=== RUN TestTransactionChainFork +=== PAUSE TestTransactionChainFork +=== RUN TestTransactionDoubleNonce +=== PAUSE TestTransactionDoubleNonce +=== RUN TestTransactionMissingNonce +=== PAUSE TestTransactionMissingNonce +=== RUN TestTransactionNonceRecovery +=== PAUSE TestTransactionNonceRecovery +=== RUN TestTransactionDropping +=== PAUSE TestTransactionDropping +=== RUN TestTransactionPostponing +=== PAUSE TestTransactionPostponing +=== RUN TestTransactionQueueAccountLimiting +=== PAUSE TestTransactionQueueAccountLimiting +=== RUN TestTransactionQueueGlobalLimiting +=== PAUSE TestTransactionQueueGlobalLimiting +=== RUN TestTransactionQueueGlobalLimitingNoLocals +=== PAUSE TestTransactionQueueGlobalLimitingNoLocals +=== RUN TestTransactionQueueTimeLimiting +--- PASS: TestTransactionQueueTimeLimiting (2.01s) +=== RUN TestTransactionQueueTimeLimitingNoLocals +--- PASS: TestTransactionQueueTimeLimitingNoLocals (2.01s) +=== RUN TestTransactionQueueLimitingEquivalency +=== PAUSE TestTransactionQueueLimitingEquivalency +=== RUN TestTransactionPendingLimitingEquivalency +=== PAUSE TestTransactionPendingLimitingEquivalency +=== RUN TestTransactionPendingGlobalLimiting +=== PAUSE TestTransactionPendingGlobalLimiting +=== RUN TestTransactionCapClearsFromAll +=== PAUSE TestTransactionCapClearsFromAll +=== RUN TestTransactionPendingMinimumAllowance +=== PAUSE TestTransactionPendingMinimumAllowance +=== RUN TestTransactionPoolRepricingKeepsLocals +=== PAUSE TestTransactionPoolRepricingKeepsLocals +=== RUN TestTransactionJournaling +=== PAUSE TestTransactionJournaling +=== RUN TestTransactionJournalingNoLocals +=== PAUSE TestTransactionJournalingNoLocals +=== RUN TestTransactionStatusCheck +=== PAUSE TestTransactionStatusCheck +=== CONT TestStateChangeDuringTransactionPoolReset +=== CONT TestTransactionQueueGlobalLimitingNoLocals +=== CONT TestTransactionMissingNonce +=== CONT TestTransactionDoubleNonce +=== CONT TestTransactionChainFork +=== CONT TestTransactionNegativeValue +=== CONT TestTransactionQueue +--- PASS: TestTransactionChainFork (0.00s) +=== CONT TestInvalidTransactions +=== CONT TestTransactionStatusCheck +--- PASS: TestTransactionMissingNonce (0.00s) +=== CONT TestTransactionPoolRepricingKeepsLocals +--- PASS: TestTransactionNegativeValue (0.00s) +=== CONT TestTransactionJournalingNoLocals +--- PASS: TestStateChangeDuringTransactionPoolReset (0.01s) +=== CONT TestTransactionJournaling +--- PASS: TestTransactionDoubleNonce (0.01s) +=== CONT TestTransactionPostponing +--- PASS: TestInvalidTransactions (0.01s) +=== CONT TestTransactionQueueGlobalLimiting +--- PASS: TestTransactionStatusCheck (0.02s) +=== CONT TestTransactionQueueAccountLimiting +--- PASS: TestTransactionQueue (0.02s) +=== CONT TestTransactionDropping +--- PASS: TestTransactionDropping (0.02s) +=== CONT TestTransactionNonceRecovery +--- PASS: TestTransactionNonceRecovery (0.00s) +=== CONT TestTransactionPendingGlobalLimiting +--- PASS: TestTransactionQueueAccountLimiting (0.32s) +=== CONT TestTransactionCapClearsFromAll +--- PASS: TestTransactionCapClearsFromAll (0.10s) +=== CONT TestTransactionPendingLimitingEquivalency +--- PASS: TestTransactionPostponing (0.95s) +=== CONT TestTransactionQueueLimitingEquivalency +--- PASS: TestTransactionPendingLimitingEquivalency (0.60s) +=== CONT TestTransactionPendingMinimumAllowance +--- PASS: TestTransactionPendingGlobalLimiting (1.65s) +--- PASS: TestTransactionPendingMinimumAllowance (0.68s) +--- PASS: TestTransactionQueueLimitingEquivalency (0.87s) +--- PASS: TestTransactionJournalingNoLocals (2.02s) +--- PASS: TestTransactionJournaling (2.02s) +--- PASS: TestTransactionPoolRepricingKeepsLocals (4.29s) +--- PASS: TestTransactionQueueGlobalLimiting (4.60s) +--- PASS: TestTransactionQueueGlobalLimitingNoLocals (4.71s) +PASS +ok github.com/harmony-one/harmony/core 9.730s +=== RUN TestHeaderStorage +--- PASS: TestHeaderStorage (0.00s) +=== RUN TestBodyStorage +--- PASS: TestBodyStorage (0.00s) +=== RUN TestBlockStorage +--- PASS: TestBlockStorage (0.00s) +=== RUN TestPartialBlockStorage +--- PASS: TestPartialBlockStorage (0.00s) +=== RUN TestTdStorage +--- PASS: TestTdStorage (0.00s) +=== RUN TestCanonicalMappingStorage +--- PASS: TestCanonicalMappingStorage (0.00s) +=== RUN TestHeadStorage +--- PASS: TestHeadStorage (0.00s) +=== RUN TestBlockReceiptStorage +--- PASS: TestBlockReceiptStorage (0.00s) +=== RUN TestReadEpochBlockNumber +=== RUN TestReadEpochBlockNumber/0 +=== RUN TestReadEpochBlockNumber/1 +=== RUN TestReadEpochBlockNumber/1000 +=== RUN TestReadEpochBlockNumber/error +--- PASS: TestReadEpochBlockNumber (0.00s) + --- PASS: TestReadEpochBlockNumber/0 (0.00s) + --- PASS: TestReadEpochBlockNumber/1 (0.00s) + --- PASS: TestReadEpochBlockNumber/1000 (0.00s) + --- PASS: TestReadEpochBlockNumber/error (0.00s) +=== RUN TestWriteEpochBlockNumber +=== RUN TestWriteEpochBlockNumber/0 +=== RUN TestWriteEpochBlockNumber/1 +=== RUN TestWriteEpochBlockNumber/1000 +=== RUN TestWriteEpochBlockNumber/error +--- PASS: TestWriteEpochBlockNumber (0.00s) + --- PASS: TestWriteEpochBlockNumber/0 (0.00s) + --- PASS: TestWriteEpochBlockNumber/1 (0.00s) + --- PASS: TestWriteEpochBlockNumber/1000 (0.00s) + --- PASS: TestWriteEpochBlockNumber/error (0.00s) +=== RUN TestLookupStorage +--- PASS: TestLookupStorage (0.00s) +PASS +ok github.com/harmony-one/harmony/core/rawdb 0.090s +? github.com/harmony-one/harmony/core/rawdb/mock [no test files] +=== RUN TestNewNonce +--- PASS: TestNewNonce (0.00s) +=== RUN TestRemove +--- PASS: TestRemove (0.00s) +=== RUN TestReuse +--- PASS: TestReuse (0.00s) +=== RUN TestRemoteNonceChange +--- PASS: TestRemoteNonceChange (0.00s) +=== RUN TestSetNonce +--- PASS: TestSetNonce (0.00s) +=== RUN TestSnapshot2 +--- PASS: TestSnapshot2 (0.00s) +=== RUN TestUpdateLeaks +--- PASS: TestUpdateLeaks (0.01s) +=== RUN TestIntermediateLeaks +--- PASS: TestIntermediateLeaks (0.02s) +=== RUN TestCopy +--- PASS: TestCopy (0.01s) +=== RUN TestSnapshotRandom +--- PASS: TestSnapshotRandom (11.70s) +=== RUN TestCopyOfCopy +--- PASS: TestCopyOfCopy (0.00s) +PASS +ok github.com/harmony-one/harmony/core/state 11.837s +=== RUN TestBlock_SetLastCommitSig +=== RUN TestBlock_SetLastCommitSig/5AAa +=== RUN TestBlock_SetLastCommitSig/AA55 +=== RUN TestBlock_SetLastCommitSig/PiE +=== RUN TestBlock_SetLastCommitSig/EPi +--- PASS: TestBlock_SetLastCommitSig (0.00s) + --- PASS: TestBlock_SetLastCommitSig/5AAa (0.00s) + --- PASS: TestBlock_SetLastCommitSig/AA55 (0.00s) + --- PASS: TestBlock_SetLastCommitSig/PiE (0.00s) + --- PASS: TestBlock_SetLastCommitSig/EPi (0.00s) +=== RUN TestBlock_DecodeRLP +=== RUN TestBlock_DecodeRLP/v0 +=== RUN TestBlock_DecodeRLP/v1 +=== RUN TestBlock_DecodeRLP/v2 +--- PASS: TestBlock_DecodeRLP (0.00s) + --- PASS: TestBlock_DecodeRLP/v0 (0.00s) + --- PASS: TestBlock_DecodeRLP/v1 (0.00s) + --- PASS: TestBlock_DecodeRLP/v2 (0.00s) +=== RUN TestBlock_EncodeRLP +=== RUN TestBlock_EncodeRLP/v0 +=== RUN TestBlock_EncodeRLP/v1 +=== RUN TestBlock_EncodeRLP/v2 +--- PASS: TestBlock_EncodeRLP (0.00s) + --- PASS: TestBlock_EncodeRLP/v0 (0.00s) + --- PASS: TestBlock_EncodeRLP/v1 (0.00s) + --- PASS: TestBlock_EncodeRLP/v2 (0.00s) +=== RUN TestBody_EncodeRLP +=== RUN TestBody_EncodeRLP/v0 +=== RUN TestBody_EncodeRLP/v1 +--- PASS: TestBody_EncodeRLP (0.00s) + --- PASS: TestBody_EncodeRLP/v0 (0.00s) + --- PASS: TestBody_EncodeRLP/v1 (0.00s) +=== RUN TestBody_DecodeRLP +=== RUN TestBody_DecodeRLP/v0 +=== RUN TestBody_DecodeRLP/v1 +--- PASS: TestBody_DecodeRLP (0.00s) + --- PASS: TestBody_DecodeRLP/v0 (0.00s) + --- PASS: TestBody_DecodeRLP/v1 (0.00s) +=== RUN TestBloom +--- PASS: TestBloom (0.00s) +=== RUN TestEIP155Signing +--- PASS: TestEIP155Signing (0.00s) +=== RUN TestEIP155ChainID +--- PASS: TestEIP155ChainID (0.00s) +=== RUN TestChainID +--- PASS: TestChainID (0.00s) +=== RUN TestTransactionPriceNonceSort +--- PASS: TestTransactionPriceNonceSort (1.51s) +=== RUN TestTransactionJSON +--- PASS: TestTransactionJSON (0.02s) +PASS +ok github.com/harmony-one/harmony/core/types 1.635s +=== RUN TestJumpDestAnalysis +--- PASS: TestJumpDestAnalysis (0.00s) +=== RUN TestPrecompiledModExp +=== RUN TestPrecompiledModExp/eip_example1-Gas=13056 +=== RUN TestPrecompiledModExp/eip_example2-Gas=13056 +=== RUN TestPrecompiledModExp/nagydani-1-square-Gas=204 +=== RUN TestPrecompiledModExp/nagydani-1-qube-Gas=204 +=== RUN TestPrecompiledModExp/nagydani-1-pow0x10001-Gas=3276 +=== RUN TestPrecompiledModExp/nagydani-2-square-Gas=665 +=== RUN TestPrecompiledModExp/nagydani-2-qube-Gas=665 +=== RUN TestPrecompiledModExp/nagydani-2-pow0x10001-Gas=10649 +=== RUN TestPrecompiledModExp/nagydani-3-square-Gas=1894 +=== RUN TestPrecompiledModExp/nagydani-3-qube-Gas=1894 +=== RUN TestPrecompiledModExp/nagydani-3-pow0x10001-Gas=30310 +=== RUN TestPrecompiledModExp/nagydani-4-square-Gas=5580 +=== RUN TestPrecompiledModExp/nagydani-4-qube-Gas=5580 +=== RUN TestPrecompiledModExp/nagydani-4-pow0x10001-Gas=89292 +=== RUN TestPrecompiledModExp/nagydani-5-square-Gas=17868 +=== RUN TestPrecompiledModExp/nagydani-5-qube-Gas=17868 +=== RUN TestPrecompiledModExp/nagydani-5-pow0x10001-Gas=285900 +--- PASS: TestPrecompiledModExp (0.00s) + --- PASS: TestPrecompiledModExp/eip_example1-Gas=13056 (0.00s) + --- PASS: TestPrecompiledModExp/eip_example2-Gas=13056 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-1-square-Gas=204 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-1-qube-Gas=204 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-1-pow0x10001-Gas=3276 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-2-square-Gas=665 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-2-qube-Gas=665 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-2-pow0x10001-Gas=10649 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-3-square-Gas=1894 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-3-qube-Gas=1894 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-3-pow0x10001-Gas=30310 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-4-square-Gas=5580 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-4-qube-Gas=5580 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-4-pow0x10001-Gas=89292 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-5-square-Gas=17868 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-5-qube-Gas=17868 (0.00s) + --- PASS: TestPrecompiledModExp/nagydani-5-pow0x10001-Gas=285900 (0.00s) +=== RUN TestPrecompiledBn256Add +=== RUN TestPrecompiledBn256Add/chfast1-Gas=500 +=== RUN TestPrecompiledBn256Add/chfast2-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio1-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio2-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio3-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio4-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio5-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio6-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio7-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio8-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio9-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio10-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio11-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio12-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio13-Gas=500 +=== RUN TestPrecompiledBn256Add/cdetrio14-Gas=500 +--- PASS: TestPrecompiledBn256Add (0.00s) + --- PASS: TestPrecompiledBn256Add/chfast1-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/chfast2-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio1-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio2-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio3-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio4-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio5-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio6-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio7-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio8-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio9-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio10-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio11-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio12-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio13-Gas=500 (0.00s) + --- PASS: TestPrecompiledBn256Add/cdetrio14-Gas=500 (0.00s) +=== RUN TestPrecompiledBn256ScalarMul +=== RUN TestPrecompiledBn256ScalarMul/chfast1-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/chfast2-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/chfast3-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio1-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio2-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio3-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio4-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio5-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio6-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio7-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio8-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio9-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio10-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio11-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio12-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio13-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio14-Gas=40000 +=== RUN TestPrecompiledBn256ScalarMul/cdetrio15-Gas=40000 +--- PASS: TestPrecompiledBn256ScalarMul (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/chfast1-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/chfast2-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/chfast3-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio1-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio2-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio3-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio4-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio5-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio6-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio7-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio8-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio9-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio10-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio11-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio12-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio13-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio14-Gas=40000 (0.00s) + --- PASS: TestPrecompiledBn256ScalarMul/cdetrio15-Gas=40000 (0.00s) +=== RUN TestPrecompiledBn256Pairing +=== RUN TestPrecompiledBn256Pairing/jeff1-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/jeff2-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/jeff3-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/jeff4-Gas=340000 +=== RUN TestPrecompiledBn256Pairing/jeff5-Gas=340000 +=== RUN TestPrecompiledBn256Pairing/jeff6-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/empty_data-Gas=100000 +=== RUN TestPrecompiledBn256Pairing/one_point-Gas=180000 +=== RUN TestPrecompiledBn256Pairing/two_point_match_2-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/two_point_match_3-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/two_point_match_4-Gas=260000 +=== RUN TestPrecompiledBn256Pairing/ten_point_match_1-Gas=900000 +=== RUN TestPrecompiledBn256Pairing/ten_point_match_2-Gas=900000 +=== RUN TestPrecompiledBn256Pairing/ten_point_match_3-Gas=260000 +--- PASS: TestPrecompiledBn256Pairing (0.09s) + --- PASS: TestPrecompiledBn256Pairing/jeff1-Gas=260000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/jeff2-Gas=260000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/jeff3-Gas=260000 (0.01s) + --- PASS: TestPrecompiledBn256Pairing/jeff4-Gas=340000 (0.01s) + --- PASS: TestPrecompiledBn256Pairing/jeff5-Gas=340000 (0.01s) + --- PASS: TestPrecompiledBn256Pairing/jeff6-Gas=260000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/empty_data-Gas=100000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/one_point-Gas=180000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/two_point_match_2-Gas=260000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/two_point_match_3-Gas=260000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/two_point_match_4-Gas=260000 (0.00s) + --- PASS: TestPrecompiledBn256Pairing/ten_point_match_1-Gas=900000 (0.02s) + --- PASS: TestPrecompiledBn256Pairing/ten_point_match_2-Gas=900000 (0.02s) + --- PASS: TestPrecompiledBn256Pairing/ten_point_match_3-Gas=260000 (0.00s) +=== RUN TestMemoryGasCost +--- PASS: TestMemoryGasCost (0.00s) +=== RUN TestByteOp +--- PASS: TestByteOp (0.00s) +=== RUN TestSHL +--- PASS: TestSHL (0.00s) +=== RUN TestSHR +--- PASS: TestSHR (0.00s) +=== RUN TestSAR +--- PASS: TestSAR (0.00s) +=== RUN TestSGT +--- PASS: TestSGT (0.00s) +=== RUN TestSLT +--- PASS: TestSLT (0.00s) +=== RUN TestOpMstore +--- PASS: TestOpMstore (0.00s) +=== RUN TestCreate2Addreses +--- PASS: TestCreate2Addreses (0.00s) +=== RUN TestIntPoolPoolGet +--- PASS: TestIntPoolPoolGet (0.00s) +=== RUN TestIntPoolPoolPut +--- PASS: TestIntPoolPoolPut (0.00s) +=== RUN TestIntPoolPoolReUse +--- PASS: TestIntPoolPoolReUse (0.00s) +=== RUN TestStoreCapture +--- PASS: TestStoreCapture (0.00s) +PASS +ok github.com/harmony-one/harmony/core/vm 0.200s +=== RUN TestDefaults +--- PASS: TestDefaults (0.00s) +=== RUN TestEVM +--- PASS: TestEVM (0.00s) +=== RUN TestExecute +--- PASS: TestExecute (0.00s) +=== RUN TestCall +--- PASS: TestCall (0.00s) +=== RUN ExampleExecute +--- PASS: ExampleExecute (0.00s) +PASS +ok github.com/harmony-one/harmony/core/vm/runtime 0.122s +=== RUN TestNewMask +--- PASS: TestNewMask (0.00s) +=== RUN TestNewMaskWithAbsentPublicKey +--- PASS: TestNewMaskWithAbsentPublicKey (0.00s) +=== RUN TestThreshHoldPolicy +--- PASS: TestThreshHoldPolicy (0.00s) +=== RUN TestCompletePolicy +--- PASS: TestCompletePolicy (0.00s) +=== RUN TestAggregatedSignature +--- PASS: TestAggregatedSignature (0.00s) +=== RUN TestAggregateMasks +--- PASS: TestAggregateMasks (0.00s) +=== RUN TestEnableKeyFunctions +--- PASS: TestEnableKeyFunctions (0.00s) +=== RUN TestCopyParticipatingMask +--- PASS: TestCopyParticipatingMask (0.00s) +=== RUN TestSetMask +--- PASS: TestSetMask (0.00s) +PASS +ok github.com/harmony-one/harmony/crypto/bls 0.023s +? github.com/harmony-one/harmony/crypto/hash [no test files] +=== RUN TestGetBLSPrivateKeyFromInt +--- PASS: TestGetBLSPrivateKeyFromInt (0.00s) +PASS +ok github.com/harmony-one/harmony/crypto/pki 0.013s +? github.com/harmony-one/harmony/crypto/vdf [no test files] +? github.com/harmony-one/harmony/crypto/vrf [no test files] +=== RUN TestVRF1 +--- PASS: TestVRF1 (0.01s) +=== RUN TestVRF2 +--- PASS: TestVRF2 (0.02s) +=== RUN TestRightTruncateProof +--- PASS: TestRightTruncateProof (0.00s) +=== RUN TestLeftTruncateProof +--- PASS: TestLeftTruncateProof (0.00s) +=== RUN TestBitFlip +--- PASS: TestBitFlip (0.41s) +PASS +ok github.com/harmony-one/harmony/crypto/vrf/bls 0.458s +=== RUN TestH1 +--- PASS: TestH1 (1.83s) +=== RUN TestH2 +--- PASS: TestH2 (0.05s) +=== RUN TestVRF +--- PASS: TestVRF (0.11s) +=== RUN TestReadFromOpenSSL +--- PASS: TestReadFromOpenSSL (0.03s) +=== RUN TestRightTruncateProof +--- PASS: TestRightTruncateProof (0.01s) +=== RUN TestLeftTruncateProof +--- PASS: TestLeftTruncateProof (0.01s) +=== RUN TestBitFlip +--- PASS: TestBitFlip (8.30s) +=== RUN TestVectors +--- PASS: TestVectors (0.04s) +PASS +ok github.com/harmony-one/harmony/crypto/vrf/p256 10.398s +=== RUN TestConstructInitMessage +--- PASS: TestConstructInitMessage (0.54s) +=== RUN TestProcessCommitMessage +--- PASS: TestProcessCommitMessage (0.56s) +=== RUN TestNew +--- PASS: TestNew (0.42s) +=== RUN TestResetState +--- PASS: TestResetState (0.47s) +=== RUN TestSetLeaderPubKey +--- PASS: TestSetLeaderPubKey (0.88s) +=== RUN TestUpdatePublicKeys +--- PASS: TestUpdatePublicKeys (0.33s) +=== RUN TestVerifyMessageSig +--- PASS: TestVerifyMessageSig (0.45s) +=== RUN TestVrf +--- PASS: TestVrf (0.31s) +=== RUN TestConstructCommitMessage +--- PASS: TestConstructCommitMessage (0.37s) +=== RUN TestProcessInitMessage +--- PASS: TestProcessInitMessage (0.34s) +PASS +ok github.com/harmony-one/harmony/drand 4.805s +=== RUN TestPathMatcher_Matches +=== RUN TestPathMatcher_Matches/EmptyMatchesEmpty +=== RUN TestPathMatcher_Matches/EmptyDoesNotMatchNonEmpty +=== RUN TestPathMatcher_Matches/EmptyDoesNotMatchNonEmptyEvenWithTrailingSlash +=== RUN TestPathMatcher_Matches/NonEmptyDoesNotMatchEmpty +=== RUN TestPathMatcher_Matches/ExactIsOK +=== RUN TestPathMatcher_Matches/SuffixIsOK +=== RUN TestPathMatcher_Matches/SubstringIsNotOK +=== RUN TestPathMatcher_Matches/PrefixIsNotOK +=== RUN TestPathMatcher_Matches/InterveningElementIsNotOK +=== RUN TestPathMatcher_Matches/GeneralNonMatch +=== RUN TestPathMatcher_Matches/UncleanPattern +=== RUN TestPathMatcher_Matches/UncleanArg +=== RUN TestPathMatcher_Matches/NonStringArg +--- PASS: TestPathMatcher_Matches (0.00s) + --- PASS: TestPathMatcher_Matches/EmptyMatchesEmpty (0.00s) + --- PASS: TestPathMatcher_Matches/EmptyDoesNotMatchNonEmpty (0.00s) + --- PASS: TestPathMatcher_Matches/EmptyDoesNotMatchNonEmptyEvenWithTrailingSlash (0.00s) + --- PASS: TestPathMatcher_Matches/NonEmptyDoesNotMatchEmpty (0.00s) + --- PASS: TestPathMatcher_Matches/ExactIsOK (0.00s) + --- PASS: TestPathMatcher_Matches/SuffixIsOK (0.00s) + --- PASS: TestPathMatcher_Matches/SubstringIsNotOK (0.00s) + --- PASS: TestPathMatcher_Matches/PrefixIsNotOK (0.00s) + --- PASS: TestPathMatcher_Matches/InterveningElementIsNotOK (0.00s) + --- PASS: TestPathMatcher_Matches/GeneralNonMatch (0.00s) + --- PASS: TestPathMatcher_Matches/UncleanPattern (0.00s) + --- PASS: TestPathMatcher_Matches/UncleanArg (0.00s) + --- PASS: TestPathMatcher_Matches/NonStringArg (0.00s) +=== RUN TestPathMatcher_String +=== RUN TestPathMatcher_String/General +=== RUN TestPathMatcher_String/Unclean +--- PASS: TestPathMatcher_String (0.00s) + --- PASS: TestPathMatcher_String/General (0.00s) + --- PASS: TestPathMatcher_String/Unclean (0.00s) +=== RUN TestSliceMatcher_Matches +=== RUN TestSliceMatcher_Matches/EmptyEqEmpty +=== RUN TestSliceMatcher_Matches/EmptyNeNotEmpty +=== RUN TestSliceMatcher_Matches/NotEmptyNeEmpty +=== RUN TestSliceMatcher_Matches/CompareRawValuesUsingEqualityHappy +=== RUN TestSliceMatcher_Matches/CompareRawValuesUsingEqualityUnhappy +=== RUN TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesHappy +=== RUN TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesUnhappy +=== RUN TestSliceMatcher_Matches/NestedHappy +=== RUN TestSliceMatcher_Matches/NestedUnhappy +=== RUN TestSliceMatcher_Matches/MatchSliceOfMoreSpecificTypes +=== RUN TestSliceMatcher_Matches/AcceptArraysToo +=== RUN TestSliceMatcher_Matches/RejectString +--- PASS: TestSliceMatcher_Matches (0.00s) + --- PASS: TestSliceMatcher_Matches/EmptyEqEmpty (0.00s) + --- PASS: TestSliceMatcher_Matches/EmptyNeNotEmpty (0.00s) + --- PASS: TestSliceMatcher_Matches/NotEmptyNeEmpty (0.00s) + --- PASS: TestSliceMatcher_Matches/CompareRawValuesUsingEqualityHappy (0.00s) + --- PASS: TestSliceMatcher_Matches/CompareRawValuesUsingEqualityUnhappy (0.00s) + --- PASS: TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesHappy (0.00s) + --- PASS: TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesUnhappy (0.00s) + --- PASS: TestSliceMatcher_Matches/NestedHappy (0.00s) + --- PASS: TestSliceMatcher_Matches/NestedUnhappy (0.00s) + --- PASS: TestSliceMatcher_Matches/MatchSliceOfMoreSpecificTypes (0.00s) + --- PASS: TestSliceMatcher_Matches/AcceptArraysToo (0.00s) + --- PASS: TestSliceMatcher_Matches/RejectString (0.00s) +=== RUN TestSliceMatcher_String +=== RUN TestSliceMatcher_String/int +=== RUN TestSliceMatcher_String/string +--- PASS: TestSliceMatcher_String (0.00s) + --- PASS: TestSliceMatcher_String/int (0.00s) + --- PASS: TestSliceMatcher_String/string (0.00s) +=== RUN TestStructMatcher_Matches +=== RUN TestStructMatcher_Matches/EmptyMatchesEmpty +=== RUN TestStructMatcher_Matches/EmptyMatchesAny +=== RUN TestStructMatcher_Matches/EmptyStillDoesNotMatchNonStruct +=== RUN TestStructMatcher_Matches/RegularFieldValuesUseEq1 +=== RUN TestStructMatcher_Matches/RegularFieldValuesUseEq2 +=== RUN TestStructMatcher_Matches/MatchersAreUsedVerbatim1 +=== RUN TestStructMatcher_Matches/MatchersAreUsedVerbatim2 +=== RUN TestStructMatcher_Matches/UnspecifiedFieldsAreIgnored +=== RUN TestStructMatcher_Matches/MissingFieldsReturnFailure +=== RUN TestStructMatcher_Matches/DerefsPointer +--- PASS: TestStructMatcher_Matches (0.00s) + --- PASS: TestStructMatcher_Matches/EmptyMatchesEmpty (0.00s) + --- PASS: TestStructMatcher_Matches/EmptyMatchesAny (0.00s) + --- PASS: TestStructMatcher_Matches/EmptyStillDoesNotMatchNonStruct (0.00s) + --- PASS: TestStructMatcher_Matches/RegularFieldValuesUseEq1 (0.00s) + --- PASS: TestStructMatcher_Matches/RegularFieldValuesUseEq2 (0.00s) + --- PASS: TestStructMatcher_Matches/MatchersAreUsedVerbatim1 (0.00s) + --- PASS: TestStructMatcher_Matches/MatchersAreUsedVerbatim2 (0.00s) + --- PASS: TestStructMatcher_Matches/UnspecifiedFieldsAreIgnored (0.00s) + --- PASS: TestStructMatcher_Matches/MissingFieldsReturnFailure (0.00s) + --- PASS: TestStructMatcher_Matches/DerefsPointer (0.00s) +=== RUN TestStructMatcher_String +=== RUN TestStructMatcher_String/UsesStringer +=== RUN TestStructMatcher_String/ReprIfNotStringable +=== RUN TestStructMatcher_String/SortsByKey +--- PASS: TestStructMatcher_String (0.00s) + --- PASS: TestStructMatcher_String/UsesStringer (0.00s) + --- PASS: TestStructMatcher_String/ReprIfNotStringable (0.00s) + --- PASS: TestStructMatcher_String/SortsByKey (0.00s) +PASS +ok github.com/harmony-one/harmony/gomock_matchers 0.013s +? github.com/harmony-one/harmony/hmy [no test files] +? github.com/harmony-one/harmony/hmyclient [no test files] +=== RUN TestIncorrectResponse +--- PASS: TestIncorrectResponse (0.00s) +=== RUN TestUpdateConsensusReady +--- PASS: TestUpdateConsensusReady (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/attack 0.033s +=== RUN TestEncodeAndDecode +--- PASS: TestEncodeAndDecode (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/bech32 0.011s +=== RUN TestUpdateStakingList +--- PASS: TestUpdateStakingList (0.03s) +PASS +ok github.com/harmony-one/harmony/internal/blsgen 0.045s +? github.com/harmony-one/harmony/internal/chain [no test files] +=== RUN TestIsBech32Address +--- PASS: TestIsBech32Address (0.00s) +=== RUN TestHashJsonValidation +--- PASS: TestHashJsonValidation (0.00s) +=== RUN TestAddressUnmarshalJSON +--- PASS: TestAddressUnmarshalJSON (0.00s) +=== RUN TestAddressHexChecksum +--- PASS: TestAddressHexChecksum (0.00s) +=== RUN TestAddressToBech32 +--- PASS: TestAddressToBech32 (0.00s) +=== RUN TestParseAddr +--- PASS: TestParseAddr (0.00s) +=== RUN TestAddress_Scan +=== RUN TestAddress_Scan/working_scan +=== RUN TestAddress_Scan/non_working_scan +=== RUN TestAddress_Scan/invalid_length_scan +--- PASS: TestAddress_Scan (0.00s) + --- PASS: TestAddress_Scan/working_scan (0.00s) + --- PASS: TestAddress_Scan/non_working_scan (0.00s) + --- PASS: TestAddress_Scan/invalid_length_scan (0.00s) +=== RUN TestAddress_Value +=== RUN TestAddress_Value/Working_value +--- PASS: TestAddress_Value (0.00s) + --- PASS: TestAddress_Value/Working_value (0.00s) +=== RUN TestBytesConversion +--- PASS: TestBytesConversion (0.00s) +=== RUN TestHash_Scan +=== RUN TestHash_Scan/working_scan +=== RUN TestHash_Scan/non_working_scan +=== RUN TestHash_Scan/invalid_length_scan +--- PASS: TestHash_Scan (0.00s) + --- PASS: TestHash_Scan/working_scan (0.00s) + --- PASS: TestHash_Scan/non_working_scan (0.00s) + --- PASS: TestHash_Scan/invalid_length_scan (0.00s) +=== RUN TestHash_Value +=== RUN TestHash_Value/Working_value +--- PASS: TestHash_Value (0.00s) + --- PASS: TestHash_Value/Working_value (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/common 0.033s +=== RUN TestNodeConfigSingleton +--- PASS: TestNodeConfigSingleton (0.00s) +=== RUN TestNodeConfigMultiple +--- PASS: TestNodeConfigMultiple (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/configs/node 0.030s +=== RUN TestMainnetInstanceForEpoch +--- PASS: TestMainnetInstanceForEpoch (0.00s) +=== RUN TestCalcEpochNumber +--- PASS: TestCalcEpochNumber (0.00s) +=== RUN TestGetShardingStructure +--- PASS: TestGetShardingStructure (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/configs/sharding 0.123s +=== RUN TestNew +=== RUN TestNew/Empty +=== RUN TestNew/Regular +=== RUN TestNew/Truncated +--- PASS: TestNew (0.00s) + --- PASS: TestNew/Empty (0.00s) + --- PASS: TestNew/Regular (0.00s) + --- PASS: TestNew/Truncated (0.00s) +=== RUN Test_ctxError_updateCtx +=== RUN Test_ctxError_updateCtx/Empty +=== RUN Test_ctxError_updateCtx/Regular +=== RUN Test_ctxError_updateCtx/Truncated +--- PASS: Test_ctxError_updateCtx (0.00s) + --- PASS: Test_ctxError_updateCtx/Empty (0.00s) + --- PASS: Test_ctxError_updateCtx/Regular (0.00s) + --- PASS: Test_ctxError_updateCtx/Truncated (0.00s) +=== RUN Test_ctxError_Error +=== RUN Test_ctxError_Error/AllEmpty +=== RUN Test_ctxError_Error/CtxEmpty +=== RUN Test_ctxError_Error/MsgEmpty +=== RUN Test_ctxError_Error/Regular +--- PASS: Test_ctxError_Error (0.00s) + --- PASS: Test_ctxError_Error/AllEmpty (0.00s) + --- PASS: Test_ctxError_Error/CtxEmpty (0.00s) + --- PASS: Test_ctxError_Error/MsgEmpty (0.00s) + --- PASS: Test_ctxError_Error/Regular (0.00s) +=== RUN Test_ctxError_Message +=== RUN Test_ctxError_Message/AllEmpty +=== RUN Test_ctxError_Message/CtxEmpty +=== RUN Test_ctxError_Message/MsgEmpty +=== RUN Test_ctxError_Message/Regular +--- PASS: Test_ctxError_Message (0.00s) + --- PASS: Test_ctxError_Message/AllEmpty (0.00s) + --- PASS: Test_ctxError_Message/CtxEmpty (0.00s) + --- PASS: Test_ctxError_Message/MsgEmpty (0.00s) + --- PASS: Test_ctxError_Message/Regular (0.00s) +=== RUN Test_ctxError_Contexts +=== RUN Test_ctxError_Contexts/Empty +=== RUN Test_ctxError_Contexts/Regular +--- PASS: Test_ctxError_Contexts (0.00s) + --- PASS: Test_ctxError_Contexts/Empty (0.00s) + --- PASS: Test_ctxError_Contexts/Regular (0.00s) +=== RUN Test_ctxError_WithCause +=== RUN Test_ctxError_WithCause/CtxError +=== RUN Test_ctxError_WithCause/RegularError +--- PASS: Test_ctxError_WithCause (0.00s) + --- PASS: Test_ctxError_WithCause/CtxError (0.00s) + --- PASS: Test_ctxError_WithCause/RegularError (0.00s) +=== RUN Test_ctxError_Log15 +=== RUN Test_ctxError_Log15/Empty +=== RUN Test_ctxError_Log15/Regular +--- PASS: Test_ctxError_Log15 (0.00s) + --- PASS: Test_ctxError_Log15/Empty (0.00s) + --- PASS: Test_ctxError_Log15/Regular (0.00s) +=== RUN TestLog15 +=== RUN TestLog15/Regular +=== RUN TestLog15/CtxError +--- PASS: TestLog15 (0.00s) + --- PASS: TestLog15/Regular (0.00s) + --- PASS: TestLog15/CtxError (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/ctxerror 0.017s +? github.com/harmony-one/harmony/internal/ctxerror/mock [no test files] +=== RUN TestFoundationalNodeAccounts +=== RUN TestFoundationalNodeAccounts/V0 +=== RUN TestFoundationalNodeAccounts/V1 +=== RUN TestFoundationalNodeAccounts/V1_1 +=== RUN TestFoundationalNodeAccounts/V1_2 +--- PASS: TestFoundationalNodeAccounts (0.64s) + --- PASS: TestFoundationalNodeAccounts/V0 (0.07s) + --- PASS: TestFoundationalNodeAccounts/V1 (0.20s) + --- PASS: TestFoundationalNodeAccounts/V1_1 (0.21s) + --- PASS: TestFoundationalNodeAccounts/V1_2 (0.16s) +=== RUN TestString +--- PASS: TestString (0.00s) +=== RUN TestCommitteeAccounts +--- PASS: TestCommitteeAccounts (1.64s) +=== RUN TestHarmonyAccounts +--- PASS: TestHarmonyAccounts (0.32s) +=== RUN TestLocalTestAccounts +=== RUN TestLocalTestAccounts/FoundationalV1 +=== RUN TestLocalTestAccounts/FoundationalV2 +=== RUN TestLocalTestAccounts/HarmonyV0 +=== RUN TestLocalTestAccounts/HarmonyV1 +=== RUN TestLocalTestAccounts/HarmonyV2 +=== RUN TestLocalTestAccounts/FoundationalV0 +--- PASS: TestLocalTestAccounts (0.02s) + --- PASS: TestLocalTestAccounts/FoundationalV1 (0.00s) + --- PASS: TestLocalTestAccounts/FoundationalV2 (0.00s) + --- PASS: TestLocalTestAccounts/HarmonyV0 (0.00s) + --- PASS: TestLocalTestAccounts/HarmonyV1 (0.00s) + --- PASS: TestLocalTestAccounts/HarmonyV2 (0.00s) + --- PASS: TestLocalTestAccounts/FoundationalV0 (0.00s) +=== RUN TestNewNodeAccounts +--- PASS: TestNewNodeAccounts (0.00s) +=== RUN TestTNHarmonyAccounts +--- PASS: TestTNHarmonyAccounts (0.29s) +=== RUN TestTNFoundationalAccounts +--- PASS: TestTNFoundationalAccounts (0.08s) +PASS +ok github.com/harmony-one/harmony/internal/genesis 3.132s +? github.com/harmony-one/harmony/internal/hmyapi [no test files] +? github.com/harmony-one/harmony/internal/hmyapi/filters [no test files] +? github.com/harmony-one/harmony/internal/keystore [no test files] +? github.com/harmony-one/harmony/internal/memprofiling [no test files] +=== RUN TestCheckCompatible +--- PASS: TestCheckCompatible (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/params 0.011s +? github.com/harmony-one/harmony/internal/profiler [no test files] +? github.com/harmony-one/harmony/internal/shardchain [no test files] +=== RUN TestFromHex +--- PASS: TestFromHex (0.00s) +=== RUN TestIsHex +--- PASS: TestIsHex (0.00s) +=== RUN TestFromHexOddLength +--- PASS: TestFromHexOddLength (0.00s) +=== RUN TestNoPrefixShortHexOddLength +--- PASS: TestNoPrefixShortHexOddLength (0.00s) +=== RUN TestCopyBytes +--- PASS: TestCopyBytes (0.00s) +=== RUN TestPadBytes +--- PASS: TestPadBytes (0.00s) +=== RUN TestReadWalletProfile +NOTICE: Chain ID not found in config profile, assuming 1; please add "chain_id = 1" to section [default] of wallet.ini before 2020-01 +NOTICE: Chain ID not found in config profile, assuming 2; please add "chain_id = 2" to section [testnet] of wallet.ini before 2020-01 +--- PASS: TestReadWalletProfile (0.00s) +=== RUN TestStringsToAddrs +--- PASS: TestStringsToAddrs (0.00s) +=== RUN TestAddrListFunc +--- PASS: TestAddrListFunc (0.00s) +=== RUN TestWithCallerSkip +=== RUN TestWithCallerSkip/0 +=== RUN TestWithCallerSkip/1 +=== RUN TestWithCallerSkip/2 +--- PASS: TestWithCallerSkip (0.00s) + --- PASS: TestWithCallerSkip/0 (0.00s) + --- PASS: TestWithCallerSkip/1 (0.00s) + --- PASS: TestWithCallerSkip/2 (0.00s) +=== RUN TestWithCaller +--- PASS: TestWithCaller (0.00s) +=== RUN TestGetLogger +--- PASS: TestGetLogger (0.00s) +=== RUN TestBToMb +--- PASS: TestBToMb (0.00s) +=== RUN TestGetPassphraseFromSource_Pass +--- PASS: TestGetPassphraseFromSource_Pass (0.00s) +=== RUN TestGetPassphraseFromSource_File +=== RUN TestGetPassphraseFromSource_File/stdin +=== RUN TestGetPassphraseFromSource_File/file +=== RUN TestGetPassphraseFromSource_File/fd +--- PASS: TestGetPassphraseFromSource_File (0.00s) + --- PASS: TestGetPassphraseFromSource_File/stdin (0.00s) + --- PASS: TestGetPassphraseFromSource_File/file (0.00s) + --- PASS: TestGetPassphraseFromSource_File/fd (0.00s) + tempfile.go:41: cannot close test file /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/TestGetPassphraseFromSource_File_fd610708151: close /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/TestGetPassphraseFromSource_File_fd610708151: bad file descriptor +=== RUN TestSingleton +--- PASS: TestSingleton (0.00s) +=== RUN TestExampleTestLogRedirectorUsingGetLogInstance +--- PASS: TestExampleTestLogRedirectorUsingGetLogInstance (0.00s) + testing.go:57: [info] what are you doing my son, port="", ip="" + testing.go:57: [warn] succeding you father, port="", ip="" +=== RUN TestNewTestLogRedirector +--- PASS: TestNewTestLogRedirector (0.00s) +=== RUN TestTestLogRedirector_Log +=== RUN TestTestLogRedirector_Log/WithoutContexts +=== RUN TestTestLogRedirector_Log/WithContexts +--- PASS: TestTestLogRedirector_Log (0.00s) + --- PASS: TestTestLogRedirector_Log/WithoutContexts (0.00s) + --- PASS: TestTestLogRedirector_Log/WithContexts (0.00s) +=== RUN TestTestLogRedirector_Close +--- PASS: TestTestLogRedirector_Close (0.00s) +=== RUN TestNewTimeout +--- PASS: TestNewTimeout (0.00s) +=== RUN TestCheckExpire +--- PASS: TestCheckExpire (2.00s) +=== RUN TestConvertFixedDataIntoByteArray +--- PASS: TestConvertFixedDataIntoByteArray (0.00s) +=== RUN TestAllocateShard +--- PASS: TestAllocateShard (0.00s) +=== RUN TestGenKeyP2P +--- PASS: TestGenKeyP2P (0.29s) +=== RUN TestGenKeyP2PRand +--- PASS: TestGenKeyP2PRand (0.18s) +=== RUN TestSaveLoadPrivateKey +--- PASS: TestSaveLoadPrivateKey (0.25s) +=== RUN TestSaveLoadKeyFile +--- PASS: TestSaveLoadKeyFile (0.51s) +=== RUN TestIsPrivateIP +--- PASS: TestIsPrivateIP (0.00s) +=== RUN TestStringsToPeers +--- PASS: TestStringsToPeers (0.00s) +PASS +ok github.com/harmony-one/harmony/internal/utils 3.273s +? github.com/harmony-one/harmony/internal/utils/gomock_reflect_069400606 [no test files] +? github.com/harmony-one/harmony/internal/utils/gomock_reflect_579506979 [no test files] +? github.com/harmony-one/harmony/internal/utils/mock [no test files] +? github.com/harmony-one/harmony/internal/utils/mock_log [no test files] +? github.com/harmony-one/harmony/internal/utils/testing [no test files] +=== RUN TestAddNewBlock +--- PASS: TestAddNewBlock (0.36s) +=== RUN TestVerifyNewBlock +--- PASS: TestVerifyNewBlock (0.39s) +=== RUN TestNewNode +--- PASS: TestNewNode (0.39s) +=== RUN TestLegacySyncingPeerProvider +=== RUN TestLegacySyncingPeerProvider/ShardChain +=== RUN TestLegacySyncingPeerProvider/BeaconChain +=== RUN TestLegacySyncingPeerProvider/NoMatch +--- PASS: TestLegacySyncingPeerProvider (0.00s) + --- PASS: TestLegacySyncingPeerProvider/ShardChain (0.00s) + --- PASS: TestLegacySyncingPeerProvider/BeaconChain (0.00s) + --- PASS: TestLegacySyncingPeerProvider/NoMatch (0.00s) +=== RUN TestDNSSyncingPeerProvider +=== RUN TestDNSSyncingPeerProvider/Happy +=== RUN TestDNSSyncingPeerProvider/LookupError +--- PASS: TestDNSSyncingPeerProvider (0.00s) + --- PASS: TestDNSSyncingPeerProvider/Happy (0.00s) + --- PASS: TestDNSSyncingPeerProvider/LookupError (0.00s) +=== RUN TestLocalSyncingPeerProvider +=== RUN TestLocalSyncingPeerProvider/BeaconChain +=== RUN TestLocalSyncingPeerProvider/Shard1Chain +=== RUN TestLocalSyncingPeerProvider/InvalidShard +--- PASS: TestLocalSyncingPeerProvider (0.00s) + --- PASS: TestLocalSyncingPeerProvider/BeaconChain (0.00s) + --- PASS: TestLocalSyncingPeerProvider/Shard1Chain (0.00s) + --- PASS: TestLocalSyncingPeerProvider/InvalidShard (0.00s) +=== RUN TestAddPeers +--- PASS: TestAddPeers (0.36s) +=== RUN TestAddBeaconPeer +--- PASS: TestAddBeaconPeer (0.35s) +=== RUN TestUpdateStakingList +--- PASS: TestUpdateStakingList (0.39s) +PASS +ok github.com/harmony-one/harmony/node 4.823s +=== RUN TestNewWorker +--- PASS: TestNewWorker (0.00s) +=== RUN TestCommitTransactions +--- PASS: TestCommitTransactions (0.00s) +PASS +ok github.com/harmony-one/harmony/node/worker 0.110s +=== RUN TestNewBackoffBase +--- PASS: TestNewBackoffBase (0.00s) +=== RUN TestBaseBackOffSleep +--- PASS: TestBaseBackOffSleep (0.00s) +=== RUN TestNewExpBackoff +--- PASS: TestNewExpBackoff (0.00s) +=== RUN TestExpBackoffSleep +--- PASS: TestExpBackoffSleep (0.00s) +=== RUN TestExpBackoffAdjustment +--- PASS: TestExpBackoffAdjustment (0.00s) +=== RUN TestExpBackoffReset +--- PASS: TestExpBackoffReset (0.00s) +=== RUN TestGroupID_String +=== RUN TestGroupID_String/empty +=== RUN TestGroupID_String/ABC +--- PASS: TestGroupID_String (0.00s) + --- PASS: TestGroupID_String/empty (0.00s) + --- PASS: TestGroupID_String/ABC (0.00s) +=== RUN TestActionTypeString +=== RUN TestActionTypeString/ActionStart +=== RUN TestActionTypeString/ActionPause +=== RUN TestActionTypeString/ActionResume +=== RUN TestActionTypeString/ActionStop +=== RUN TestActionTypeString/UnknownAction +--- PASS: TestActionTypeString (0.00s) + --- PASS: TestActionTypeString/ActionStart (0.00s) + --- PASS: TestActionTypeString/ActionPause (0.00s) + --- PASS: TestActionTypeString/ActionResume (0.00s) + --- PASS: TestActionTypeString/ActionStop (0.00s) + --- PASS: TestActionTypeString/UnknownAction (0.00s) +=== RUN TestGroupAction +=== RUN TestGroupAction/BeaconStart +=== RUN TestGroupAction/BeaconPause +=== RUN TestGroupAction/BeaconResume +=== RUN TestGroupAction/BeaconStop +=== RUN TestGroupAction/BeaconUnknown +--- PASS: TestGroupAction (0.00s) + --- PASS: TestGroupAction/BeaconStart (0.00s) + --- PASS: TestGroupAction/BeaconPause (0.00s) + --- PASS: TestGroupAction/BeaconResume (0.00s) + --- PASS: TestGroupAction/BeaconStop (0.00s) + --- PASS: TestGroupAction/BeaconUnknown (0.00s) +PASS +ok github.com/harmony-one/harmony/p2p 0.029s +? github.com/harmony-one/harmony/p2p/host [no test files] +=== RUN TestHostV2_SendMessageToGroups +=== RUN TestHostV2_SendMessageToGroups/Basic +=== RUN TestHostV2_SendMessageToGroups/Error +--- PASS: TestHostV2_SendMessageToGroups (0.00s) + --- PASS: TestHostV2_SendMessageToGroups/Basic (0.00s) + --- PASS: TestHostV2_SendMessageToGroups/Error (0.00s) +=== RUN TestGroupReceiver_Close +--- PASS: TestGroupReceiver_Close (0.00s) +=== RUN TestGroupReceiver_Receive +--- PASS: TestGroupReceiver_Receive (0.00s) +=== RUN TestHostV2_GroupReceiver +=== RUN TestHostV2_GroupReceiver/Basic +=== RUN TestHostV2_GroupReceiver/Error +=== RUN TestHostV2_GroupReceiver/Closed +--- PASS: TestHostV2_GroupReceiver (0.00s) + --- PASS: TestHostV2_GroupReceiver/Basic (0.00s) + --- PASS: TestHostV2_GroupReceiver/Error (0.00s) + --- PASS: TestHostV2_GroupReceiver/Closed (0.00s) +PASS +ok github.com/harmony-one/harmony/p2p/host/hostv2 0.021s +? github.com/harmony-one/harmony/p2p/host/hostv2/mock [no test files] +? github.com/harmony-one/harmony/p2p/host/mock [no test files] +? github.com/harmony-one/harmony/p2p/p2pimpl [no test files] +? github.com/harmony-one/harmony/scripts [no test files] +=== RUN TestGetHashFromNodeList +--- PASS: TestGetHashFromNodeList (0.00s) +=== RUN TestHash +--- PASS: TestHash (0.00s) +PASS +ok github.com/harmony-one/harmony/shard 0.027s +=== RUN TestPrecisionMultiplier +--- PASS: TestPrecisionMultiplier (0.00s) +=== RUN TestNewDecFromStr +--- PASS: TestNewDecFromStr (0.00s) +=== RUN TestDecString +--- PASS: TestDecString (0.00s) +=== RUN TestEqualities +--- PASS: TestEqualities (0.00s) +=== RUN TestDecsEqual +--- PASS: TestDecsEqual (0.00s) +=== RUN TestArithmetic +--- PASS: TestArithmetic (0.00s) +=== RUN TestBankerRoundChop +--- PASS: TestBankerRoundChop (0.00s) +=== RUN TestTruncate +--- PASS: TestTruncate (0.00s) +=== RUN TestDecMarshalJSON +=== RUN TestDecMarshalJSON/zero +=== RUN TestDecMarshalJSON/one +=== RUN TestDecMarshalJSON/ten +=== RUN TestDecMarshalJSON/12340 +=== RUN TestDecMarshalJSON/zeroInt +=== RUN TestDecMarshalJSON/oneInt +=== RUN TestDecMarshalJSON/tenInt +=== RUN TestDecMarshalJSON/12340Int +--- PASS: TestDecMarshalJSON (0.00s) + --- PASS: TestDecMarshalJSON/zero (0.00s) + --- PASS: TestDecMarshalJSON/one (0.00s) + --- PASS: TestDecMarshalJSON/ten (0.00s) + --- PASS: TestDecMarshalJSON/12340 (0.00s) + --- PASS: TestDecMarshalJSON/zeroInt (0.00s) + --- PASS: TestDecMarshalJSON/oneInt (0.00s) + --- PASS: TestDecMarshalJSON/tenInt (0.00s) + --- PASS: TestDecMarshalJSON/12340Int (0.00s) +=== RUN TestSerializationText +--- PASS: TestSerializationText (0.00s) +=== RUN TestStringOverflow +--- PASS: TestStringOverflow (0.00s) +=== RUN TestDecCeil +--- PASS: TestDecCeil (0.00s) +PASS +ok github.com/harmony-one/harmony/staking/types 0.021s +? github.com/harmony-one/harmony/test/chain [no test files] +? github.com/harmony-one/harmony/test/crypto/bls [no test files] +? github.com/harmony-one/harmony/test/p2pchat [no test files] +? github.com/harmony-one/harmony/test/txgen [no test files] +go test succeeded. +Some checks failed; see output above. diff --git a/test/chain/main.go b/test/chain/main.go index cd3968d48..19d3e494c 100644 --- a/test/chain/main.go +++ b/test/chain/main.go @@ -6,6 +6,8 @@ import ( "log" "math/big" + types2 "github.com/harmony-one/harmony/staking/types" + "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/common" @@ -127,7 +129,7 @@ func fundFaucetContract(chain *core.BlockChain) { amount := 720000 tx, _ := types.SignTx(types.NewTransaction(nonce+uint64(4), StakingAddress, 0, big.NewInt(int64(amount)), params.TxGas, nil, nil), types.HomesteadSigner{}, FaucetPriKey) txs = append(txs, tx) - err := contractworker.CommitTransactions(txs, testUserAddress) + err := contractworker.CommitTransactions(txs, types2.StakingTransactions{}, testUserAddress) if err != nil { fmt.Println(err) } @@ -165,7 +167,7 @@ func callFaucetContractToFundAnAddress(chain *core.BlockChain) { callEnc = append(callEnc, paddedAddress...) callfaucettx, _ := types.SignTx(types.NewTransaction(nonce+uint64(5), faucetContractAddress, 0, big.NewInt(0), params.TxGasContractCreation*10, nil, callEnc), types.HomesteadSigner{}, FaucetPriKey) - err = contractworker.CommitTransactions(types.Transactions{callfaucettx}, testUserAddress) + err = contractworker.CommitTransactions(types.Transactions{callfaucettx}, types2.StakingTransactions{}, testUserAddress) if err != nil { fmt.Println(err) } @@ -243,7 +245,7 @@ func playStaking(chain *core.BlockChain) { tx, _ := types.SignTx(types.NewTransaction(0, stakeContractAddress, 0, big.NewInt(int64(stake)), params.TxGas*5, nil, callEncl), types.HomesteadSigner{}, allRandomUserKey[i]) stakingtxns = append(stakingtxns, tx) } - err = contractworker.CommitTransactions(stakingtxns, common.Address{}) + err = contractworker.CommitTransactions(stakingtxns, types2.StakingTransactions{}, common.Address{}) if err != nil { fmt.Println(err) @@ -301,7 +303,7 @@ func playWithdrawStaking(chain *core.BlockChain) { withdrawstakingtxns = append(withdrawstakingtxns, tx) } - err = contractworker.CommitTransactions(withdrawstakingtxns, common.Address{}) + err = contractworker.CommitTransactions(withdrawstakingtxns, types2.StakingTransactions{}, common.Address{}) if err != nil { fmt.Println("error:") fmt.Println(err) From 6141f8c7f3a54298a12f148971f8dfdbbe540801 Mon Sep 17 00:00:00 2001 From: Rongjian Lan Date: Thu, 26 Sep 2019 14:07:32 -0700 Subject: [PATCH 3/4] remove test.txt --- test.txt | 1638 ------------------------------------------------------ 1 file changed, 1638 deletions(-) delete mode 100644 test.txt diff --git a/test.txt b/test.txt deleted file mode 100644 index 9655fe5a3..000000000 --- a/test.txt +++ /dev/null @@ -1,1638 +0,0 @@ -Checking go.mod... -go.mod stayed the same as in the repository. -Running golint... -golint passed. -Running goimports... -goimports passed. -Running go generate... -go generate FAILED! ---- BEGIN go generate --- -api/client/service/proto/client.go -protoc client.proto --go_out=plugins=grpc:. -api/proto/message/message.go -protoc message.proto --go_out=plugins=grpc:. -api/service/syncing/downloader/proto/downloader.go -protoc downloader.proto --go_out=plugins=grpc:. -cmd/client/wallet/main.go -go run ../../../scripts/wallet_embed_ini_files.go -dyld: Library not loaded: lib/libbls384_256.dylib - Referenced from: /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/go-build550183318/b001/exe/wallet_embed_ini_files - Reason: image not found -signal: abort trap -cmd/client/wallet/main.go:263: running "go": exit status 1 -cmd/client/wallet_stress_test/main.go -go run ../../../scripts/wallet_embed_ini_files.go -dyld: Library not loaded: lib/libbls384_256.dylib - Referenced from: /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/go-build903453504/b001/exe/wallet_embed_ini_files - Reason: image not found -signal: abort trap -cmd/client/wallet_stress_test/main.go:149: running "go": exit status 1 -core/rawdb/interfaces.go -mockgen -source interfaces.go -destination mock/mock.go -internal/ctxerror/ctxerror.go -mockgen -source ctxerror.go -destination mock/ctxerror.go -internal/utils/logging_test.go -mockgen -destination mock_log/logger.go github.com/ethereum/go-ethereum/log Logger -mockgen -destination mock_log/handler.go github.com/ethereum/go-ethereum/log Handler -internal/utils/testing.go -mockgen -source=testing.go -destination=mock/testing.go -p2p/host.go -mockgen -source host.go -destination=host/mock/host_mock.go -p2p/host/hostv2/hostv2.go -mockgen -source hostv2.go -destination=mock/hostv2_mock.go -p2p/stream.go -mockgen -source stream.go -package p2p -destination=mock_stream.go ---- END go generate --- -Running go test... -=== RUN TestTextHash ---- PASS: TestTextHash (0.00s) -=== RUN TestHDPathParsing ---- PASS: TestHDPathParsing (0.00s) -=== RUN TestURLParsing ---- PASS: TestURLParsing (0.00s) -=== RUN TestURLString ---- PASS: TestURLString (0.00s) -=== RUN TestURLMarshalJSON ---- PASS: TestURLMarshalJSON (0.00s) -=== RUN TestURLUnmarshalJSON ---- PASS: TestURLUnmarshalJSON (0.00s) -=== RUN TestURLComparison ---- PASS: TestURLComparison (0.00s) -PASS -ok github.com/harmony-one/harmony/accounts 0.124s -=== RUN TestReader ---- PASS: TestReader (0.00s) -=== RUN TestTestNumbers ---- PASS: TestTestNumbers (0.00s) -=== RUN TestTestString ---- PASS: TestTestString (0.00s) -=== RUN TestTestBool ---- PASS: TestTestBool (0.00s) -=== RUN TestTestSlice ---- PASS: TestTestSlice (0.00s) -=== RUN TestMethodSignature ---- PASS: TestMethodSignature (0.00s) -=== RUN TestMultiPack ---- PASS: TestMultiPack (0.00s) -=== RUN TestInputVariableInputLength ---- PASS: TestInputVariableInputLength (0.00s) -=== RUN TestInputFixedArrayAndVariableInputLength ---- PASS: TestInputFixedArrayAndVariableInputLength (0.00s) -=== RUN TestDefaultFunctionParsing ---- PASS: TestDefaultFunctionParsing (0.00s) -=== RUN TestBareEvents ---- PASS: TestBareEvents (0.00s) -=== RUN TestUnpackEvent ---- PASS: TestUnpackEvent (0.00s) -=== RUN TestUnpackEventIntoMap ---- PASS: TestUnpackEventIntoMap (0.00s) -=== RUN TestUnpackMethodIntoMap ---- PASS: TestUnpackMethodIntoMap (0.00s) -=== RUN TestUnpackIntoMapNamingConflict ---- PASS: TestUnpackIntoMapNamingConflict (0.00s) -=== RUN TestABI_MethodByID ---- PASS: TestABI_MethodByID (0.00s) -=== RUN TestEventId ---- PASS: TestEventId (0.00s) -=== RUN TestEventString ---- PASS: TestEventString (0.00s) -=== RUN TestEventMultiValueWithArrayUnpack ---- PASS: TestEventMultiValueWithArrayUnpack (0.00s) -=== RUN TestEventTupleUnpack -=== RUN TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure -=== RUN TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_slice -=== RUN TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure_with_abi:_tag -=== RUN TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_duplicated_abi_tag -=== RUN TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_a_field_and_a_tag_mapping_to_the_same_abi_variable -=== RUN TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_an_empty_tag -=== RUN TestEventTupleUnpack/Can_unpack_Pledge_event_into_structure -=== RUN TestEventTupleUnpack/Can_unpack_Pledge_event_into_slice -=== RUN TestEventTupleUnpack/Can_unpack_Pledge_event_into_an_array -=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_slice_with_wrong_types -=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_struct_with_wrong_filed_types -=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_too_short_slice -=== RUN TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_map -=== RUN TestEventTupleUnpack/Can_unpack_abi_variables_with_mixed_case ---- PASS: TestEventTupleUnpack (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_slice (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_ERC20_Transfer_event_into_structure_with_abi:_tag (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_duplicated_abi_tag (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_a_field_and_a_tag_mapping_to_the_same_abi_variable (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_ERC20_Transfer_event_with_an_empty_tag (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_Pledge_event_into_structure (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_Pledge_event_into_slice (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_Pledge_event_into_an_array (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_slice_with_wrong_types (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_struct_with_wrong_filed_types (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_too_short_slice (0.00s) - --- PASS: TestEventTupleUnpack/Can_not_unpack_Pledge_event_into_map (0.00s) - --- PASS: TestEventTupleUnpack/Can_unpack_abi_variables_with_mixed_case (0.00s) -=== RUN TestEventUnpackIndexed ---- PASS: TestEventUnpackIndexed (0.00s) -=== RUN TestEventIndexedWithArrayUnpack ---- PASS: TestEventIndexedWithArrayUnpack (0.00s) -=== RUN TestMethodString ---- PASS: TestMethodString (0.00s) -=== RUN TestNumberTypes ---- PASS: TestNumberTypes (0.00s) -=== RUN TestPack ---- PASS: TestPack (0.00s) -=== RUN TestMethodPack ---- PASS: TestMethodPack (0.00s) -=== RUN TestPackNumber ---- PASS: TestPackNumber (0.00s) -=== RUN TestReflectNameToStruct -=== RUN TestReflectNameToStruct/OneToOneCorrespondance -=== RUN TestReflectNameToStruct/MissingFieldsInStruct -=== RUN TestReflectNameToStruct/MoreFieldsInStructThanArgs -=== RUN TestReflectNameToStruct/MissingFieldInArgs -=== RUN TestReflectNameToStruct/NoAbiDescriptor -=== RUN TestReflectNameToStruct/NoArgs -=== RUN TestReflectNameToStruct/DifferentName -=== RUN TestReflectNameToStruct/DifferentName#01 -=== RUN TestReflectNameToStruct/MultipleFields -=== RUN TestReflectNameToStruct/MultipleFieldsABIMissing -=== RUN TestReflectNameToStruct/NameConflict -=== RUN TestReflectNameToStruct/Underscored -=== RUN TestReflectNameToStruct/DoubleMapping -=== RUN TestReflectNameToStruct/AlreadyMapped ---- PASS: TestReflectNameToStruct (0.00s) - --- PASS: TestReflectNameToStruct/OneToOneCorrespondance (0.00s) - --- PASS: TestReflectNameToStruct/MissingFieldsInStruct (0.00s) - --- PASS: TestReflectNameToStruct/MoreFieldsInStructThanArgs (0.00s) - --- PASS: TestReflectNameToStruct/MissingFieldInArgs (0.00s) - --- PASS: TestReflectNameToStruct/NoAbiDescriptor (0.00s) - --- PASS: TestReflectNameToStruct/NoArgs (0.00s) - --- PASS: TestReflectNameToStruct/DifferentName (0.00s) - --- PASS: TestReflectNameToStruct/DifferentName#01 (0.00s) - --- PASS: TestReflectNameToStruct/MultipleFields (0.00s) - --- PASS: TestReflectNameToStruct/MultipleFieldsABIMissing (0.00s) - --- PASS: TestReflectNameToStruct/NameConflict (0.00s) - --- PASS: TestReflectNameToStruct/Underscored (0.00s) - --- PASS: TestReflectNameToStruct/DoubleMapping (0.00s) - --- PASS: TestReflectNameToStruct/AlreadyMapped (0.00s) -=== RUN TestTypeRegexp ---- PASS: TestTypeRegexp (0.00s) -=== RUN TestTypeCheck ---- PASS: TestTypeCheck (0.00s) -=== RUN TestUnpack -=== RUN TestUnpack/0 -=== RUN TestUnpack/1 -=== RUN TestUnpack/2 -=== RUN TestUnpack/3 -=== RUN TestUnpack/4 -=== RUN TestUnpack/5 -=== RUN TestUnpack/6 -=== RUN TestUnpack/7 -=== RUN TestUnpack/8 -=== RUN TestUnpack/9 -=== RUN TestUnpack/10 -=== RUN TestUnpack/11 -=== RUN TestUnpack/12 -=== RUN TestUnpack/13 -=== RUN TestUnpack/14 -=== RUN TestUnpack/15 -=== RUN TestUnpack/16 -=== RUN TestUnpack/17 -=== RUN TestUnpack/18 -=== RUN TestUnpack/19 -=== RUN TestUnpack/20 -=== RUN TestUnpack/21 -=== RUN TestUnpack/22 -=== RUN TestUnpack/23 -=== RUN TestUnpack/24 -=== RUN TestUnpack/25 -=== RUN TestUnpack/26 -=== RUN TestUnpack/27 -=== RUN TestUnpack/28 -=== RUN TestUnpack/29 -=== RUN TestUnpack/30 -=== RUN TestUnpack/31 -=== RUN TestUnpack/32 -=== RUN TestUnpack/33 -=== RUN TestUnpack/34 -=== RUN TestUnpack/35 -=== RUN TestUnpack/36 -=== RUN TestUnpack/37 -=== RUN TestUnpack/38 -=== RUN TestUnpack/39 -=== RUN TestUnpack/40 -=== RUN TestUnpack/41 -=== RUN TestUnpack/42 -=== RUN TestUnpack/43 -=== RUN TestUnpack/44 -=== RUN TestUnpack/45 -=== RUN TestUnpack/46 -=== RUN TestUnpack/47 -=== RUN TestUnpack/48 -=== RUN TestUnpack/49 -=== RUN TestUnpack/50 -=== RUN TestUnpack/51 -=== RUN TestUnpack/52 -=== RUN TestUnpack/53 -=== RUN TestUnpack/54 -=== RUN TestUnpack/55 -=== RUN TestUnpack/56 -=== RUN TestUnpack/57 -=== RUN TestUnpack/58 -=== RUN TestUnpack/59 -=== RUN TestUnpack/60 -=== RUN TestUnpack/61 ---- PASS: TestUnpack (0.00s) - --- PASS: TestUnpack/0 (0.00s) - --- PASS: TestUnpack/1 (0.00s) - --- PASS: TestUnpack/2 (0.00s) - --- PASS: TestUnpack/3 (0.00s) - --- PASS: TestUnpack/4 (0.00s) - --- PASS: TestUnpack/5 (0.00s) - --- PASS: TestUnpack/6 (0.00s) - --- PASS: TestUnpack/7 (0.00s) - --- PASS: TestUnpack/8 (0.00s) - --- PASS: TestUnpack/9 (0.00s) - --- PASS: TestUnpack/10 (0.00s) - --- PASS: TestUnpack/11 (0.00s) - --- PASS: TestUnpack/12 (0.00s) - --- PASS: TestUnpack/13 (0.00s) - --- PASS: TestUnpack/14 (0.00s) - --- PASS: TestUnpack/15 (0.00s) - --- PASS: TestUnpack/16 (0.00s) - --- PASS: TestUnpack/17 (0.00s) - --- PASS: TestUnpack/18 (0.00s) - --- PASS: TestUnpack/19 (0.00s) - --- PASS: TestUnpack/20 (0.00s) - --- PASS: TestUnpack/21 (0.00s) - --- PASS: TestUnpack/22 (0.00s) - --- PASS: TestUnpack/23 (0.00s) - --- PASS: TestUnpack/24 (0.00s) - --- PASS: TestUnpack/25 (0.00s) - --- PASS: TestUnpack/26 (0.00s) - --- PASS: TestUnpack/27 (0.00s) - --- PASS: TestUnpack/28 (0.00s) - --- PASS: TestUnpack/29 (0.00s) - --- PASS: TestUnpack/30 (0.00s) - --- PASS: TestUnpack/31 (0.00s) - --- PASS: TestUnpack/32 (0.00s) - --- PASS: TestUnpack/33 (0.00s) - --- PASS: TestUnpack/34 (0.00s) - --- PASS: TestUnpack/35 (0.00s) - --- PASS: TestUnpack/36 (0.00s) - --- PASS: TestUnpack/37 (0.00s) - --- PASS: TestUnpack/38 (0.00s) - --- PASS: TestUnpack/39 (0.00s) - --- PASS: TestUnpack/40 (0.00s) - --- PASS: TestUnpack/41 (0.00s) - --- PASS: TestUnpack/42 (0.00s) - --- PASS: TestUnpack/43 (0.00s) - --- PASS: TestUnpack/44 (0.00s) - --- PASS: TestUnpack/45 (0.00s) - --- PASS: TestUnpack/46 (0.00s) - --- PASS: TestUnpack/47 (0.00s) - --- PASS: TestUnpack/48 (0.00s) - --- PASS: TestUnpack/49 (0.00s) - --- PASS: TestUnpack/50 (0.00s) - --- PASS: TestUnpack/51 (0.00s) - --- PASS: TestUnpack/52 (0.00s) - --- PASS: TestUnpack/53 (0.00s) - --- PASS: TestUnpack/54 (0.00s) - --- PASS: TestUnpack/55 (0.00s) - --- PASS: TestUnpack/56 (0.00s) - --- PASS: TestUnpack/57 (0.00s) - --- PASS: TestUnpack/58 (0.00s) - --- PASS: TestUnpack/59 (0.00s) - --- PASS: TestUnpack/60 (0.00s) - --- PASS: TestUnpack/61 (0.00s) -=== RUN TestUnpackSetDynamicArrayOutput ---- PASS: TestUnpackSetDynamicArrayOutput (0.00s) -=== RUN TestMethodMultiReturn -=== RUN TestMethodMultiReturn/Can_unpack_into_structure -=== RUN TestMethodMultiReturn/Can_unpack_into_reversed_structure -=== RUN TestMethodMultiReturn/Can_unpack_into_a_slice -=== RUN TestMethodMultiReturn/Can_unpack_into_an_array -=== RUN TestMethodMultiReturn/Can_unpack_into_interface_array -=== RUN TestMethodMultiReturn/Can_unpack_into_interface_slice -=== RUN TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types -=== RUN TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types#01 ---- PASS: TestMethodMultiReturn (0.00s) - --- PASS: TestMethodMultiReturn/Can_unpack_into_structure (0.00s) - --- PASS: TestMethodMultiReturn/Can_unpack_into_reversed_structure (0.00s) - --- PASS: TestMethodMultiReturn/Can_unpack_into_a_slice (0.00s) - --- PASS: TestMethodMultiReturn/Can_unpack_into_an_array (0.00s) - --- PASS: TestMethodMultiReturn/Can_unpack_into_interface_array (0.00s) - --- PASS: TestMethodMultiReturn/Can_unpack_into_interface_slice (0.00s) - --- PASS: TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types (0.00s) - --- PASS: TestMethodMultiReturn/Can_not_unpack_into_a_slice_with_wrong_types#01 (0.00s) -=== RUN TestMultiReturnWithArray ---- PASS: TestMultiReturnWithArray (0.00s) -=== RUN TestMultiReturnWithStringArray ---- PASS: TestMultiReturnWithStringArray (0.00s) -=== RUN TestMultiReturnWithStringSlice ---- PASS: TestMultiReturnWithStringSlice (0.00s) -=== RUN TestMultiReturnWithDeeplyNestedArray ---- PASS: TestMultiReturnWithDeeplyNestedArray (0.00s) -=== RUN TestUnmarshal ---- PASS: TestUnmarshal (0.00s) -=== RUN TestUnpackTuple ---- PASS: TestUnpackTuple (0.00s) -=== RUN TestOOMMaliciousInput ---- PASS: TestOOMMaliciousInput (0.00s) -=== RUN ExampleJSON ---- PASS: ExampleJSON (0.00s) -PASS -ok github.com/harmony-one/harmony/accounts/abi 0.135s -=== RUN TestMakeTopics -=== RUN TestMakeTopics/support_fixed_byte_types,_right_padded_to_32_bytes ---- PASS: TestMakeTopics (0.00s) - --- PASS: TestMakeTopics/support_fixed_byte_types,_right_padded_to_32_bytes (0.00s) -=== RUN TestParseTopics -=== RUN TestParseTopics/support_fixed_byte_types,_right_padded_to_32_bytes ---- PASS: TestParseTopics (0.00s) - --- PASS: TestParseTopics/support_fixed_byte_types,_right_padded_to_32_bytes (0.00s) -=== RUN TestPassingBlockNumber ---- PASS: TestPassingBlockNumber (0.00s) -=== RUN TestUnpackIndexedStringTyLogIntoMap ---- PASS: TestUnpackIndexedStringTyLogIntoMap (0.00s) -=== RUN TestUnpackIndexedSliceTyLogIntoMap ---- PASS: TestUnpackIndexedSliceTyLogIntoMap (0.00s) -=== RUN TestUnpackIndexedArrayTyLogIntoMap ---- PASS: TestUnpackIndexedArrayTyLogIntoMap (0.00s) -=== RUN TestUnpackIndexedFuncTyLogIntoMap ---- PASS: TestUnpackIndexedFuncTyLogIntoMap (0.00s) -=== RUN TestUnpackIndexedBytesTyLogIntoMap ---- PASS: TestUnpackIndexedBytesTyLogIntoMap (0.00s) -=== RUN TestUnpackIntoMapNamingConflict ---- PASS: TestUnpackIntoMapNamingConflict (0.00s) -PASS -ok github.com/harmony-one/harmony/accounts/abi/bind 0.113s -=== RUN TestWatchNewFile -=== PAUSE TestWatchNewFile -=== RUN TestWatchNoDir -=== PAUSE TestWatchNoDir -=== RUN TestCacheInitialReload ---- PASS: TestCacheInitialReload (0.01s) -=== RUN TestCacheAddDeleteOrder ---- PASS: TestCacheAddDeleteOrder (0.00s) -=== RUN TestCacheFind ---- PASS: TestCacheFind (0.00s) -=== RUN TestUpdatedKeyfileContents -=== PAUSE TestUpdatedKeyfileContents -=== RUN TestKeyStore ---- PASS: TestKeyStore (0.01s) -=== RUN TestSign ---- PASS: TestSign (0.00s) -=== RUN TestSignWithPassphrase ---- PASS: TestSignWithPassphrase (0.00s) -=== RUN TestTimedUnlock ---- PASS: TestTimedUnlock (0.25s) -=== RUN TestOverrideUnlock ---- PASS: TestOverrideUnlock (0.26s) -=== RUN TestSignRace ---- PASS: TestSignRace (0.02s) -=== RUN TestWalletNotifierLifecycle ---- PASS: TestWalletNotifierLifecycle (6.31s) -=== RUN TestWalletNotifications ---- PASS: TestWalletNotifications (1.69s) -=== RUN TestKeyEncryptDecrypt ---- PASS: TestKeyEncryptDecrypt (0.00s) -=== RUN TestKeyStorePlain ---- PASS: TestKeyStorePlain (0.00s) -=== RUN TestKeyStorePassphrase ---- PASS: TestKeyStorePassphrase (0.00s) -=== RUN TestKeyStorePassphraseDecryptionFail ---- PASS: TestKeyStorePassphraseDecryptionFail (0.00s) -=== RUN TestImportPreSaleKey ---- PASS: TestImportPreSaleKey (0.01s) -=== RUN TestV3_PBKDF2_1 -=== PAUSE TestV3_PBKDF2_1 -=== RUN TestV3_PBKDF2_2 ---- SKIP: TestV3_PBKDF2_2 (0.00s) - plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests -=== RUN TestV3_PBKDF2_3 ---- SKIP: TestV3_PBKDF2_3 (0.00s) - plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests -=== RUN TestV3_PBKDF2_4 ---- SKIP: TestV3_PBKDF2_4 (0.00s) - plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests -=== RUN TestV3_Scrypt_1 -=== PAUSE TestV3_Scrypt_1 -=== RUN TestV3_Scrypt_2 ---- SKIP: TestV3_Scrypt_2 (0.00s) - plain_test.go:148: can't find JSON tests from submodule at ../../tests/testdata/KeyStoreTests -=== RUN TestV1_1 -=== PAUSE TestV1_1 -=== RUN TestV1_2 -=== PAUSE TestV1_2 -=== RUN TestKeyForDirectICAP -=== PAUSE TestKeyForDirectICAP -=== RUN TestV3_31_Byte_Key -=== PAUSE TestV3_31_Byte_Key -=== RUN TestV3_30_Byte_Key -=== PAUSE TestV3_30_Byte_Key -=== CONT TestWatchNewFile -=== CONT TestV3_30_Byte_Key -=== CONT TestV3_31_Byte_Key -=== CONT TestKeyForDirectICAP -=== CONT TestUpdatedKeyfileContents -=== CONT TestWatchNoDir -=== CONT TestV3_PBKDF2_1 -=== CONT TestV1_2 ---- PASS: TestV3_30_Byte_Key (0.01s) ---- PASS: TestV3_31_Byte_Key (0.01s) -=== CONT TestV1_1 -=== CONT TestV3_Scrypt_1 ---- PASS: TestV3_PBKDF2_1 (0.76s) ---- PASS: TestKeyForDirectICAP (1.55s) ---- PASS: TestWatchNewFile (2.41s) ---- PASS: TestWatchNoDir (3.11s) ---- PASS: TestV1_1 (3.30s) ---- PASS: TestV1_2 (3.31s) ---- PASS: TestV3_Scrypt_1 (3.44s) ---- PASS: TestUpdatedKeyfileContents (10.34s) -PASS -ok github.com/harmony-one/harmony/accounts/keystore 19.084s -=== RUN TestClient ---- PASS: TestClient (0.00s) -PASS -ok github.com/harmony-one/harmony/api/client 0.114s -=== RUN TestGetFreeToken ---- PASS: TestGetFreeToken (0.00s) -=== RUN TestFetchAccountState ---- PASS: TestFetchAccountState (0.00s) -=== RUN TestGetStakingContractInfo ---- PASS: TestGetStakingContractInfo (0.00s) -PASS -ok github.com/harmony-one/harmony/api/client/service 0.121s -? github.com/harmony-one/harmony/api/client/service/proto [no test files] -? github.com/harmony-one/harmony/api/proto [no test files] -=== RUN TestString ---- PASS: TestString (0.00s) -=== RUN TestSerialize ---- PASS: TestSerialize (0.00s) -PASS -ok github.com/harmony-one/harmony/api/proto/discovery 0.137s -=== RUN TestClient ---- PASS: TestClient (0.00s) -=== RUN TestServerStart ---- PASS: TestServerStart (1.00s) -PASS -ok github.com/harmony-one/harmony/api/proto/message 1.163s -=== RUN TestSerializeBlockchainSyncMessage ---- PASS: TestSerializeBlockchainSyncMessage (0.00s) -=== RUN TestConstructTransactionListMessageAccount ---- PASS: TestConstructTransactionListMessageAccount (0.00s) -=== RUN TestConstructBlocksSyncMessage ---- PASS: TestConstructBlocksSyncMessage (0.00s) -=== RUN TestRoleTypeToString ---- PASS: TestRoleTypeToString (0.00s) -=== RUN TestInfoToString ---- PASS: TestInfoToString (0.00s) -PASS -ok github.com/harmony-one/harmony/api/proto/node 0.108s -=== RUN TestTakeAction -SupportSyncingTest starting -SupportSyncingTest starting ---- PASS: TestTakeAction (0.21s) -=== RUN TestMessageChan ---- PASS: TestMessageChan (0.00s) -=== RUN TestStopServices -SupportSyncingTest stopping ---- PASS: TestStopServices (0.00s) -=== RUN TestInit ---- PASS: TestInit (0.00s) -PASS -ok github.com/harmony-one/harmony/api/service 0.310s -? github.com/harmony-one/harmony/api/service/blockproposal [no test files] -? github.com/harmony-one/harmony/api/service/clientsupport [no test files] -? github.com/harmony-one/harmony/api/service/consensus [no test files] -=== RUN TestDiscoveryService ---- PASS: TestDiscoveryService (3.01s) -PASS -ok github.com/harmony-one/harmony/api/service/discovery 3.124s -=== RUN TestGetBlockInfoKey ---- PASS: TestGetBlockInfoKey (0.00s) -=== RUN TestGetAddressKey ---- PASS: TestGetAddressKey (0.00s) -=== RUN TestGetBlockKey ---- PASS: TestGetBlockKey (0.00s) -=== RUN TestGetTXKey ---- PASS: TestGetTXKey (0.00s) -=== RUN TestGetCommitteeKey ---- PASS: TestGetCommitteeKey (0.00s) -=== RUN TestInit ---- PASS: TestInit (0.07s) -=== RUN TestDump ---- PASS: TestDump (0.00s) -=== RUN TestDumpCommittee ---- PASS: TestDumpCommittee (0.00s) -=== RUN TestUpdateAddressStorage ---- PASS: TestUpdateAddressStorage (0.00s) -=== RUN TestGetTransaction ---- PASS: TestGetTransaction (0.00s) -PASS -ok github.com/harmony-one/harmony/api/service/explorer 0.172s -? github.com/harmony-one/harmony/api/service/metrics [no test files] -=== RUN TestService ---- PASS: TestService (2.01s) -PASS -ok github.com/harmony-one/harmony/api/service/networkinfo 2.123s -? github.com/harmony-one/harmony/api/service/randomness [no test files] -? github.com/harmony-one/harmony/api/service/resharding [no test files] -? github.com/harmony-one/harmony/api/service/staking [no test files] -=== RUN TestCreateTestSyncPeerConfig ---- PASS: TestCreateTestSyncPeerConfig (0.00s) -=== RUN TestCompareSyncPeerConfigByblockHashes ---- PASS: TestCompareSyncPeerConfigByblockHashes (0.00s) -=== RUN TestCreateStateSync ---- PASS: TestCreateStateSync (0.00s) -PASS -ok github.com/harmony-one/harmony/api/service/syncing 0.092s -? github.com/harmony-one/harmony/api/service/syncing/downloader [no test files] -? github.com/harmony-one/harmony/api/service/syncing/downloader/proto [no test files] -=== RUN TestHeader_EncodeRLP -=== RUN TestHeader_EncodeRLP/v0 -=== RUN TestHeader_EncodeRLP/v1 -=== RUN TestHeader_EncodeRLP/v2 ---- PASS: TestHeader_EncodeRLP (0.00s) - --- PASS: TestHeader_EncodeRLP/v0 (0.00s) - --- PASS: TestHeader_EncodeRLP/v1 (0.00s) - --- PASS: TestHeader_EncodeRLP/v2 (0.00s) -=== RUN TestHeader_DecodeRLP -=== RUN TestHeader_DecodeRLP/v0 -=== RUN TestHeader_DecodeRLP/v1 -=== RUN TestHeader_DecodeRLP/v2 ---- PASS: TestHeader_DecodeRLP (0.00s) - --- PASS: TestHeader_DecodeRLP/v0 (0.00s) - --- PASS: TestHeader_DecodeRLP/v1 (0.00s) - --- PASS: TestHeader_DecodeRLP/v2 (0.00s) -PASS -ok github.com/harmony-one/harmony/block 0.111s -=== RUN Test_factory_NewHeader -=== RUN Test_factory_NewHeader/MainnetGenesis -=== RUN Test_factory_NewHeader/MainnetEpoch1 ---- PASS: Test_factory_NewHeader (0.00s) - --- PASS: Test_factory_NewHeader/MainnetGenesis (0.00s) - --- PASS: Test_factory_NewHeader/MainnetEpoch1 (0.00s) -PASS -ok github.com/harmony-one/harmony/block/factory 0.130s -? github.com/harmony-one/harmony/block/interface [no test files] -? github.com/harmony-one/harmony/block/v0 [no test files] -? github.com/harmony-one/harmony/block/v1 [no test files] -? github.com/harmony-one/harmony/block/v2 [no test files] -? github.com/harmony-one/harmony/cmd/bootnode [no test files] -? github.com/harmony-one/harmony/cmd/client/txgen [no test files] -? github.com/harmony-one/harmony/cmd/client/wallet [no test files] -? github.com/harmony-one/harmony/cmd/client/wallet_stress_test [no test files] -? github.com/harmony-one/harmony/cmd/demo [no test files] -? github.com/harmony-one/harmony/cmd/harmony [no test files] -? github.com/harmony-one/harmony/cmd/hmyclient [no test files] -? github.com/harmony-one/harmony/cmd/keygen [no test files] -? github.com/harmony-one/harmony/common/denominations [no test files] -=== RUN TestConstructAnnounceMessage ---- PASS: TestConstructAnnounceMessage (0.62s) -=== RUN TestConstructPreparedMessage ---- PASS: TestConstructPreparedMessage (0.45s) - consensus_leader_msg_test.go:66: prepareBitmap.SetKey: key not found - consensus_leader_msg_test.go:69: prepareBitmap.SetKey: key not found -=== RUN TestPopulateMessageFields ---- PASS: TestPopulateMessageFields (0.32s) -=== RUN TestSignAndMarshalConsensusMessage ---- PASS: TestSignAndMarshalConsensusMessage (0.41s) -=== RUN TestSetViewID ---- PASS: TestSetViewID (0.38s) -=== RUN TestNew ---- PASS: TestNew (0.36s) -=== RUN TestConstructPrepareMessage ---- PASS: TestConstructPrepareMessage (0.34s) -=== RUN TestConstructCommitMessage ---- PASS: TestConstructCommitMessage (0.33s) -=== RUN TestParsePbftMessage ---- PASS: TestParsePbftMessage (0.40s) -=== RUN TestGetMessagesByTypeSeqViewHash ---- PASS: TestGetMessagesByTypeSeqViewHash (0.00s) -=== RUN TestHasMatchingAnnounce ---- PASS: TestHasMatchingAnnounce (0.00s) -PASS -ok github.com/harmony-one/harmony/consensus 9.014s -? github.com/harmony-one/harmony/consensus/engine [no test files] -? github.com/harmony-one/harmony/contracts [no test files] -? github.com/harmony-one/harmony/contracts/structs [no test files] -=== RUN TestIsEpochBlock ---- PASS: TestIsEpochBlock (0.00s) -=== RUN TestEncodeGenesisConfig ---- PASS: TestEncodeGenesisConfig (0.00s) -=== RUN TestFakeNewNodeList -newNodeList: [ECDSA: one1qqqrvvpcxu6rwvfnxc6ngvecx5mrgvf3254yj4, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qq6n2de3xuuryven8qcnqvfcxuurwd3s837n5r, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qqcnjv3kxqcnydfcxc6nyd3kxg6rqvpe5srx9h, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qqqrgvp5xy6nxwf5x5mngve4xsmnvdfhekh0gx, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ECDSA: one1qqen2ve5xvengvekxuerzdpjxvmnyd33m0urmm, BLS: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] ---- PASS: TestFakeNewNodeList (0.00s) -=== RUN TestShuffle ---- PASS: TestShuffle (0.00s) -=== RUN TestSortCommitteeBySize ---- PASS: TestSortCommitteeBySize (0.00s) -=== RUN TestUpdateShardState ---- PASS: TestUpdateShardState (0.00s) -=== RUN TestAssignNewNodes ---- PASS: TestAssignNewNodes (0.00s) -=== RUN TestStrictTxListAdd ---- PASS: TestStrictTxListAdd (0.91s) -=== RUN TestStateChangeDuringTransactionPoolReset -=== PAUSE TestStateChangeDuringTransactionPoolReset -=== RUN TestInvalidTransactions -=== PAUSE TestInvalidTransactions -=== RUN TestTransactionQueue -=== PAUSE TestTransactionQueue -=== RUN TestTransactionNegativeValue -=== PAUSE TestTransactionNegativeValue -=== RUN TestTransactionChainFork -=== PAUSE TestTransactionChainFork -=== RUN TestTransactionDoubleNonce -=== PAUSE TestTransactionDoubleNonce -=== RUN TestTransactionMissingNonce -=== PAUSE TestTransactionMissingNonce -=== RUN TestTransactionNonceRecovery -=== PAUSE TestTransactionNonceRecovery -=== RUN TestTransactionDropping -=== PAUSE TestTransactionDropping -=== RUN TestTransactionPostponing -=== PAUSE TestTransactionPostponing -=== RUN TestTransactionQueueAccountLimiting -=== PAUSE TestTransactionQueueAccountLimiting -=== RUN TestTransactionQueueGlobalLimiting -=== PAUSE TestTransactionQueueGlobalLimiting -=== RUN TestTransactionQueueGlobalLimitingNoLocals -=== PAUSE TestTransactionQueueGlobalLimitingNoLocals -=== RUN TestTransactionQueueTimeLimiting ---- PASS: TestTransactionQueueTimeLimiting (2.01s) -=== RUN TestTransactionQueueTimeLimitingNoLocals ---- PASS: TestTransactionQueueTimeLimitingNoLocals (2.01s) -=== RUN TestTransactionQueueLimitingEquivalency -=== PAUSE TestTransactionQueueLimitingEquivalency -=== RUN TestTransactionPendingLimitingEquivalency -=== PAUSE TestTransactionPendingLimitingEquivalency -=== RUN TestTransactionPendingGlobalLimiting -=== PAUSE TestTransactionPendingGlobalLimiting -=== RUN TestTransactionCapClearsFromAll -=== PAUSE TestTransactionCapClearsFromAll -=== RUN TestTransactionPendingMinimumAllowance -=== PAUSE TestTransactionPendingMinimumAllowance -=== RUN TestTransactionPoolRepricingKeepsLocals -=== PAUSE TestTransactionPoolRepricingKeepsLocals -=== RUN TestTransactionJournaling -=== PAUSE TestTransactionJournaling -=== RUN TestTransactionJournalingNoLocals -=== PAUSE TestTransactionJournalingNoLocals -=== RUN TestTransactionStatusCheck -=== PAUSE TestTransactionStatusCheck -=== CONT TestStateChangeDuringTransactionPoolReset -=== CONT TestTransactionQueueGlobalLimitingNoLocals -=== CONT TestTransactionMissingNonce -=== CONT TestTransactionDoubleNonce -=== CONT TestTransactionChainFork -=== CONT TestTransactionNegativeValue -=== CONT TestTransactionQueue ---- PASS: TestTransactionChainFork (0.00s) -=== CONT TestInvalidTransactions -=== CONT TestTransactionStatusCheck ---- PASS: TestTransactionMissingNonce (0.00s) -=== CONT TestTransactionPoolRepricingKeepsLocals ---- PASS: TestTransactionNegativeValue (0.00s) -=== CONT TestTransactionJournalingNoLocals ---- PASS: TestStateChangeDuringTransactionPoolReset (0.01s) -=== CONT TestTransactionJournaling ---- PASS: TestTransactionDoubleNonce (0.01s) -=== CONT TestTransactionPostponing ---- PASS: TestInvalidTransactions (0.01s) -=== CONT TestTransactionQueueGlobalLimiting ---- PASS: TestTransactionStatusCheck (0.02s) -=== CONT TestTransactionQueueAccountLimiting ---- PASS: TestTransactionQueue (0.02s) -=== CONT TestTransactionDropping ---- PASS: TestTransactionDropping (0.02s) -=== CONT TestTransactionNonceRecovery ---- PASS: TestTransactionNonceRecovery (0.00s) -=== CONT TestTransactionPendingGlobalLimiting ---- PASS: TestTransactionQueueAccountLimiting (0.32s) -=== CONT TestTransactionCapClearsFromAll ---- PASS: TestTransactionCapClearsFromAll (0.10s) -=== CONT TestTransactionPendingLimitingEquivalency ---- PASS: TestTransactionPostponing (0.95s) -=== CONT TestTransactionQueueLimitingEquivalency ---- PASS: TestTransactionPendingLimitingEquivalency (0.60s) -=== CONT TestTransactionPendingMinimumAllowance ---- PASS: TestTransactionPendingGlobalLimiting (1.65s) ---- PASS: TestTransactionPendingMinimumAllowance (0.68s) ---- PASS: TestTransactionQueueLimitingEquivalency (0.87s) ---- PASS: TestTransactionJournalingNoLocals (2.02s) ---- PASS: TestTransactionJournaling (2.02s) ---- PASS: TestTransactionPoolRepricingKeepsLocals (4.29s) ---- PASS: TestTransactionQueueGlobalLimiting (4.60s) ---- PASS: TestTransactionQueueGlobalLimitingNoLocals (4.71s) -PASS -ok github.com/harmony-one/harmony/core 9.730s -=== RUN TestHeaderStorage ---- PASS: TestHeaderStorage (0.00s) -=== RUN TestBodyStorage ---- PASS: TestBodyStorage (0.00s) -=== RUN TestBlockStorage ---- PASS: TestBlockStorage (0.00s) -=== RUN TestPartialBlockStorage ---- PASS: TestPartialBlockStorage (0.00s) -=== RUN TestTdStorage ---- PASS: TestTdStorage (0.00s) -=== RUN TestCanonicalMappingStorage ---- PASS: TestCanonicalMappingStorage (0.00s) -=== RUN TestHeadStorage ---- PASS: TestHeadStorage (0.00s) -=== RUN TestBlockReceiptStorage ---- PASS: TestBlockReceiptStorage (0.00s) -=== RUN TestReadEpochBlockNumber -=== RUN TestReadEpochBlockNumber/0 -=== RUN TestReadEpochBlockNumber/1 -=== RUN TestReadEpochBlockNumber/1000 -=== RUN TestReadEpochBlockNumber/error ---- PASS: TestReadEpochBlockNumber (0.00s) - --- PASS: TestReadEpochBlockNumber/0 (0.00s) - --- PASS: TestReadEpochBlockNumber/1 (0.00s) - --- PASS: TestReadEpochBlockNumber/1000 (0.00s) - --- PASS: TestReadEpochBlockNumber/error (0.00s) -=== RUN TestWriteEpochBlockNumber -=== RUN TestWriteEpochBlockNumber/0 -=== RUN TestWriteEpochBlockNumber/1 -=== RUN TestWriteEpochBlockNumber/1000 -=== RUN TestWriteEpochBlockNumber/error ---- PASS: TestWriteEpochBlockNumber (0.00s) - --- PASS: TestWriteEpochBlockNumber/0 (0.00s) - --- PASS: TestWriteEpochBlockNumber/1 (0.00s) - --- PASS: TestWriteEpochBlockNumber/1000 (0.00s) - --- PASS: TestWriteEpochBlockNumber/error (0.00s) -=== RUN TestLookupStorage ---- PASS: TestLookupStorage (0.00s) -PASS -ok github.com/harmony-one/harmony/core/rawdb 0.090s -? github.com/harmony-one/harmony/core/rawdb/mock [no test files] -=== RUN TestNewNonce ---- PASS: TestNewNonce (0.00s) -=== RUN TestRemove ---- PASS: TestRemove (0.00s) -=== RUN TestReuse ---- PASS: TestReuse (0.00s) -=== RUN TestRemoteNonceChange ---- PASS: TestRemoteNonceChange (0.00s) -=== RUN TestSetNonce ---- PASS: TestSetNonce (0.00s) -=== RUN TestSnapshot2 ---- PASS: TestSnapshot2 (0.00s) -=== RUN TestUpdateLeaks ---- PASS: TestUpdateLeaks (0.01s) -=== RUN TestIntermediateLeaks ---- PASS: TestIntermediateLeaks (0.02s) -=== RUN TestCopy ---- PASS: TestCopy (0.01s) -=== RUN TestSnapshotRandom ---- PASS: TestSnapshotRandom (11.70s) -=== RUN TestCopyOfCopy ---- PASS: TestCopyOfCopy (0.00s) -PASS -ok github.com/harmony-one/harmony/core/state 11.837s -=== RUN TestBlock_SetLastCommitSig -=== RUN TestBlock_SetLastCommitSig/5AAa -=== RUN TestBlock_SetLastCommitSig/AA55 -=== RUN TestBlock_SetLastCommitSig/PiE -=== RUN TestBlock_SetLastCommitSig/EPi ---- PASS: TestBlock_SetLastCommitSig (0.00s) - --- PASS: TestBlock_SetLastCommitSig/5AAa (0.00s) - --- PASS: TestBlock_SetLastCommitSig/AA55 (0.00s) - --- PASS: TestBlock_SetLastCommitSig/PiE (0.00s) - --- PASS: TestBlock_SetLastCommitSig/EPi (0.00s) -=== RUN TestBlock_DecodeRLP -=== RUN TestBlock_DecodeRLP/v0 -=== RUN TestBlock_DecodeRLP/v1 -=== RUN TestBlock_DecodeRLP/v2 ---- PASS: TestBlock_DecodeRLP (0.00s) - --- PASS: TestBlock_DecodeRLP/v0 (0.00s) - --- PASS: TestBlock_DecodeRLP/v1 (0.00s) - --- PASS: TestBlock_DecodeRLP/v2 (0.00s) -=== RUN TestBlock_EncodeRLP -=== RUN TestBlock_EncodeRLP/v0 -=== RUN TestBlock_EncodeRLP/v1 -=== RUN TestBlock_EncodeRLP/v2 ---- PASS: TestBlock_EncodeRLP (0.00s) - --- PASS: TestBlock_EncodeRLP/v0 (0.00s) - --- PASS: TestBlock_EncodeRLP/v1 (0.00s) - --- PASS: TestBlock_EncodeRLP/v2 (0.00s) -=== RUN TestBody_EncodeRLP -=== RUN TestBody_EncodeRLP/v0 -=== RUN TestBody_EncodeRLP/v1 ---- PASS: TestBody_EncodeRLP (0.00s) - --- PASS: TestBody_EncodeRLP/v0 (0.00s) - --- PASS: TestBody_EncodeRLP/v1 (0.00s) -=== RUN TestBody_DecodeRLP -=== RUN TestBody_DecodeRLP/v0 -=== RUN TestBody_DecodeRLP/v1 ---- PASS: TestBody_DecodeRLP (0.00s) - --- PASS: TestBody_DecodeRLP/v0 (0.00s) - --- PASS: TestBody_DecodeRLP/v1 (0.00s) -=== RUN TestBloom ---- PASS: TestBloom (0.00s) -=== RUN TestEIP155Signing ---- PASS: TestEIP155Signing (0.00s) -=== RUN TestEIP155ChainID ---- PASS: TestEIP155ChainID (0.00s) -=== RUN TestChainID ---- PASS: TestChainID (0.00s) -=== RUN TestTransactionPriceNonceSort ---- PASS: TestTransactionPriceNonceSort (1.51s) -=== RUN TestTransactionJSON ---- PASS: TestTransactionJSON (0.02s) -PASS -ok github.com/harmony-one/harmony/core/types 1.635s -=== RUN TestJumpDestAnalysis ---- PASS: TestJumpDestAnalysis (0.00s) -=== RUN TestPrecompiledModExp -=== RUN TestPrecompiledModExp/eip_example1-Gas=13056 -=== RUN TestPrecompiledModExp/eip_example2-Gas=13056 -=== RUN TestPrecompiledModExp/nagydani-1-square-Gas=204 -=== RUN TestPrecompiledModExp/nagydani-1-qube-Gas=204 -=== RUN TestPrecompiledModExp/nagydani-1-pow0x10001-Gas=3276 -=== RUN TestPrecompiledModExp/nagydani-2-square-Gas=665 -=== RUN TestPrecompiledModExp/nagydani-2-qube-Gas=665 -=== RUN TestPrecompiledModExp/nagydani-2-pow0x10001-Gas=10649 -=== RUN TestPrecompiledModExp/nagydani-3-square-Gas=1894 -=== RUN TestPrecompiledModExp/nagydani-3-qube-Gas=1894 -=== RUN TestPrecompiledModExp/nagydani-3-pow0x10001-Gas=30310 -=== RUN TestPrecompiledModExp/nagydani-4-square-Gas=5580 -=== RUN TestPrecompiledModExp/nagydani-4-qube-Gas=5580 -=== RUN TestPrecompiledModExp/nagydani-4-pow0x10001-Gas=89292 -=== RUN TestPrecompiledModExp/nagydani-5-square-Gas=17868 -=== RUN TestPrecompiledModExp/nagydani-5-qube-Gas=17868 -=== RUN TestPrecompiledModExp/nagydani-5-pow0x10001-Gas=285900 ---- PASS: TestPrecompiledModExp (0.00s) - --- PASS: TestPrecompiledModExp/eip_example1-Gas=13056 (0.00s) - --- PASS: TestPrecompiledModExp/eip_example2-Gas=13056 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-1-square-Gas=204 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-1-qube-Gas=204 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-1-pow0x10001-Gas=3276 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-2-square-Gas=665 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-2-qube-Gas=665 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-2-pow0x10001-Gas=10649 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-3-square-Gas=1894 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-3-qube-Gas=1894 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-3-pow0x10001-Gas=30310 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-4-square-Gas=5580 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-4-qube-Gas=5580 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-4-pow0x10001-Gas=89292 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-5-square-Gas=17868 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-5-qube-Gas=17868 (0.00s) - --- PASS: TestPrecompiledModExp/nagydani-5-pow0x10001-Gas=285900 (0.00s) -=== RUN TestPrecompiledBn256Add -=== RUN TestPrecompiledBn256Add/chfast1-Gas=500 -=== RUN TestPrecompiledBn256Add/chfast2-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio1-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio2-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio3-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio4-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio5-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio6-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio7-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio8-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio9-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio10-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio11-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio12-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio13-Gas=500 -=== RUN TestPrecompiledBn256Add/cdetrio14-Gas=500 ---- PASS: TestPrecompiledBn256Add (0.00s) - --- PASS: TestPrecompiledBn256Add/chfast1-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/chfast2-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio1-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio2-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio3-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio4-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio5-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio6-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio7-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio8-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio9-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio10-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio11-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio12-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio13-Gas=500 (0.00s) - --- PASS: TestPrecompiledBn256Add/cdetrio14-Gas=500 (0.00s) -=== RUN TestPrecompiledBn256ScalarMul -=== RUN TestPrecompiledBn256ScalarMul/chfast1-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/chfast2-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/chfast3-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio1-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio2-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio3-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio4-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio5-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio6-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio7-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio8-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio9-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio10-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio11-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio12-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio13-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio14-Gas=40000 -=== RUN TestPrecompiledBn256ScalarMul/cdetrio15-Gas=40000 ---- PASS: TestPrecompiledBn256ScalarMul (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/chfast1-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/chfast2-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/chfast3-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio1-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio2-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio3-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio4-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio5-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio6-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio7-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio8-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio9-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio10-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio11-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio12-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio13-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio14-Gas=40000 (0.00s) - --- PASS: TestPrecompiledBn256ScalarMul/cdetrio15-Gas=40000 (0.00s) -=== RUN TestPrecompiledBn256Pairing -=== RUN TestPrecompiledBn256Pairing/jeff1-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/jeff2-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/jeff3-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/jeff4-Gas=340000 -=== RUN TestPrecompiledBn256Pairing/jeff5-Gas=340000 -=== RUN TestPrecompiledBn256Pairing/jeff6-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/empty_data-Gas=100000 -=== RUN TestPrecompiledBn256Pairing/one_point-Gas=180000 -=== RUN TestPrecompiledBn256Pairing/two_point_match_2-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/two_point_match_3-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/two_point_match_4-Gas=260000 -=== RUN TestPrecompiledBn256Pairing/ten_point_match_1-Gas=900000 -=== RUN TestPrecompiledBn256Pairing/ten_point_match_2-Gas=900000 -=== RUN TestPrecompiledBn256Pairing/ten_point_match_3-Gas=260000 ---- PASS: TestPrecompiledBn256Pairing (0.09s) - --- PASS: TestPrecompiledBn256Pairing/jeff1-Gas=260000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/jeff2-Gas=260000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/jeff3-Gas=260000 (0.01s) - --- PASS: TestPrecompiledBn256Pairing/jeff4-Gas=340000 (0.01s) - --- PASS: TestPrecompiledBn256Pairing/jeff5-Gas=340000 (0.01s) - --- PASS: TestPrecompiledBn256Pairing/jeff6-Gas=260000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/empty_data-Gas=100000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/one_point-Gas=180000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/two_point_match_2-Gas=260000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/two_point_match_3-Gas=260000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/two_point_match_4-Gas=260000 (0.00s) - --- PASS: TestPrecompiledBn256Pairing/ten_point_match_1-Gas=900000 (0.02s) - --- PASS: TestPrecompiledBn256Pairing/ten_point_match_2-Gas=900000 (0.02s) - --- PASS: TestPrecompiledBn256Pairing/ten_point_match_3-Gas=260000 (0.00s) -=== RUN TestMemoryGasCost ---- PASS: TestMemoryGasCost (0.00s) -=== RUN TestByteOp ---- PASS: TestByteOp (0.00s) -=== RUN TestSHL ---- PASS: TestSHL (0.00s) -=== RUN TestSHR ---- PASS: TestSHR (0.00s) -=== RUN TestSAR ---- PASS: TestSAR (0.00s) -=== RUN TestSGT ---- PASS: TestSGT (0.00s) -=== RUN TestSLT ---- PASS: TestSLT (0.00s) -=== RUN TestOpMstore ---- PASS: TestOpMstore (0.00s) -=== RUN TestCreate2Addreses ---- PASS: TestCreate2Addreses (0.00s) -=== RUN TestIntPoolPoolGet ---- PASS: TestIntPoolPoolGet (0.00s) -=== RUN TestIntPoolPoolPut ---- PASS: TestIntPoolPoolPut (0.00s) -=== RUN TestIntPoolPoolReUse ---- PASS: TestIntPoolPoolReUse (0.00s) -=== RUN TestStoreCapture ---- PASS: TestStoreCapture (0.00s) -PASS -ok github.com/harmony-one/harmony/core/vm 0.200s -=== RUN TestDefaults ---- PASS: TestDefaults (0.00s) -=== RUN TestEVM ---- PASS: TestEVM (0.00s) -=== RUN TestExecute ---- PASS: TestExecute (0.00s) -=== RUN TestCall ---- PASS: TestCall (0.00s) -=== RUN ExampleExecute ---- PASS: ExampleExecute (0.00s) -PASS -ok github.com/harmony-one/harmony/core/vm/runtime 0.122s -=== RUN TestNewMask ---- PASS: TestNewMask (0.00s) -=== RUN TestNewMaskWithAbsentPublicKey ---- PASS: TestNewMaskWithAbsentPublicKey (0.00s) -=== RUN TestThreshHoldPolicy ---- PASS: TestThreshHoldPolicy (0.00s) -=== RUN TestCompletePolicy ---- PASS: TestCompletePolicy (0.00s) -=== RUN TestAggregatedSignature ---- PASS: TestAggregatedSignature (0.00s) -=== RUN TestAggregateMasks ---- PASS: TestAggregateMasks (0.00s) -=== RUN TestEnableKeyFunctions ---- PASS: TestEnableKeyFunctions (0.00s) -=== RUN TestCopyParticipatingMask ---- PASS: TestCopyParticipatingMask (0.00s) -=== RUN TestSetMask ---- PASS: TestSetMask (0.00s) -PASS -ok github.com/harmony-one/harmony/crypto/bls 0.023s -? github.com/harmony-one/harmony/crypto/hash [no test files] -=== RUN TestGetBLSPrivateKeyFromInt ---- PASS: TestGetBLSPrivateKeyFromInt (0.00s) -PASS -ok github.com/harmony-one/harmony/crypto/pki 0.013s -? github.com/harmony-one/harmony/crypto/vdf [no test files] -? github.com/harmony-one/harmony/crypto/vrf [no test files] -=== RUN TestVRF1 ---- PASS: TestVRF1 (0.01s) -=== RUN TestVRF2 ---- PASS: TestVRF2 (0.02s) -=== RUN TestRightTruncateProof ---- PASS: TestRightTruncateProof (0.00s) -=== RUN TestLeftTruncateProof ---- PASS: TestLeftTruncateProof (0.00s) -=== RUN TestBitFlip ---- PASS: TestBitFlip (0.41s) -PASS -ok github.com/harmony-one/harmony/crypto/vrf/bls 0.458s -=== RUN TestH1 ---- PASS: TestH1 (1.83s) -=== RUN TestH2 ---- PASS: TestH2 (0.05s) -=== RUN TestVRF ---- PASS: TestVRF (0.11s) -=== RUN TestReadFromOpenSSL ---- PASS: TestReadFromOpenSSL (0.03s) -=== RUN TestRightTruncateProof ---- PASS: TestRightTruncateProof (0.01s) -=== RUN TestLeftTruncateProof ---- PASS: TestLeftTruncateProof (0.01s) -=== RUN TestBitFlip ---- PASS: TestBitFlip (8.30s) -=== RUN TestVectors ---- PASS: TestVectors (0.04s) -PASS -ok github.com/harmony-one/harmony/crypto/vrf/p256 10.398s -=== RUN TestConstructInitMessage ---- PASS: TestConstructInitMessage (0.54s) -=== RUN TestProcessCommitMessage ---- PASS: TestProcessCommitMessage (0.56s) -=== RUN TestNew ---- PASS: TestNew (0.42s) -=== RUN TestResetState ---- PASS: TestResetState (0.47s) -=== RUN TestSetLeaderPubKey ---- PASS: TestSetLeaderPubKey (0.88s) -=== RUN TestUpdatePublicKeys ---- PASS: TestUpdatePublicKeys (0.33s) -=== RUN TestVerifyMessageSig ---- PASS: TestVerifyMessageSig (0.45s) -=== RUN TestVrf ---- PASS: TestVrf (0.31s) -=== RUN TestConstructCommitMessage ---- PASS: TestConstructCommitMessage (0.37s) -=== RUN TestProcessInitMessage ---- PASS: TestProcessInitMessage (0.34s) -PASS -ok github.com/harmony-one/harmony/drand 4.805s -=== RUN TestPathMatcher_Matches -=== RUN TestPathMatcher_Matches/EmptyMatchesEmpty -=== RUN TestPathMatcher_Matches/EmptyDoesNotMatchNonEmpty -=== RUN TestPathMatcher_Matches/EmptyDoesNotMatchNonEmptyEvenWithTrailingSlash -=== RUN TestPathMatcher_Matches/NonEmptyDoesNotMatchEmpty -=== RUN TestPathMatcher_Matches/ExactIsOK -=== RUN TestPathMatcher_Matches/SuffixIsOK -=== RUN TestPathMatcher_Matches/SubstringIsNotOK -=== RUN TestPathMatcher_Matches/PrefixIsNotOK -=== RUN TestPathMatcher_Matches/InterveningElementIsNotOK -=== RUN TestPathMatcher_Matches/GeneralNonMatch -=== RUN TestPathMatcher_Matches/UncleanPattern -=== RUN TestPathMatcher_Matches/UncleanArg -=== RUN TestPathMatcher_Matches/NonStringArg ---- PASS: TestPathMatcher_Matches (0.00s) - --- PASS: TestPathMatcher_Matches/EmptyMatchesEmpty (0.00s) - --- PASS: TestPathMatcher_Matches/EmptyDoesNotMatchNonEmpty (0.00s) - --- PASS: TestPathMatcher_Matches/EmptyDoesNotMatchNonEmptyEvenWithTrailingSlash (0.00s) - --- PASS: TestPathMatcher_Matches/NonEmptyDoesNotMatchEmpty (0.00s) - --- PASS: TestPathMatcher_Matches/ExactIsOK (0.00s) - --- PASS: TestPathMatcher_Matches/SuffixIsOK (0.00s) - --- PASS: TestPathMatcher_Matches/SubstringIsNotOK (0.00s) - --- PASS: TestPathMatcher_Matches/PrefixIsNotOK (0.00s) - --- PASS: TestPathMatcher_Matches/InterveningElementIsNotOK (0.00s) - --- PASS: TestPathMatcher_Matches/GeneralNonMatch (0.00s) - --- PASS: TestPathMatcher_Matches/UncleanPattern (0.00s) - --- PASS: TestPathMatcher_Matches/UncleanArg (0.00s) - --- PASS: TestPathMatcher_Matches/NonStringArg (0.00s) -=== RUN TestPathMatcher_String -=== RUN TestPathMatcher_String/General -=== RUN TestPathMatcher_String/Unclean ---- PASS: TestPathMatcher_String (0.00s) - --- PASS: TestPathMatcher_String/General (0.00s) - --- PASS: TestPathMatcher_String/Unclean (0.00s) -=== RUN TestSliceMatcher_Matches -=== RUN TestSliceMatcher_Matches/EmptyEqEmpty -=== RUN TestSliceMatcher_Matches/EmptyNeNotEmpty -=== RUN TestSliceMatcher_Matches/NotEmptyNeEmpty -=== RUN TestSliceMatcher_Matches/CompareRawValuesUsingEqualityHappy -=== RUN TestSliceMatcher_Matches/CompareRawValuesUsingEqualityUnhappy -=== RUN TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesHappy -=== RUN TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesUnhappy -=== RUN TestSliceMatcher_Matches/NestedHappy -=== RUN TestSliceMatcher_Matches/NestedUnhappy -=== RUN TestSliceMatcher_Matches/MatchSliceOfMoreSpecificTypes -=== RUN TestSliceMatcher_Matches/AcceptArraysToo -=== RUN TestSliceMatcher_Matches/RejectString ---- PASS: TestSliceMatcher_Matches (0.00s) - --- PASS: TestSliceMatcher_Matches/EmptyEqEmpty (0.00s) - --- PASS: TestSliceMatcher_Matches/EmptyNeNotEmpty (0.00s) - --- PASS: TestSliceMatcher_Matches/NotEmptyNeEmpty (0.00s) - --- PASS: TestSliceMatcher_Matches/CompareRawValuesUsingEqualityHappy (0.00s) - --- PASS: TestSliceMatcher_Matches/CompareRawValuesUsingEqualityUnhappy (0.00s) - --- PASS: TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesHappy (0.00s) - --- PASS: TestSliceMatcher_Matches/CompareMatcherUsingItsMatchesUnhappy (0.00s) - --- PASS: TestSliceMatcher_Matches/NestedHappy (0.00s) - --- PASS: TestSliceMatcher_Matches/NestedUnhappy (0.00s) - --- PASS: TestSliceMatcher_Matches/MatchSliceOfMoreSpecificTypes (0.00s) - --- PASS: TestSliceMatcher_Matches/AcceptArraysToo (0.00s) - --- PASS: TestSliceMatcher_Matches/RejectString (0.00s) -=== RUN TestSliceMatcher_String -=== RUN TestSliceMatcher_String/int -=== RUN TestSliceMatcher_String/string ---- PASS: TestSliceMatcher_String (0.00s) - --- PASS: TestSliceMatcher_String/int (0.00s) - --- PASS: TestSliceMatcher_String/string (0.00s) -=== RUN TestStructMatcher_Matches -=== RUN TestStructMatcher_Matches/EmptyMatchesEmpty -=== RUN TestStructMatcher_Matches/EmptyMatchesAny -=== RUN TestStructMatcher_Matches/EmptyStillDoesNotMatchNonStruct -=== RUN TestStructMatcher_Matches/RegularFieldValuesUseEq1 -=== RUN TestStructMatcher_Matches/RegularFieldValuesUseEq2 -=== RUN TestStructMatcher_Matches/MatchersAreUsedVerbatim1 -=== RUN TestStructMatcher_Matches/MatchersAreUsedVerbatim2 -=== RUN TestStructMatcher_Matches/UnspecifiedFieldsAreIgnored -=== RUN TestStructMatcher_Matches/MissingFieldsReturnFailure -=== RUN TestStructMatcher_Matches/DerefsPointer ---- PASS: TestStructMatcher_Matches (0.00s) - --- PASS: TestStructMatcher_Matches/EmptyMatchesEmpty (0.00s) - --- PASS: TestStructMatcher_Matches/EmptyMatchesAny (0.00s) - --- PASS: TestStructMatcher_Matches/EmptyStillDoesNotMatchNonStruct (0.00s) - --- PASS: TestStructMatcher_Matches/RegularFieldValuesUseEq1 (0.00s) - --- PASS: TestStructMatcher_Matches/RegularFieldValuesUseEq2 (0.00s) - --- PASS: TestStructMatcher_Matches/MatchersAreUsedVerbatim1 (0.00s) - --- PASS: TestStructMatcher_Matches/MatchersAreUsedVerbatim2 (0.00s) - --- PASS: TestStructMatcher_Matches/UnspecifiedFieldsAreIgnored (0.00s) - --- PASS: TestStructMatcher_Matches/MissingFieldsReturnFailure (0.00s) - --- PASS: TestStructMatcher_Matches/DerefsPointer (0.00s) -=== RUN TestStructMatcher_String -=== RUN TestStructMatcher_String/UsesStringer -=== RUN TestStructMatcher_String/ReprIfNotStringable -=== RUN TestStructMatcher_String/SortsByKey ---- PASS: TestStructMatcher_String (0.00s) - --- PASS: TestStructMatcher_String/UsesStringer (0.00s) - --- PASS: TestStructMatcher_String/ReprIfNotStringable (0.00s) - --- PASS: TestStructMatcher_String/SortsByKey (0.00s) -PASS -ok github.com/harmony-one/harmony/gomock_matchers 0.013s -? github.com/harmony-one/harmony/hmy [no test files] -? github.com/harmony-one/harmony/hmyclient [no test files] -=== RUN TestIncorrectResponse ---- PASS: TestIncorrectResponse (0.00s) -=== RUN TestUpdateConsensusReady ---- PASS: TestUpdateConsensusReady (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/attack 0.033s -=== RUN TestEncodeAndDecode ---- PASS: TestEncodeAndDecode (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/bech32 0.011s -=== RUN TestUpdateStakingList ---- PASS: TestUpdateStakingList (0.03s) -PASS -ok github.com/harmony-one/harmony/internal/blsgen 0.045s -? github.com/harmony-one/harmony/internal/chain [no test files] -=== RUN TestIsBech32Address ---- PASS: TestIsBech32Address (0.00s) -=== RUN TestHashJsonValidation ---- PASS: TestHashJsonValidation (0.00s) -=== RUN TestAddressUnmarshalJSON ---- PASS: TestAddressUnmarshalJSON (0.00s) -=== RUN TestAddressHexChecksum ---- PASS: TestAddressHexChecksum (0.00s) -=== RUN TestAddressToBech32 ---- PASS: TestAddressToBech32 (0.00s) -=== RUN TestParseAddr ---- PASS: TestParseAddr (0.00s) -=== RUN TestAddress_Scan -=== RUN TestAddress_Scan/working_scan -=== RUN TestAddress_Scan/non_working_scan -=== RUN TestAddress_Scan/invalid_length_scan ---- PASS: TestAddress_Scan (0.00s) - --- PASS: TestAddress_Scan/working_scan (0.00s) - --- PASS: TestAddress_Scan/non_working_scan (0.00s) - --- PASS: TestAddress_Scan/invalid_length_scan (0.00s) -=== RUN TestAddress_Value -=== RUN TestAddress_Value/Working_value ---- PASS: TestAddress_Value (0.00s) - --- PASS: TestAddress_Value/Working_value (0.00s) -=== RUN TestBytesConversion ---- PASS: TestBytesConversion (0.00s) -=== RUN TestHash_Scan -=== RUN TestHash_Scan/working_scan -=== RUN TestHash_Scan/non_working_scan -=== RUN TestHash_Scan/invalid_length_scan ---- PASS: TestHash_Scan (0.00s) - --- PASS: TestHash_Scan/working_scan (0.00s) - --- PASS: TestHash_Scan/non_working_scan (0.00s) - --- PASS: TestHash_Scan/invalid_length_scan (0.00s) -=== RUN TestHash_Value -=== RUN TestHash_Value/Working_value ---- PASS: TestHash_Value (0.00s) - --- PASS: TestHash_Value/Working_value (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/common 0.033s -=== RUN TestNodeConfigSingleton ---- PASS: TestNodeConfigSingleton (0.00s) -=== RUN TestNodeConfigMultiple ---- PASS: TestNodeConfigMultiple (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/configs/node 0.030s -=== RUN TestMainnetInstanceForEpoch ---- PASS: TestMainnetInstanceForEpoch (0.00s) -=== RUN TestCalcEpochNumber ---- PASS: TestCalcEpochNumber (0.00s) -=== RUN TestGetShardingStructure ---- PASS: TestGetShardingStructure (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/configs/sharding 0.123s -=== RUN TestNew -=== RUN TestNew/Empty -=== RUN TestNew/Regular -=== RUN TestNew/Truncated ---- PASS: TestNew (0.00s) - --- PASS: TestNew/Empty (0.00s) - --- PASS: TestNew/Regular (0.00s) - --- PASS: TestNew/Truncated (0.00s) -=== RUN Test_ctxError_updateCtx -=== RUN Test_ctxError_updateCtx/Empty -=== RUN Test_ctxError_updateCtx/Regular -=== RUN Test_ctxError_updateCtx/Truncated ---- PASS: Test_ctxError_updateCtx (0.00s) - --- PASS: Test_ctxError_updateCtx/Empty (0.00s) - --- PASS: Test_ctxError_updateCtx/Regular (0.00s) - --- PASS: Test_ctxError_updateCtx/Truncated (0.00s) -=== RUN Test_ctxError_Error -=== RUN Test_ctxError_Error/AllEmpty -=== RUN Test_ctxError_Error/CtxEmpty -=== RUN Test_ctxError_Error/MsgEmpty -=== RUN Test_ctxError_Error/Regular ---- PASS: Test_ctxError_Error (0.00s) - --- PASS: Test_ctxError_Error/AllEmpty (0.00s) - --- PASS: Test_ctxError_Error/CtxEmpty (0.00s) - --- PASS: Test_ctxError_Error/MsgEmpty (0.00s) - --- PASS: Test_ctxError_Error/Regular (0.00s) -=== RUN Test_ctxError_Message -=== RUN Test_ctxError_Message/AllEmpty -=== RUN Test_ctxError_Message/CtxEmpty -=== RUN Test_ctxError_Message/MsgEmpty -=== RUN Test_ctxError_Message/Regular ---- PASS: Test_ctxError_Message (0.00s) - --- PASS: Test_ctxError_Message/AllEmpty (0.00s) - --- PASS: Test_ctxError_Message/CtxEmpty (0.00s) - --- PASS: Test_ctxError_Message/MsgEmpty (0.00s) - --- PASS: Test_ctxError_Message/Regular (0.00s) -=== RUN Test_ctxError_Contexts -=== RUN Test_ctxError_Contexts/Empty -=== RUN Test_ctxError_Contexts/Regular ---- PASS: Test_ctxError_Contexts (0.00s) - --- PASS: Test_ctxError_Contexts/Empty (0.00s) - --- PASS: Test_ctxError_Contexts/Regular (0.00s) -=== RUN Test_ctxError_WithCause -=== RUN Test_ctxError_WithCause/CtxError -=== RUN Test_ctxError_WithCause/RegularError ---- PASS: Test_ctxError_WithCause (0.00s) - --- PASS: Test_ctxError_WithCause/CtxError (0.00s) - --- PASS: Test_ctxError_WithCause/RegularError (0.00s) -=== RUN Test_ctxError_Log15 -=== RUN Test_ctxError_Log15/Empty -=== RUN Test_ctxError_Log15/Regular ---- PASS: Test_ctxError_Log15 (0.00s) - --- PASS: Test_ctxError_Log15/Empty (0.00s) - --- PASS: Test_ctxError_Log15/Regular (0.00s) -=== RUN TestLog15 -=== RUN TestLog15/Regular -=== RUN TestLog15/CtxError ---- PASS: TestLog15 (0.00s) - --- PASS: TestLog15/Regular (0.00s) - --- PASS: TestLog15/CtxError (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/ctxerror 0.017s -? github.com/harmony-one/harmony/internal/ctxerror/mock [no test files] -=== RUN TestFoundationalNodeAccounts -=== RUN TestFoundationalNodeAccounts/V0 -=== RUN TestFoundationalNodeAccounts/V1 -=== RUN TestFoundationalNodeAccounts/V1_1 -=== RUN TestFoundationalNodeAccounts/V1_2 ---- PASS: TestFoundationalNodeAccounts (0.64s) - --- PASS: TestFoundationalNodeAccounts/V0 (0.07s) - --- PASS: TestFoundationalNodeAccounts/V1 (0.20s) - --- PASS: TestFoundationalNodeAccounts/V1_1 (0.21s) - --- PASS: TestFoundationalNodeAccounts/V1_2 (0.16s) -=== RUN TestString ---- PASS: TestString (0.00s) -=== RUN TestCommitteeAccounts ---- PASS: TestCommitteeAccounts (1.64s) -=== RUN TestHarmonyAccounts ---- PASS: TestHarmonyAccounts (0.32s) -=== RUN TestLocalTestAccounts -=== RUN TestLocalTestAccounts/FoundationalV1 -=== RUN TestLocalTestAccounts/FoundationalV2 -=== RUN TestLocalTestAccounts/HarmonyV0 -=== RUN TestLocalTestAccounts/HarmonyV1 -=== RUN TestLocalTestAccounts/HarmonyV2 -=== RUN TestLocalTestAccounts/FoundationalV0 ---- PASS: TestLocalTestAccounts (0.02s) - --- PASS: TestLocalTestAccounts/FoundationalV1 (0.00s) - --- PASS: TestLocalTestAccounts/FoundationalV2 (0.00s) - --- PASS: TestLocalTestAccounts/HarmonyV0 (0.00s) - --- PASS: TestLocalTestAccounts/HarmonyV1 (0.00s) - --- PASS: TestLocalTestAccounts/HarmonyV2 (0.00s) - --- PASS: TestLocalTestAccounts/FoundationalV0 (0.00s) -=== RUN TestNewNodeAccounts ---- PASS: TestNewNodeAccounts (0.00s) -=== RUN TestTNHarmonyAccounts ---- PASS: TestTNHarmonyAccounts (0.29s) -=== RUN TestTNFoundationalAccounts ---- PASS: TestTNFoundationalAccounts (0.08s) -PASS -ok github.com/harmony-one/harmony/internal/genesis 3.132s -? github.com/harmony-one/harmony/internal/hmyapi [no test files] -? github.com/harmony-one/harmony/internal/hmyapi/filters [no test files] -? github.com/harmony-one/harmony/internal/keystore [no test files] -? github.com/harmony-one/harmony/internal/memprofiling [no test files] -=== RUN TestCheckCompatible ---- PASS: TestCheckCompatible (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/params 0.011s -? github.com/harmony-one/harmony/internal/profiler [no test files] -? github.com/harmony-one/harmony/internal/shardchain [no test files] -=== RUN TestFromHex ---- PASS: TestFromHex (0.00s) -=== RUN TestIsHex ---- PASS: TestIsHex (0.00s) -=== RUN TestFromHexOddLength ---- PASS: TestFromHexOddLength (0.00s) -=== RUN TestNoPrefixShortHexOddLength ---- PASS: TestNoPrefixShortHexOddLength (0.00s) -=== RUN TestCopyBytes ---- PASS: TestCopyBytes (0.00s) -=== RUN TestPadBytes ---- PASS: TestPadBytes (0.00s) -=== RUN TestReadWalletProfile -NOTICE: Chain ID not found in config profile, assuming 1; please add "chain_id = 1" to section [default] of wallet.ini before 2020-01 -NOTICE: Chain ID not found in config profile, assuming 2; please add "chain_id = 2" to section [testnet] of wallet.ini before 2020-01 ---- PASS: TestReadWalletProfile (0.00s) -=== RUN TestStringsToAddrs ---- PASS: TestStringsToAddrs (0.00s) -=== RUN TestAddrListFunc ---- PASS: TestAddrListFunc (0.00s) -=== RUN TestWithCallerSkip -=== RUN TestWithCallerSkip/0 -=== RUN TestWithCallerSkip/1 -=== RUN TestWithCallerSkip/2 ---- PASS: TestWithCallerSkip (0.00s) - --- PASS: TestWithCallerSkip/0 (0.00s) - --- PASS: TestWithCallerSkip/1 (0.00s) - --- PASS: TestWithCallerSkip/2 (0.00s) -=== RUN TestWithCaller ---- PASS: TestWithCaller (0.00s) -=== RUN TestGetLogger ---- PASS: TestGetLogger (0.00s) -=== RUN TestBToMb ---- PASS: TestBToMb (0.00s) -=== RUN TestGetPassphraseFromSource_Pass ---- PASS: TestGetPassphraseFromSource_Pass (0.00s) -=== RUN TestGetPassphraseFromSource_File -=== RUN TestGetPassphraseFromSource_File/stdin -=== RUN TestGetPassphraseFromSource_File/file -=== RUN TestGetPassphraseFromSource_File/fd ---- PASS: TestGetPassphraseFromSource_File (0.00s) - --- PASS: TestGetPassphraseFromSource_File/stdin (0.00s) - --- PASS: TestGetPassphraseFromSource_File/file (0.00s) - --- PASS: TestGetPassphraseFromSource_File/fd (0.00s) - tempfile.go:41: cannot close test file /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/TestGetPassphraseFromSource_File_fd610708151: close /var/folders/1z/j88ds0mn0f3_86sv2r1mvxpw0000gn/T/TestGetPassphraseFromSource_File_fd610708151: bad file descriptor -=== RUN TestSingleton ---- PASS: TestSingleton (0.00s) -=== RUN TestExampleTestLogRedirectorUsingGetLogInstance ---- PASS: TestExampleTestLogRedirectorUsingGetLogInstance (0.00s) - testing.go:57: [info] what are you doing my son, port="", ip="" - testing.go:57: [warn] succeding you father, port="", ip="" -=== RUN TestNewTestLogRedirector ---- PASS: TestNewTestLogRedirector (0.00s) -=== RUN TestTestLogRedirector_Log -=== RUN TestTestLogRedirector_Log/WithoutContexts -=== RUN TestTestLogRedirector_Log/WithContexts ---- PASS: TestTestLogRedirector_Log (0.00s) - --- PASS: TestTestLogRedirector_Log/WithoutContexts (0.00s) - --- PASS: TestTestLogRedirector_Log/WithContexts (0.00s) -=== RUN TestTestLogRedirector_Close ---- PASS: TestTestLogRedirector_Close (0.00s) -=== RUN TestNewTimeout ---- PASS: TestNewTimeout (0.00s) -=== RUN TestCheckExpire ---- PASS: TestCheckExpire (2.00s) -=== RUN TestConvertFixedDataIntoByteArray ---- PASS: TestConvertFixedDataIntoByteArray (0.00s) -=== RUN TestAllocateShard ---- PASS: TestAllocateShard (0.00s) -=== RUN TestGenKeyP2P ---- PASS: TestGenKeyP2P (0.29s) -=== RUN TestGenKeyP2PRand ---- PASS: TestGenKeyP2PRand (0.18s) -=== RUN TestSaveLoadPrivateKey ---- PASS: TestSaveLoadPrivateKey (0.25s) -=== RUN TestSaveLoadKeyFile ---- PASS: TestSaveLoadKeyFile (0.51s) -=== RUN TestIsPrivateIP ---- PASS: TestIsPrivateIP (0.00s) -=== RUN TestStringsToPeers ---- PASS: TestStringsToPeers (0.00s) -PASS -ok github.com/harmony-one/harmony/internal/utils 3.273s -? github.com/harmony-one/harmony/internal/utils/gomock_reflect_069400606 [no test files] -? github.com/harmony-one/harmony/internal/utils/gomock_reflect_579506979 [no test files] -? github.com/harmony-one/harmony/internal/utils/mock [no test files] -? github.com/harmony-one/harmony/internal/utils/mock_log [no test files] -? github.com/harmony-one/harmony/internal/utils/testing [no test files] -=== RUN TestAddNewBlock ---- PASS: TestAddNewBlock (0.36s) -=== RUN TestVerifyNewBlock ---- PASS: TestVerifyNewBlock (0.39s) -=== RUN TestNewNode ---- PASS: TestNewNode (0.39s) -=== RUN TestLegacySyncingPeerProvider -=== RUN TestLegacySyncingPeerProvider/ShardChain -=== RUN TestLegacySyncingPeerProvider/BeaconChain -=== RUN TestLegacySyncingPeerProvider/NoMatch ---- PASS: TestLegacySyncingPeerProvider (0.00s) - --- PASS: TestLegacySyncingPeerProvider/ShardChain (0.00s) - --- PASS: TestLegacySyncingPeerProvider/BeaconChain (0.00s) - --- PASS: TestLegacySyncingPeerProvider/NoMatch (0.00s) -=== RUN TestDNSSyncingPeerProvider -=== RUN TestDNSSyncingPeerProvider/Happy -=== RUN TestDNSSyncingPeerProvider/LookupError ---- PASS: TestDNSSyncingPeerProvider (0.00s) - --- PASS: TestDNSSyncingPeerProvider/Happy (0.00s) - --- PASS: TestDNSSyncingPeerProvider/LookupError (0.00s) -=== RUN TestLocalSyncingPeerProvider -=== RUN TestLocalSyncingPeerProvider/BeaconChain -=== RUN TestLocalSyncingPeerProvider/Shard1Chain -=== RUN TestLocalSyncingPeerProvider/InvalidShard ---- PASS: TestLocalSyncingPeerProvider (0.00s) - --- PASS: TestLocalSyncingPeerProvider/BeaconChain (0.00s) - --- PASS: TestLocalSyncingPeerProvider/Shard1Chain (0.00s) - --- PASS: TestLocalSyncingPeerProvider/InvalidShard (0.00s) -=== RUN TestAddPeers ---- PASS: TestAddPeers (0.36s) -=== RUN TestAddBeaconPeer ---- PASS: TestAddBeaconPeer (0.35s) -=== RUN TestUpdateStakingList ---- PASS: TestUpdateStakingList (0.39s) -PASS -ok github.com/harmony-one/harmony/node 4.823s -=== RUN TestNewWorker ---- PASS: TestNewWorker (0.00s) -=== RUN TestCommitTransactions ---- PASS: TestCommitTransactions (0.00s) -PASS -ok github.com/harmony-one/harmony/node/worker 0.110s -=== RUN TestNewBackoffBase ---- PASS: TestNewBackoffBase (0.00s) -=== RUN TestBaseBackOffSleep ---- PASS: TestBaseBackOffSleep (0.00s) -=== RUN TestNewExpBackoff ---- PASS: TestNewExpBackoff (0.00s) -=== RUN TestExpBackoffSleep ---- PASS: TestExpBackoffSleep (0.00s) -=== RUN TestExpBackoffAdjustment ---- PASS: TestExpBackoffAdjustment (0.00s) -=== RUN TestExpBackoffReset ---- PASS: TestExpBackoffReset (0.00s) -=== RUN TestGroupID_String -=== RUN TestGroupID_String/empty -=== RUN TestGroupID_String/ABC ---- PASS: TestGroupID_String (0.00s) - --- PASS: TestGroupID_String/empty (0.00s) - --- PASS: TestGroupID_String/ABC (0.00s) -=== RUN TestActionTypeString -=== RUN TestActionTypeString/ActionStart -=== RUN TestActionTypeString/ActionPause -=== RUN TestActionTypeString/ActionResume -=== RUN TestActionTypeString/ActionStop -=== RUN TestActionTypeString/UnknownAction ---- PASS: TestActionTypeString (0.00s) - --- PASS: TestActionTypeString/ActionStart (0.00s) - --- PASS: TestActionTypeString/ActionPause (0.00s) - --- PASS: TestActionTypeString/ActionResume (0.00s) - --- PASS: TestActionTypeString/ActionStop (0.00s) - --- PASS: TestActionTypeString/UnknownAction (0.00s) -=== RUN TestGroupAction -=== RUN TestGroupAction/BeaconStart -=== RUN TestGroupAction/BeaconPause -=== RUN TestGroupAction/BeaconResume -=== RUN TestGroupAction/BeaconStop -=== RUN TestGroupAction/BeaconUnknown ---- PASS: TestGroupAction (0.00s) - --- PASS: TestGroupAction/BeaconStart (0.00s) - --- PASS: TestGroupAction/BeaconPause (0.00s) - --- PASS: TestGroupAction/BeaconResume (0.00s) - --- PASS: TestGroupAction/BeaconStop (0.00s) - --- PASS: TestGroupAction/BeaconUnknown (0.00s) -PASS -ok github.com/harmony-one/harmony/p2p 0.029s -? github.com/harmony-one/harmony/p2p/host [no test files] -=== RUN TestHostV2_SendMessageToGroups -=== RUN TestHostV2_SendMessageToGroups/Basic -=== RUN TestHostV2_SendMessageToGroups/Error ---- PASS: TestHostV2_SendMessageToGroups (0.00s) - --- PASS: TestHostV2_SendMessageToGroups/Basic (0.00s) - --- PASS: TestHostV2_SendMessageToGroups/Error (0.00s) -=== RUN TestGroupReceiver_Close ---- PASS: TestGroupReceiver_Close (0.00s) -=== RUN TestGroupReceiver_Receive ---- PASS: TestGroupReceiver_Receive (0.00s) -=== RUN TestHostV2_GroupReceiver -=== RUN TestHostV2_GroupReceiver/Basic -=== RUN TestHostV2_GroupReceiver/Error -=== RUN TestHostV2_GroupReceiver/Closed ---- PASS: TestHostV2_GroupReceiver (0.00s) - --- PASS: TestHostV2_GroupReceiver/Basic (0.00s) - --- PASS: TestHostV2_GroupReceiver/Error (0.00s) - --- PASS: TestHostV2_GroupReceiver/Closed (0.00s) -PASS -ok github.com/harmony-one/harmony/p2p/host/hostv2 0.021s -? github.com/harmony-one/harmony/p2p/host/hostv2/mock [no test files] -? github.com/harmony-one/harmony/p2p/host/mock [no test files] -? github.com/harmony-one/harmony/p2p/p2pimpl [no test files] -? github.com/harmony-one/harmony/scripts [no test files] -=== RUN TestGetHashFromNodeList ---- PASS: TestGetHashFromNodeList (0.00s) -=== RUN TestHash ---- PASS: TestHash (0.00s) -PASS -ok github.com/harmony-one/harmony/shard 0.027s -=== RUN TestPrecisionMultiplier ---- PASS: TestPrecisionMultiplier (0.00s) -=== RUN TestNewDecFromStr ---- PASS: TestNewDecFromStr (0.00s) -=== RUN TestDecString ---- PASS: TestDecString (0.00s) -=== RUN TestEqualities ---- PASS: TestEqualities (0.00s) -=== RUN TestDecsEqual ---- PASS: TestDecsEqual (0.00s) -=== RUN TestArithmetic ---- PASS: TestArithmetic (0.00s) -=== RUN TestBankerRoundChop ---- PASS: TestBankerRoundChop (0.00s) -=== RUN TestTruncate ---- PASS: TestTruncate (0.00s) -=== RUN TestDecMarshalJSON -=== RUN TestDecMarshalJSON/zero -=== RUN TestDecMarshalJSON/one -=== RUN TestDecMarshalJSON/ten -=== RUN TestDecMarshalJSON/12340 -=== RUN TestDecMarshalJSON/zeroInt -=== RUN TestDecMarshalJSON/oneInt -=== RUN TestDecMarshalJSON/tenInt -=== RUN TestDecMarshalJSON/12340Int ---- PASS: TestDecMarshalJSON (0.00s) - --- PASS: TestDecMarshalJSON/zero (0.00s) - --- PASS: TestDecMarshalJSON/one (0.00s) - --- PASS: TestDecMarshalJSON/ten (0.00s) - --- PASS: TestDecMarshalJSON/12340 (0.00s) - --- PASS: TestDecMarshalJSON/zeroInt (0.00s) - --- PASS: TestDecMarshalJSON/oneInt (0.00s) - --- PASS: TestDecMarshalJSON/tenInt (0.00s) - --- PASS: TestDecMarshalJSON/12340Int (0.00s) -=== RUN TestSerializationText ---- PASS: TestSerializationText (0.00s) -=== RUN TestStringOverflow ---- PASS: TestStringOverflow (0.00s) -=== RUN TestDecCeil ---- PASS: TestDecCeil (0.00s) -PASS -ok github.com/harmony-one/harmony/staking/types 0.021s -? github.com/harmony-one/harmony/test/chain [no test files] -? github.com/harmony-one/harmony/test/crypto/bls [no test files] -? github.com/harmony-one/harmony/test/p2pchat [no test files] -? github.com/harmony-one/harmony/test/txgen [no test files] -go test succeeded. -Some checks failed; see output above. From de6a1df793aaa949533f694e535db724a64aff20 Mon Sep 17 00:00:00 2001 From: Rongjian Lan Date: Thu, 26 Sep 2019 14:42:13 -0700 Subject: [PATCH 4/4] Make pending txs a map --- node/node.go | 76 +++++++++++++++------------- node/worker/worker.go | 2 +- staking/types/staking_transaction.go | 17 ++++++- 3 files changed, 58 insertions(+), 37 deletions(-) diff --git a/node/node.go b/node/node.go index 8eda30de1..2e94daeb1 100644 --- a/node/node.go +++ b/node/node.go @@ -124,11 +124,11 @@ type Node struct { CxPool *core.CxPool // pool for missing cross shard receipts resend - pendingTransactions types.Transactions // All the transactions received but not yet processed for Consensus + pendingTransactions map[common.Hash]*types.Transaction // All the transactions received but not yet processed for Consensus pendingTxMutex sync.Mutex recentTxsStats types.RecentTxsStats - pendingStakingTransactions types2.StakingTransactions // All the staking transactions received but not yet processed for Consensus + pendingStakingTransactions map[common.Hash]*types2.StakingTransaction // All the staking transactions received but not yet processed for Consensus pendingStakingTxMutex sync.Mutex Worker *worker.Worker @@ -249,28 +249,6 @@ func (node *Node) Beaconchain() *core.BlockChain { return bc } -func (node *Node) reducePendingTransactions() { - txPoolLimit := core.ShardingSchedule.MaxTxPoolSizeLimit() - curLen := len(node.pendingTransactions) - - // If length of pendingTransactions is greater than TxPoolLimit then by greedy take the TxPoolLimit recent transactions. - if curLen > txPoolLimit+txPoolLimit { - node.pendingTransactions = append(types.Transactions(nil), node.pendingTransactions[curLen-txPoolLimit:]...) - utils.Logger().Info().Msg("mem stat reduce pending transaction") - } -} - -func (node *Node) reducePendingStakingTransactions() { - txPoolLimit := core.ShardingSchedule.MaxTxPoolSizeLimit() - curLen := len(node.pendingStakingTransactions) - - // If length of pendingStakingTransactions is greater than TxPoolLimit then by greedy take the TxPoolLimit recent transactions. - if curLen > txPoolLimit+txPoolLimit { - node.pendingStakingTransactions = append(types2.StakingTransactions(nil), node.pendingStakingTransactions[curLen-txPoolLimit:]...) - utils.Logger().Info().Msg("mem stat reduce pending staking transaction") - } -} - func (node *Node) tryBroadcast(tx *types.Transaction) { msg := proto_node.ConstructTransactionListMessageAccount(types.Transactions{tx}) @@ -288,18 +266,32 @@ func (node *Node) tryBroadcast(tx *types.Transaction) { // Add new transactions to the pending transaction list. func (node *Node) addPendingTransactions(newTxs types.Transactions) { + txPoolLimit := core.ShardingSchedule.MaxTxPoolSizeLimit() node.pendingTxMutex.Lock() - node.pendingTransactions = append(node.pendingTransactions, newTxs...) - node.reducePendingTransactions() + for _, tx := range newTxs { + if _, ok := node.pendingTransactions[tx.Hash()]; !ok { + node.pendingTransactions[tx.Hash()] = tx + } + if len(node.pendingTransactions) > txPoolLimit { + break + } + } node.pendingTxMutex.Unlock() utils.Logger().Info().Int("length of newTxs", len(newTxs)).Int("totalPending", len(node.pendingTransactions)).Msg("Got more transactions") } // Add new staking transactions to the pending staking transaction list. func (node *Node) addPendingStakingTransactions(newStakingTxs types2.StakingTransactions) { + txPoolLimit := core.ShardingSchedule.MaxTxPoolSizeLimit() node.pendingStakingTxMutex.Lock() - node.pendingStakingTransactions = append(node.pendingStakingTransactions, newStakingTxs...) - node.reducePendingStakingTransactions() + for _, tx := range newStakingTxs { + if _, ok := node.pendingStakingTransactions[tx.Hash()]; !ok { + node.pendingStakingTransactions[tx.Hash()] = tx + } + if len(node.pendingStakingTransactions) > txPoolLimit { + break + } + } node.pendingStakingTxMutex.Unlock() utils.Logger().Info().Int("length of newStakingTxs", len(newStakingTxs)).Int("totalPending", len(node.pendingTransactions)).Msg("Got more staking transactions") } @@ -369,19 +361,33 @@ func (node *Node) getTransactionsForNewBlock(coinbase common.Address) (types.Tra node.pendingStakingTxMutex.Lock() defer node.pendingStakingTxMutex.Unlock() - selected, unselected, invalid := node.Worker.SelectTransactionsForNewBlock(newBlockNum, node.pendingTransactions, node.recentTxsStats, txsThrottleConfig, coinbase) - selectedStaking, unselectedStaking, invalidStaking := node.Worker.SelectStakingTransactionsForNewBlock(newBlockNum, node.pendingTransactions, node.recentTxsStats, txsThrottleConfig, coinbase) + pendingTransactions := types.Transactions{} + pendingStakingTransactions := types2.StakingTransactions{} - node.pendingTransactions = unselected - node.reducePendingTransactions() + for _, tx := range node.pendingTransactions { + pendingTransactions = append(pendingTransactions, tx) + } + for _, tx := range node.pendingStakingTransactions { + pendingStakingTransactions = append(pendingStakingTransactions, tx) + } + + selected, unselected, invalid := node.Worker.SelectTransactionsForNewBlock(newBlockNum, pendingTransactions, node.recentTxsStats, txsThrottleConfig, coinbase) + selectedStaking, unselectedStaking, invalidStaking := node.Worker.SelectStakingTransactionsForNewBlock(newBlockNum, pendingStakingTransactions, node.recentTxsStats, txsThrottleConfig, coinbase) + + node.pendingTransactions = make(map[common.Hash]*types.Transaction) + for _, unselectedTx := range unselected { + node.pendingTransactions[unselectedTx.Hash()] = unselectedTx + } utils.Logger().Info(). Int("remainPending", len(node.pendingTransactions)). Int("selected", len(selected)). Int("invalidDiscarded", len(invalid)). Msg("Selecting Transactions") - node.pendingStakingTransactions = unselectedStaking - node.reducePendingStakingTransactions() + node.pendingStakingTransactions = make(map[common.Hash]*types2.StakingTransaction) + for _, unselectedStakingTx := range unselectedStaking { + node.pendingStakingTransactions[unselectedStakingTx.Hash()] = unselectedStakingTx + } utils.Logger().Info(). Int("remainPending", len(node.pendingStakingTransactions)). Int("selected", len(unselectedStaking)). @@ -464,6 +470,8 @@ func New(host p2p.Host, consensusObj *consensus.Consensus, chainDBFactory shardc } node.pendingCXReceipts = make(map[string]*types.CXReceiptsProof) + node.pendingTransactions = make(map[common.Hash]*types.Transaction) + node.pendingStakingTransactions = make(map[common.Hash]*types2.StakingTransaction) node.Consensus.VerifiedNewBlock = make(chan *types.Block) // the sequence number is the next block number to be added in consensus protocol, which is always one more than current chain header block diff --git a/node/worker/worker.go b/node/worker/worker.go index e82347394..dc4d41993 100644 --- a/node/worker/worker.go +++ b/node/worker/worker.go @@ -150,7 +150,7 @@ func (w *Worker) SelectTransactionsForNewBlock(newBlockNum uint64, txs types.Tra } // SelectStakingTransactionsForNewBlock selects staking transactions for new block. -func (w *Worker) SelectStakingTransactionsForNewBlock(newBlockNum uint64, txs types.Transactions, recentTxsStats types.RecentTxsStats, txsThrottleConfig *shardingconfig.TxsThrottleConfig, coinbase common.Address) (types2.StakingTransactions, types2.StakingTransactions, types2.StakingTransactions) { +func (w *Worker) SelectStakingTransactionsForNewBlock(newBlockNum uint64, txs types2.StakingTransactions, recentTxsStats types.RecentTxsStats, txsThrottleConfig *shardingconfig.TxsThrottleConfig, coinbase common.Address) (types2.StakingTransactions, types2.StakingTransactions, types2.StakingTransactions) { // TODO: implement staking transaction selection return types2.StakingTransactions{}, types2.StakingTransactions{}, types2.StakingTransactions{} } diff --git a/staking/types/staking_transaction.go b/staking/types/staking_transaction.go index 5d2ee5441..bc319123a 100644 --- a/staking/types/staking_transaction.go +++ b/staking/types/staking_transaction.go @@ -1,9 +1,11 @@ package types import ( + "bytes" "math/big" - "github.com/harmony-one/harmony/internal/common" + "github.com/ethereum/go-ethereum/common" + "github.com/harmony-one/harmony/crypto/hash" ) // StakingTransaction struct. @@ -19,8 +21,19 @@ type StakingTransaction struct { S *big.Int `json:"s" gencodec:"required"` // This is only used when marshaling to JSON. - Hash *common.Hash `json:"hash" rlp:"-"` + hash *common.Hash `json:"hash" rlp:"-"` } // StakingTransactions is a Transaction slice type for basic sorting. type StakingTransactions []*StakingTransaction + +// Hash hashes the RLP encoding of tx. +// It uniquely identifies the transaction. +func (tx *StakingTransaction) Hash() common.Hash { + emptyHash := common.Hash{} + if bytes.Compare(tx.hash[:], emptyHash[:]) == 0 { + h := hash.FromRLP(tx) + tx.hash = &h + } + return *tx.hash +}