Documentation ¶
Index ¶
- Constants
- Variables
- func AdbEmulateBalanceTxExecution(accounts state.AccountsAdapter, acntSrc, acntDest state.UserAccountHandler, ...) error
- func AdbEmulateBalanceTxSafeExecution(acntSrc, acntDest state.UserAccountHandler, accounts state.AccountsAdapter, ...)
- func AddSelfNotarizedHeaderByMetachain(nodes []*TestProcessorNode)
- func AllShardsProposeBlock(round uint64, nonce uint64, nodesMap map[uint32][]*TestProcessorNode) (map[uint32]data.BodyHandler, map[uint32]data.HeaderHandler, ...)
- func BootstrapDelay()
- func CheckRootHashes(t *testing.T, nodes []*TestProcessorNode, idxProposers []int)
- func CheckTxPresentAndRightNonce(t *testing.T, startingNonce uint64, noOfTxs int, txHashes [][]byte, ...)
- func ClosePeers(peers []p2p.Messenger)
- func CloseProcessorNodes(nodes []*TestProcessorNode)
- func ComputeAndRequestMissingTransactions(nodes []*TestProcessorNode, generatedTxHashes [][]byte, shardResolver uint32, ...)
- func ConnectNodes(nodes []Connectable)
- func CreateAccount(accnts state.AccountsAdapter, nonce uint64, balance *big.Int) []byte
- func CreateAccountForNode(node *TestProcessorNode)
- func CreateAccountForNodes(nodes []*TestProcessorNode)
- func CreateAccountsDB(accountType Type, trieStorageManager common.StorageManager) (*state.AccountsDB, common.Trie)
- func CreateAndSendTransaction(node *TestProcessorNode, nodes []*TestProcessorNode, txValue *big.Int, ...)
- func CreateAndSendTransactionWithGasLimit(node *TestProcessorNode, txValue *big.Int, gasLimit uint64, rcvAddress []byte, ...)
- func CreateAndSendTransactions(nodes map[uint32][]*TestProcessorNode, ...)
- func CreateFixedNetworkOf14Peers() ([]p2p.Messenger, error)
- func CreateFixedNetworkOf8Peers() ([]p2p.Messenger, error)
- func CreateFullGenesisBlocks(accounts state.AccountsAdapter, validatorAccounts state.AccountsAdapter, ...) map[uint32]data.HeaderHandler
- func CreateGenesisBlocks(accounts state.AccountsAdapter, validatorAccounts state.AccountsAdapter, ...) map[uint32]data.HeaderHandler
- func CreateGenesisMetaBlock(accounts state.AccountsAdapter, validatorAccounts state.AccountsAdapter, ...) data.HeaderHandler
- func CreateHeaderIntegrityVerifier() process.HeaderIntegrityVerifier
- func CreateMemUnit() storage.Storer
- func CreateMessengerFromConfig(p2pConfig config.P2PConfig) p2p.Messenger
- func CreateMessengerWithKadDht(initialAddr string) p2p.Messenger
- func CreateMessengerWithKadDhtAndProtocolID(initialAddr string, protocolID string) p2p.Messenger
- func CreateMessengerWithNoDiscovery() p2p.Messenger
- func CreateMetaChain() data.ChainHandler
- func CreateMintingForSenders(nodes []*TestProcessorNode, senderShard uint32, ...)
- func CreateMintingFromAddresses(nodes []*TestProcessorNode, addresses [][]byte, value *big.Int)
- func CreateNewDefaultTrie() common.Trie
- func CreateNodesWithFullGenesis(numOfShards int, nodesPerShard int, numMetaChainNodes int, genesisFile string) ([]*TestProcessorNode, *TestProcessorNode)
- func CreateNodesWithNodesCoordinator(nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, ...) map[uint32][]*TestProcessorNode
- func CreateNodesWithNodesCoordinatorAndHeaderSigVerifier(nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, ...) map[uint32][]*TestProcessorNode
- func CreateNodesWithNodesCoordinatorAndTxKeys(nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, ...) map[uint32][]*TestProcessorNode
- func CreateNodesWithNodesCoordinatorFactory(nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, ...) map[uint32][]*TestProcessorNode
- func CreateNodesWithNodesCoordinatorKeygenAndSingleSigner(nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, ...) map[uint32][]*TestProcessorNode
- func CreateNodesWithNodesCoordinatorWithCacher(nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, ...) map[uint32][]*TestProcessorNode
- func CreateNodesWithTestP2PNodes(nodesPerShard int, numMetaNodes int, numShards int, ...) map[uint32][]*TestP2PNode
- func CreatePkBytes(numShards uint32) map[uint32][]byte
- func CreateProcessorNodesWithNodesCoordinator(rewardsAddrsAssignments map[uint32][]uint32, shardConsensusGroupSize int, ...) (map[uint32][]*TestProcessorNode, uint32)
- func CreateRandomAddress() []byte
- func CreateRandomBytes(chars int) []byte
- func CreateRatingsData() *rating.RatingsData
- func CreateRequesterDataPool(recvTxs map[int]map[string]struct{}, mutRecvTxs *sync.Mutex, nodeIndex int, ...) dataRetriever.PoolsHolder
- func CreateResolversDataPool(t *testing.T, maxTxs int, senderShardID uint32, recvShardId uint32, ...) (dataRetriever.PoolsHolder, [][]byte, [][]byte)
- func CreateSendersAndReceiversInShard(nodeInShard *TestProcessorNode, nbSenderReceiverPairs uint32) ([]crypto.PrivateKey, []crypto.PublicKey)
- func CreateSendersWithInitialBalances(nodesMap map[uint32][]*TestProcessorNode, mintValue *big.Int) map[uint32][]crypto.PrivateKey
- func CreateShardChain() data.ChainHandler
- func CreateSimpleGenesisBlock(shardId uint32) *dataBlock.Header
- func CreateSimpleGenesisBlocks(shardCoordinator sharding.Coordinator) map[uint32]data.HeaderHandler
- func CreateSimpleGenesisMetaBlock() *dataBlock.MetaBlock
- func CreateSimpleTxProcessor(accnts state.AccountsAdapter) process.TransactionProcessor
- func CreateStore(numOfShards uint32) dataRetriever.StorageService
- func CreateTrieStorageManager(store storage.Storer) (common.StorageManager, storage.Storer)
- func DeployScTx(nodes []*TestProcessorNode, senderIdx int, scCode string, vmType []byte, ...)
- func DisplayAndStartNodes(nodes []*TestProcessorNode)
- func DoConsensusSigningOnBlock(blockHeader data.HeaderHandler, consensusNodes []*TestProcessorNode, ...) data.HeaderHandler
- func EmptyDataPools(nodes []*TestProcessorNode, shardId uint32)
- func ForkChoiceOneBlock(nodes []*TestProcessorNode, shardId uint32)
- func GenValidatorsFromPubKeys(pubKeysMap map[uint32][]string, _ uint32) map[uint32][]sharding.GenesisNodeInfoHandler
- func GenValidatorsFromPubKeysAndTxPubKeys(blsPubKeysMap map[uint32][]string, txPubKeysMap map[uint32][]string) map[uint32][]sharding.GenesisNodeInfoHandler
- func GenerateAddressJournalAccountAccountsDB() ([]byte, state.UserAccountHandler, *state.AccountsDB)
- func GenerateAndDisseminateTxs(n *TestProcessorNode, senders []crypto.PrivateKey, ...)
- func GenerateIntraShardTransactions(nodesMap map[uint32][]*TestProcessorNode, nbTxsPerShard uint32, ...)
- func GenerateRandomSlice(size int) []byte
- func GenerateSkAndPkInShard(coordinator sharding.Coordinator, shardId uint32) (crypto.PrivateKey, crypto.PublicKey, crypto.KeyGenerator)
- func GenerateTransferTx(nonce uint64, senderPrivateKey crypto.PrivateKey, ...) *transaction.Transaction
- func GetConnectableAddress(mes p2p.Messenger) string
- func GetDefaultBootstrapComponents(shardCoordinator sharding.Coordinator) *mainFactoryMocks.BootstrapComponentsStub
- func GetDefaultCoreComponents() *mock.CoreComponentsStub
- func GetDefaultCryptoComponents() *mock.CryptoComponentsStub
- func GetDefaultDataComponents() *mock.DataComponentsStub
- func GetDefaultNetworkComponents() *mock.NetworkComponentsStub
- func GetDefaultProcessComponents() *mock.ProcessComponentsStub
- func GetDefaultStateComponents() *testscommon.StateComponentsMock
- func GetDefaultStatusComponents() *mock.StatusComponentsStub
- func GetMiniBlocksHashesFromShardIds(body *dataBlock.Body, shardIds ...uint32) [][]byte
- func GetTokenIdentifier(nodes []*TestProcessorNode, ticker []byte) []byte
- func IncrementAndPrintRound(round uint64) uint64
- func IncrementNonces(nonces []*uint64)
- func IsIntInSlice(idx int, slice []int) bool
- func MakeDisplayTable(nodes []*TestProcessorNode) string
- func MakeDisplayTableForP2PNodes(nodes map[uint32][]*TestP2PNode) string
- func MintAddress(accnts state.AccountsAdapter, addressBytes []byte, value *big.Int)
- func MintAllNodes(nodes []*TestProcessorNode, value *big.Int)
- func MintAllPlayers(nodes []*TestProcessorNode, players []*TestWalletAccount, value *big.Int)
- func NewOneNodeNetwork() *oneNodeNetwork
- func PlayerSendsTransaction(nodes []*TestProcessorNode, player *TestWalletAccount, scAddress []byte, ...)
- func PrintShardAccount(accnt state.UserAccountHandler, tag string)
- func ProposeAndSyncOneBlock(t *testing.T, nodes []*TestProcessorNode, idxProposers []int, round uint64, ...) (uint64, uint64)
- func ProposeBlock(nodes []*TestProcessorNode, idxProposers []int, round uint64, nonce uint64)
- func ProposeBlockSignalsEmptyBlock(node *TestProcessorNode, round uint64, nonce uint64) (data.HeaderHandler, data.BodyHandler, bool)
- func ProposeBlocks(nodes []*TestProcessorNode, round *uint64, idxProposers []int, ...)
- func PubKeysMapFromKeysMap(keyPairMap map[uint32][]*TestKeyPair) map[uint32][]string
- func ResetHighestProbableNonce(nodes []*TestProcessorNode, shardId uint32, targetNonce uint64)
- func SaveDelegationContractsList(nodes []*TestProcessorNode)
- func SaveDelegationManagerConfig(nodes []*TestProcessorNode)
- func ScCallTxWithParams(senderNode *TestProcessorNode, sk crypto.PrivateKey, nonce uint64, data string, ...)
- func SetEconomicsParameters(nodes []*TestProcessorNode, maxGasLimitPerBlock uint64, minGasPrice uint64, ...)
- func StartSyncingBlocks(nodes []*TestProcessorNode)
- func SyncAllShardsWithRoundBlock(t *testing.T, nodesMap map[uint32][]*TestProcessorNode, ...)
- func SyncBlock(t *testing.T, nodes []*TestProcessorNode, idxProposers []int, round uint64)
- func TestPrivateKeyHasBalance(t *testing.T, n *TestProcessorNode, sk crypto.PrivateKey, ...)
- func TestPublicKeyHasBalance(t *testing.T, n *TestProcessorNode, pk crypto.PublicKey, ...)
- func Uint32InSlice(searched uint32, list []uint32) bool
- func UpdateRound(nodes []*TestProcessorNode, round uint64)
- func WaitForBootstrapAndShowConnected(peers []p2p.Messenger, durationBootstrapingTime time.Duration)
- func WaitOperationToBeDone(t *testing.T, nodes []*TestProcessorNode, nrOfRounds int, nonce uint64, ...) (uint64, uint64)
- func WhiteListTxs(nodes []*TestProcessorNode, txs []*transaction.Transaction)
- type Address
- type ArgIndexHashedNodesCoordinatorFactory
- type Connectable
- type CountInterceptor
- type CryptoParams
- type Facade
- type GasScheduleMap
- type IndexHashedNodesCoordinatorFactory
- type IndexHashedNodesCoordinatorWithRaterFactory
- type NetworkShardingUpdater
- type NodeSlice
- type NodesByShardMap
- type NodesCoordinatorFactory
- type NodesWithRater
- type ShardIdentifier
- type TestBootstrapper
- type TestBuiltinFunction
- func (bf *TestBuiltinFunction) IsActive() bool
- func (bf *TestBuiltinFunction) IsInterfaceNil() bool
- func (bf *TestBuiltinFunction) ProcessBuiltinFunction(acntSnd, acntDst vmcommon.UserAccountHandler, ...) (*vmcommon.VMOutput, error)
- func (bf *TestBuiltinFunction) SetNewGasConfig(_ *vmcommon.GasCost)
- type TestEpochStartTrigger
- type TestKeyPair
- type TestNetwork
- func (net *TestNetwork) Close()
- func (net *TestNetwork) ComputeGasLimit(tx *transaction.Transaction) uint64
- func (net *TestNetwork) ComputeTxFee(tx *transaction.Transaction) *big.Int
- func (net *TestNetwork) ComputeTxFeeUint64(tx *transaction.Transaction) uint64
- func (net *TestNetwork) CreateSignedTx(sender *TestWalletAccount, recvAddress Address, value *big.Int, txData []byte) *transaction.Transaction
- func (net *TestNetwork) CreateSignedTxUint64(sender *TestWalletAccount, recvAddress Address, value uint64, txData []byte) *transaction.Transaction
- func (net *TestNetwork) CreateTx(sender *TestWalletAccount, recvAddress Address, value *big.Int, txData []byte) *transaction.Transaction
- func (net *TestNetwork) CreateTxUint64(sender *TestWalletAccount, recvAddress Address, value uint64, txData []byte) *transaction.Transaction
- func (net *TestNetwork) CreateWallets(count int)
- func (net *TestNetwork) DeployNonpayableSC(owner *TestWalletAccount, fileName string) []byte
- func (net *TestNetwork) DeployPayableSC(owner *TestWalletAccount, fileName string) []byte
- func (net *TestNetwork) DeploySC(owner *TestWalletAccount, fileName string, payable bool) []byte
- func (net *TestNetwork) GetAccountHandler(address Address) state.UserAccountHandler
- func (net *TestNetwork) Increment()
- func (net *TestNetwork) MintNodeAccounts(value *big.Int)
- func (net *TestNetwork) MintNodeAccountsUint64(value uint64)
- func (net *TestNetwork) MintWallets(value *big.Int)
- func (net *TestNetwork) MintWalletsUint64(value uint64)
- func (net *TestNetwork) NewAddress(creator *TestWalletAccount) Address
- func (net *TestNetwork) RequireWalletNoncesInSyncWithState()
- func (net *TestNetwork) SendTx(tx *transaction.Transaction) string
- func (net *TestNetwork) SendTxFromNode(tx *transaction.Transaction, node *TestProcessorNode) string
- func (net *TestNetwork) ShardOfAddress(address Address) ShardIdentifier
- func (net *TestNetwork) SignAndSendTx(signer *TestWalletAccount, tx *transaction.Transaction) string
- func (net *TestNetwork) SignTx(signer *TestWalletAccount, tx *transaction.Transaction)
- func (net *TestNetwork) Start()
- func (net *TestNetwork) Step()
- func (net *TestNetwork) Steps(steps int)
- type TestP2PNode
- func (tP2pNode *TestP2PNode) CountCrossShardMessages() int
- func (tP2pNode *TestP2PNode) CountGlobalMessages() int
- func (tP2pNode *TestP2PNode) CountIntraShardMessages() int
- func (tP2pNode *TestP2PNode) CreateTestInterceptors()
- func (tP2pNode *TestP2PNode) RegisterTopicValidator(topic string, processor p2p.MessageProcessor)
- type TestProcessorNode
- func CreateNode(nodesPerShard int, nbMetaNodes int, shardConsensusGroupSize int, ...) *TestProcessorNode
- func CreateNodeWithBLSAndTxKeys(nodesPerShard int, nbMetaNodes int, shardConsensusGroupSize int, ...) *TestProcessorNode
- func CreateNodes(numOfShards int, nodesPerShard int, numMetaChainNodes int) []*TestProcessorNode
- func CreateNodesWithBLSSigVerifier(numOfShards int, nodesPerShard int, numMetaChainNodes int) []*TestProcessorNode
- func CreateNodesWithCustomStateCheckpointModulus(numOfShards int, nodesPerShard int, numMetaChainNodes int, ...) []*TestProcessorNode
- func CreateNodesWithEnableEpochs(numOfShards int, nodesPerShard int, numMetaChainNodes int, ...) []*TestProcessorNode
- func NewTestProcessorNode(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32) *TestProcessorNode
- func NewTestProcessorNodeWithBLSSigVerifier(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32) *TestProcessorNode
- func NewTestProcessorNodeWithCustomDataPool(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ...) *TestProcessorNode
- func NewTestProcessorNodeWithCustomNodesCoordinator(maxShards uint32, nodeShardId uint32, ...) *TestProcessorNode
- func NewTestProcessorNodeWithEnableEpochs(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ...) *TestProcessorNode
- func NewTestProcessorNodeWithFullGenesis(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ...) *TestProcessorNode
- func NewTestProcessorNodeWithStateCheckpointModulus(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ...) *TestProcessorNode
- func NewTestProcessorNodeWithStorageTrieAndGasModel(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ...) *TestProcessorNode
- func NewTestSyncNode(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32) *TestProcessorNode
- func ProposeBlockWithConsensusSignature(shardId uint32, nodesMap map[uint32][]*TestProcessorNode, round uint64, ...) (data.BodyHandler, data.HeaderHandler, [][]byte, []*TestProcessorNode)
- func SetupSyncNodesOneShardAndMeta(numNodesPerShard int, numNodesMeta int) ([]*TestProcessorNode, []int)
- func (tpn *TestProcessorNode) BroadcastBlock(body data.BodyHandler, header data.HeaderHandler)
- func (tpn *TestProcessorNode) CommitBlock(body data.BodyHandler, header data.HeaderHandler)
- func (tpn *TestProcessorNode) ConnectTo(connectable Connectable) error
- func (tpn *TestProcessorNode) GetBlockBody(header *dataBlock.Header) (*dataBlock.Body, error)
- func (tpn *TestProcessorNode) GetConnectableAddress() string
- func (tpn *TestProcessorNode) GetMetaBlockBody(header *dataBlock.MetaBlock) (*dataBlock.Body, error)
- func (tpn *TestProcessorNode) GetMetaHeader(nonce uint64) (*dataBlock.MetaBlock, error)
- func (tpn *TestProcessorNode) GetShardHeader(nonce uint64) (*dataBlock.Header, error)
- func (tpn *TestProcessorNode) InitDelegationManager()
- func (tpn *TestProcessorNode) InitializeProcessors(gasMap map[string]map[string]uint64)
- func (tpn *TestProcessorNode) IsInterfaceNil() bool
- func (tpn *TestProcessorNode) LoadTxSignSkBytes(skBytes []byte)
- func (tpn *TestProcessorNode) MiniBlocksPresent(hashes [][]byte) bool
- func (tpn *TestProcessorNode) ProposeBlock(round uint64, nonce uint64) (data.BodyHandler, data.HeaderHandler, [][]byte)
- func (tpn *TestProcessorNode) SendTransaction(tx *dataTransaction.Transaction) (string, error)
- func (tpn *TestProcessorNode) SetAccountNonce(nonce uint64) error
- func (tpn *TestProcessorNode) StartSync() error
- func (tpn *TestProcessorNode) SyncNode(nonce uint64) error
- func (tpn *TestProcessorNode) WhiteListBody(nodes []*TestProcessorNode, bodyHandler data.BodyHandler)
- type TestProcessorNodeWithTestWebServer
- type TestStorage
- func (ts *TestStorage) CreateStorageLevelDB() storage.Storer
- func (ts *TestStorage) CreateStorageLevelDBSerial() storage.Storer
- func (ts *TestStorage) CreateStoredData(nonce uint64) ([]byte, []byte)
- func (ts *TestStorage) InitAdditionalFieldsForStorageOperations(nbTxsWrite int, mapRemovedKeys *sync.Map, maxWritten *uint64)
- func (ts *TestStorage) ReadMultiple(store storage.Storer, wg *sync.WaitGroup, chStartTrigger chan struct{}, ...)
- func (ts *TestStorage) RemoveMultiple(store storage.Storer, wg *sync.WaitGroup, chEndRemove chan struct{}, ...)
- func (ts *TestStorage) WriteMultipleWithNotif(store storage.Storer, wg *sync.WaitGroup, chWriteDone chan struct{}, ...)
- type TestWalletAccount
- type Type
Constants ¶
const GlobalTopic = "global"
GlobalTopic is a global testing that all nodes will bind an interceptor
const MaxGasLimitPerBlock = uint64(3000000)
MaxGasLimitPerBlock defines maximum gas limit allowed per one block
const OpGasValueForMockVm = uint64(50)
OpGasValueForMockVm represents the gas value that it consumed by each operation called on the mock VM By operation, we mean each go function that is called on the VM implementation
const ShardTopic = "shard"
ShardTopic is the topic string generator for sharded topics Will generate topics in the following pattern: shard_0, shard_0_1, shard_0_META, shard_1 and so on
const StakingV2Epoch = 1000
StakingV2Epoch defines the epoch for integration tests when stakingV2 is enabled
Variables ¶
var AdditionalGasLimit = uint64(999000)
AdditionalGasLimit is the value that can be added on a transaction in the GasLimit
var ChainID = []byte("integration tests chain ID")
ChainID is the chain ID identifier used in integration tests, processing nodes
var DelegationManagerConfigChangeAddress = "erd1vxy22x0fj4zv6hktmydg8vpfh6euv02cz4yg0aaws6rrad5a5awqgqky80"
DelegationManagerConfigChangeAddress represents the address that can change the config parameters of the delegation manager system smartcontract
var InitialRating = uint32(50)
InitialRating is used to initiate a node's info
var MinTransactionVersion = uint32(1)
MinTransactionVersion is the minimum transaction version used in integration tests, processing nodes
var MinTxGasLimit = uint64(1000)
MinTxGasLimit defines minimum gas limit required by a transaction
var MinTxGasPrice = uint64(100)
MinTxGasPrice defines minimum gas price required by a transaction
var P2pBootstrapDelay = 5 * time.Second
P2pBootstrapDelay is used so that nodes have enough time to bootstrap
var SoftwareVersion = []byte("intT")
SoftwareVersion is the software version identifier used in integration tests, processing nodes
var StepDelay = time.Second / 10
StepDelay is used so that transactions can disseminate properly
var SyncDelay = time.Second / 5
SyncDelay is used so that nodes have enough time to sync
var TestAddressPubkeyConverter, _ = pubkeyConverter.NewBech32PubkeyConverter(32, log)
TestAddressPubkeyConverter represents an address public key converter
var TestAppStatusHandler = &mock.AppStatusHandlerStub{}
TestAppStatusHandler represents an AppStatusHandler
var TestBalanceComputationHandler, _ = preprocess.NewBalanceComputation()
TestBalanceComputationHandler represents a balance computation handler
var TestBlockSizeComputationHandler, _ = preprocess.NewBlockSizeComputation(TestMarshalizer, TestBlockSizeThrottler, uint32(core.MegabyteSize*90/100))
TestBlockSizeComputation represents a block size computation handler
var TestBlockSizeThrottler = &mock.BlockSizeThrottlerStub{}
TestBlockSizeThrottler represents a block size throttler used in adaptive block size computation
var TestBuiltinFunctions = make(map[string]vmcommon.BuiltinFunction)
TestBuiltinFunctions is an additional map of builtin functions to be added to the scProcessor
var TestHasher = sha256.NewSha256()
TestHasher represents a sha256 hasher
var TestKeyGenForAccounts = signing.NewKeyGenerator(ed25519.NewEd25519())
TestKeyGenForAccounts represents a mock key generator for balances
var TestMarshalizer = &marshal.GogoProtoMarshalizer{}
TestMarshalizer represents the main marshalizer
var TestMultiSig = cryptoMocks.NewMultiSigner(1)
TestMultiSig represents a mock multisig
var TestTxSignHasher = keccak.NewKeccak()
TestTxSignHasher represents a sha3 legacy keccak 256 hasher
var TestTxSignMarshalizer = &marshal.JsonMarshalizer{}
TestTxSignMarshalizer represents the marshalizer used in vm communication
var TestUint64Converter = uint64ByteSlice.NewBigEndianConverter()
TestUint64Converter represents an uint64 to byte slice converter
var TestValidatorPubkeyConverter, _ = pubkeyConverter.NewHexPubkeyConverter(96)
TestValidatorPubkeyConverter represents an address public key converter
var TestVmMarshalizer = &marshal.JsonMarshalizer{}
TestVmMarshalizer represents the marshalizer used in vm communication
var TimeSpanForBadHeaders = time.Second * 30
TimeSpanForBadHeaders is the expiry time for an added block header hash
Functions ¶
func AdbEmulateBalanceTxExecution ¶
func AdbEmulateBalanceTxExecution(accounts state.AccountsAdapter, acntSrc, acntDest state.UserAccountHandler, value *big.Int) error
AdbEmulateBalanceTxExecution emulates a tx execution by altering the accounts balance and nonce, and printing any encountered error
func AdbEmulateBalanceTxSafeExecution ¶
func AdbEmulateBalanceTxSafeExecution(acntSrc, acntDest state.UserAccountHandler, accounts state.AccountsAdapter, value *big.Int)
AdbEmulateBalanceTxSafeExecution emulates a tx execution by altering the accounts balance and nonce, and printing any encountered error
func AddSelfNotarizedHeaderByMetachain ¶ added in v1.0.117
func AddSelfNotarizedHeaderByMetachain(nodes []*TestProcessorNode)
AddSelfNotarizedHeaderByMetachain -
func AllShardsProposeBlock ¶
func AllShardsProposeBlock( round uint64, nonce uint64, nodesMap map[uint32][]*TestProcessorNode, ) ( map[uint32]data.BodyHandler, map[uint32]data.HeaderHandler, map[uint32][]*TestProcessorNode, )
AllShardsProposeBlock simulates each shard selecting a consensus group and proposing/broadcasting/committing a block
func BootstrapDelay ¶ added in v1.1.47
func BootstrapDelay()
BootstrapDelay will delay the execution to allow the p2p bootstrap
func CheckRootHashes ¶
func CheckRootHashes(t *testing.T, nodes []*TestProcessorNode, idxProposers []int)
CheckRootHashes checks the root hash of the proposer in every shard
func CheckTxPresentAndRightNonce ¶
func CheckTxPresentAndRightNonce( t *testing.T, startingNonce uint64, noOfTxs int, txHashes [][]byte, txs []data.TransactionHandler, cache dataRetriever.ShardedDataCacherNotifier, shardCoordinator sharding.Coordinator, )
CheckTxPresentAndRightNonce verifies that the nonce was updated correctly after the exec of bulk txs
func ClosePeers ¶
ClosePeers calls Messenger.Close on the provided peers
func CloseProcessorNodes ¶
func CloseProcessorNodes(nodes []*TestProcessorNode)
CloseProcessorNodes closes the used TestProcessorNodes and advertiser
func ComputeAndRequestMissingTransactions ¶
func ComputeAndRequestMissingTransactions( nodes []*TestProcessorNode, generatedTxHashes [][]byte, shardResolver uint32, shardRequesters ...uint32, )
ComputeAndRequestMissingTransactions computes missing transactions for each node, and requests them
func ConnectNodes ¶ added in v1.1.47
func ConnectNodes(nodes []Connectable)
ConnectNodes will try to connect all provided connectable instances in a full mesh fashion
func CreateAccount ¶
CreateAccount creates a new account and returns the address
func CreateAccountForNode ¶
func CreateAccountForNode(node *TestProcessorNode)
CreateAccountForNode creates an account for the given node
func CreateAccountForNodes ¶
func CreateAccountForNodes(nodes []*TestProcessorNode)
CreateAccountForNodes creates accounts for each node and commits the accounts state
func CreateAccountsDB ¶
func CreateAccountsDB( accountType Type, trieStorageManager common.StorageManager, ) (*state.AccountsDB, common.Trie)
CreateAccountsDB creates an account state with a valid trie implementation but with a memory storage
func CreateAndSendTransaction ¶
func CreateAndSendTransaction( node *TestProcessorNode, nodes []*TestProcessorNode, txValue *big.Int, rcvAddress []byte, txData string, additionalGasLimit uint64, )
CreateAndSendTransaction will generate a transaction with provided parameters, sign it with the provided node's tx sign private key and send it on the transaction topic using the correct node that can send the transaction
func CreateAndSendTransactionWithGasLimit ¶
func CreateAndSendTransactionWithGasLimit( node *TestProcessorNode, txValue *big.Int, gasLimit uint64, rcvAddress []byte, txData []byte, chainID []byte, version uint32, )
CreateAndSendTransactionWithGasLimit generates and send a transaction with provided gas limit/gas price
func CreateAndSendTransactions ¶
func CreateAndSendTransactions( nodes map[uint32][]*TestProcessorNode, sendersPrivKeysMap map[uint32][]crypto.PrivateKey, receiversPubKeysMap map[uint32][]crypto.PublicKey, gasPricePerTx uint64, gasLimitPerTx uint64, valueToTransfer *big.Int, )
CreateAndSendTransactions creates and sends transactions between given senders and receivers.
func CreateFixedNetworkOf14Peers ¶
CreateFixedNetworkOf14Peers assembles a network as following:
0 | 1 | +--+--+--+--+--2--+--+--+--+--+ | | | | | | | | | | | 3 4 5 6 7 8 9 10 11 12 13
func CreateFixedNetworkOf8Peers ¶
CreateFixedNetworkOf8Peers assembles a network as following:
0------------------- 1 | | 2 ------------------ 3 ------------------ 4 | | | 5 6 7
func CreateFullGenesisBlocks ¶ added in v1.0.133
func CreateFullGenesisBlocks( accounts state.AccountsAdapter, validatorAccounts state.AccountsAdapter, trieStorageManagers map[string]common.StorageManager, nodesSetup sharding.GenesisNodesSetupHandler, shardCoordinator sharding.Coordinator, store dataRetriever.StorageService, blkc data.ChainHandler, dataPool dataRetriever.PoolsHolder, economics process.EconomicsDataHandler, accountsParser genesis.AccountsParser, smartContractParser genesis.InitialSmartContractParser, ) map[uint32]data.HeaderHandler
CreateFullGenesisBlocks does the full genesis process, deploys smart contract at genesis
func CreateGenesisBlocks ¶
func CreateGenesisBlocks( accounts state.AccountsAdapter, validatorAccounts state.AccountsAdapter, trieStorageManagers map[string]common.StorageManager, pubkeyConv core.PubkeyConverter, nodesSetup sharding.GenesisNodesSetupHandler, shardCoordinator sharding.Coordinator, store dataRetriever.StorageService, blkc data.ChainHandler, marshalizer marshal.Marshalizer, hasher hashing.Hasher, uint64Converter typeConverters.Uint64ByteSliceConverter, dataPool dataRetriever.PoolsHolder, economics process.EconomicsDataHandler, ) map[uint32]data.HeaderHandler
CreateGenesisBlocks creates empty genesis blocks for all known shards, including metachain
func CreateGenesisMetaBlock ¶
func CreateGenesisMetaBlock( accounts state.AccountsAdapter, validatorAccounts state.AccountsAdapter, trieStorageManagers map[string]common.StorageManager, pubkeyConv core.PubkeyConverter, nodesSetup sharding.GenesisNodesSetupHandler, shardCoordinator sharding.Coordinator, store dataRetriever.StorageService, blkc data.ChainHandler, marshalizer marshal.Marshalizer, hasher hashing.Hasher, uint64Converter typeConverters.Uint64ByteSliceConverter, dataPool dataRetriever.PoolsHolder, economics process.EconomicsDataHandler, ) data.HeaderHandler
CreateGenesisMetaBlock creates a new mock meta genesis block
func CreateHeaderIntegrityVerifier ¶ added in v1.1.1
func CreateHeaderIntegrityVerifier() process.HeaderIntegrityVerifier
CreateHeaderIntegrityVerifier outputs a valid header integrity verifier handler
func CreateMemUnit ¶
CreateMemUnit returns an in-memory storer implementation (the vast majority of tests do not require effective disk I/O)
func CreateMessengerFromConfig ¶
CreateMessengerFromConfig creates a new libp2p messenger with provided configuration
func CreateMessengerWithKadDht ¶
CreateMessengerWithKadDht creates a new libp2p messenger with kad-dht peer discovery
func CreateMessengerWithKadDhtAndProtocolID ¶ added in v1.0.114
CreateMessengerWithKadDhtAndProtocolID creates a new libp2p messenger with kad-dht peer discovery and peer ID
func CreateMessengerWithNoDiscovery ¶
CreateMessengerWithNoDiscovery creates a new libp2p messenger with no peer discovery
func CreateMetaChain ¶
func CreateMetaChain() data.ChainHandler
CreateMetaChain creates a blockchain implementation used by the meta nodes
func CreateMintingForSenders ¶
func CreateMintingForSenders( nodes []*TestProcessorNode, senderShard uint32, sendersPrivateKeys []crypto.PrivateKey, value *big.Int, )
CreateMintingForSenders creates account with balances for every node in a given shard
func CreateMintingFromAddresses ¶
func CreateMintingFromAddresses( nodes []*TestProcessorNode, addresses [][]byte, value *big.Int, )
CreateMintingFromAddresses creates account with balances for given address
func CreateNewDefaultTrie ¶
CreateNewDefaultTrie returns a new trie with test hasher and marsahalizer
func CreateNodesWithFullGenesis ¶ added in v1.0.133
func CreateNodesWithFullGenesis( numOfShards int, nodesPerShard int, numMetaChainNodes int, genesisFile string, ) ([]*TestProcessorNode, *TestProcessorNode)
CreateNodesWithFullGenesis creates multiple nodes in different shards
func CreateNodesWithNodesCoordinator ¶
func CreateNodesWithNodesCoordinator( nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, ) map[uint32][]*TestProcessorNode
CreateNodesWithNodesCoordinator returns a map with nodes per shard each using a real nodes coordinator
func CreateNodesWithNodesCoordinatorAndHeaderSigVerifier ¶
func CreateNodesWithNodesCoordinatorAndHeaderSigVerifier( nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, signer crypto.SingleSigner, keyGen crypto.KeyGenerator, ) map[uint32][]*TestProcessorNode
CreateNodesWithNodesCoordinatorAndHeaderSigVerifier returns a map with nodes per shard each using a real nodes coordinator and header sig verifier
func CreateNodesWithNodesCoordinatorAndTxKeys ¶ added in v1.0.116
func CreateNodesWithNodesCoordinatorAndTxKeys( nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, ) map[uint32][]*TestProcessorNode
CreateNodesWithNodesCoordinatorAndTxKeys -
func CreateNodesWithNodesCoordinatorFactory ¶
func CreateNodesWithNodesCoordinatorFactory( nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, nodesCoordinatorFactory NodesCoordinatorFactory, ) map[uint32][]*TestProcessorNode
CreateNodesWithNodesCoordinatorFactory returns a map with nodes per shard each using a real nodes coordinator
func CreateNodesWithNodesCoordinatorKeygenAndSingleSigner ¶
func CreateNodesWithNodesCoordinatorKeygenAndSingleSigner( nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, singleSigner crypto.SingleSigner, keyGenForBlocks crypto.KeyGenerator, ) map[uint32][]*TestProcessorNode
CreateNodesWithNodesCoordinatorKeygenAndSingleSigner returns a map with nodes per shard each using a real nodes coordinator and a given single signer for blocks and a given key gen for blocks
func CreateNodesWithNodesCoordinatorWithCacher ¶
func CreateNodesWithNodesCoordinatorWithCacher( nodesPerShard int, nbMetaNodes int, nbShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, ) map[uint32][]*TestProcessorNode
CreateNodesWithNodesCoordinatorWithCacher returns a map with nodes per shard each using a real nodes coordinator with cacher
func CreateNodesWithTestP2PNodes ¶
func CreateNodesWithTestP2PNodes( nodesPerShard int, numMetaNodes int, numShards int, shardConsensusGroupSize int, metaConsensusGroupSize int, numObserversOnShard int, p2pConfig config.P2PConfig, ) map[uint32][]*TestP2PNode
CreateNodesWithTestP2PNodes returns a map with nodes per shard each using a real nodes coordinator and TestP2PNodes
func CreatePkBytes ¶ added in v1.0.102
CreatePkBytes creates 'numShards' public key-like byte slices
func CreateProcessorNodesWithNodesCoordinator ¶
func CreateProcessorNodesWithNodesCoordinator( rewardsAddrsAssignments map[uint32][]uint32, shardConsensusGroupSize int, metaConsensusGroupSize int, ) (map[uint32][]*TestProcessorNode, uint32)
CreateProcessorNodesWithNodesCoordinator creates a map of nodes with a valid nodes coordinator implementation keeping the consistency of generated keys
func CreateRandomAddress ¶
func CreateRandomAddress() []byte
CreateRandomAddress creates a random byte array with fixed size
func CreateRandomBytes ¶ added in v1.0.104
CreateRandomBytes returns a random byte slice with the given size
func CreateRatingsData ¶ added in v0.0.5
func CreateRatingsData() *rating.RatingsData
CreateRatingsData creates a mock RatingsData object
func CreateRequesterDataPool ¶
func CreateRequesterDataPool(recvTxs map[int]map[string]struct{}, mutRecvTxs *sync.Mutex, nodeIndex int, _ uint32) dataRetriever.PoolsHolder
CreateRequesterDataPool creates a datapool with a mock txPool
func CreateResolversDataPool ¶
func CreateResolversDataPool( t *testing.T, maxTxs int, senderShardID uint32, recvShardId uint32, shardCoordinator sharding.Coordinator, ) (dataRetriever.PoolsHolder, [][]byte, [][]byte)
CreateResolversDataPool creates a datapool containing a given number of transactions
func CreateSendersAndReceiversInShard ¶
func CreateSendersAndReceiversInShard( nodeInShard *TestProcessorNode, nbSenderReceiverPairs uint32, ) ([]crypto.PrivateKey, []crypto.PublicKey)
CreateSendersAndReceiversInShard creates given number of sender private key and receiver public key pairs, with account in same shard as given node
func CreateSendersWithInitialBalances ¶
func CreateSendersWithInitialBalances( nodesMap map[uint32][]*TestProcessorNode, mintValue *big.Int, ) map[uint32][]crypto.PrivateKey
CreateSendersWithInitialBalances creates a map of 1 sender per shard with an initial balance
func CreateShardChain ¶
func CreateShardChain() data.ChainHandler
CreateShardChain creates a blockchain implementation used by the shard nodes
func CreateSimpleGenesisBlock ¶
CreateSimpleGenesisBlock creates a new mock shard genesis block
func CreateSimpleGenesisBlocks ¶
func CreateSimpleGenesisBlocks(shardCoordinator sharding.Coordinator) map[uint32]data.HeaderHandler
CreateSimpleGenesisBlocks creates empty genesis blocks for all known shards, including metachain
func CreateSimpleGenesisMetaBlock ¶
CreateSimpleGenesisMetaBlock creates a new mock meta genesis block
func CreateSimpleTxProcessor ¶
func CreateSimpleTxProcessor(accnts state.AccountsAdapter) process.TransactionProcessor
CreateSimpleTxProcessor returns a transaction processor
func CreateStore ¶ added in v1.0.102
func CreateStore(numOfShards uint32) dataRetriever.StorageService
CreateStore creates a storage service for shard nodes
func CreateTrieStorageManager ¶ added in v1.0.115
CreateTrieStorageManager creates the trie storage manager for the tests
func DeployScTx ¶
func DeployScTx(nodes []*TestProcessorNode, senderIdx int, scCode string, vmType []byte, initArguments string)
DeployScTx creates and sends a SC tx
func DisplayAndStartNodes ¶
func DisplayAndStartNodes(nodes []*TestProcessorNode)
DisplayAndStartNodes prints each nodes shard ID, sk and pk, and then starts the node
func DoConsensusSigningOnBlock ¶
func DoConsensusSigningOnBlock( blockHeader data.HeaderHandler, consensusNodes []*TestProcessorNode, pubKeys []string, ) data.HeaderHandler
DoConsensusSigningOnBlock simulates a consensus aggregated signature on the provided block
func EmptyDataPools ¶
func EmptyDataPools(nodes []*TestProcessorNode, shardId uint32)
EmptyDataPools clears all the data pools
func ForkChoiceOneBlock ¶
func ForkChoiceOneBlock(nodes []*TestProcessorNode, shardId uint32)
ForkChoiceOneBlock rollbacks a block from the given shard
func GenValidatorsFromPubKeys ¶
func GenValidatorsFromPubKeys(pubKeysMap map[uint32][]string, _ uint32) map[uint32][]sharding.GenesisNodeInfoHandler
GenValidatorsFromPubKeys generates a map of validators per shard out of public keys map
func GenValidatorsFromPubKeysAndTxPubKeys ¶ added in v1.0.116
func GenValidatorsFromPubKeysAndTxPubKeys( blsPubKeysMap map[uint32][]string, txPubKeysMap map[uint32][]string, ) map[uint32][]sharding.GenesisNodeInfoHandler
GenValidatorsFromPubKeysAndTxPubKeys generates a map of validators per shard out of public keys map
func GenerateAddressJournalAccountAccountsDB ¶
func GenerateAddressJournalAccountAccountsDB() ([]byte, state.UserAccountHandler, *state.AccountsDB)
GenerateAddressJournalAccountAccountsDB returns an account, the accounts address, and the accounts database
func GenerateAndDisseminateTxs ¶
func GenerateAndDisseminateTxs( n *TestProcessorNode, senders []crypto.PrivateKey, receiversPublicKeysMap map[uint32][]crypto.PublicKey, valToTransfer *big.Int, gasPrice uint64, gasLimit uint64, chainID []byte, version uint32, )
GenerateAndDisseminateTxs generates and sends multiple txs
func GenerateIntraShardTransactions ¶
func GenerateIntraShardTransactions( nodesMap map[uint32][]*TestProcessorNode, nbTxsPerShard uint32, mintValue *big.Int, valToTransfer *big.Int, gasPrice uint64, gasLimit uint64, )
GenerateIntraShardTransactions generates intra shard transactions
func GenerateRandomSlice ¶
GenerateRandomSlice returns a random byte slice with the given size
func GenerateSkAndPkInShard ¶
func GenerateSkAndPkInShard( coordinator sharding.Coordinator, shardId uint32, ) (crypto.PrivateKey, crypto.PublicKey, crypto.KeyGenerator)
GenerateSkAndPkInShard generates and returns a private and a public key that reside in a given shard. It also returns the key generator
func GenerateTransferTx ¶
func GenerateTransferTx( nonce uint64, senderPrivateKey crypto.PrivateKey, receiverPublicKey crypto.PublicKey, valToTransfer *big.Int, gasPrice uint64, gasLimit uint64, chainID []byte, version uint32, ) *transaction.Transaction
GenerateTransferTx will generate a move balance transaction
func GetConnectableAddress ¶
GetConnectableAddress returns a non circuit, non windows default connectable address for provided messenger
func GetDefaultBootstrapComponents ¶ added in v1.2.0
func GetDefaultBootstrapComponents(shardCoordinator sharding.Coordinator) *mainFactoryMocks.BootstrapComponentsStub
GetDefaultBootstrapComponents -
func GetDefaultCoreComponents ¶ added in v1.2.0
func GetDefaultCoreComponents() *mock.CoreComponentsStub
GetDefaultCoreComponents -
func GetDefaultCryptoComponents ¶ added in v1.2.0
func GetDefaultCryptoComponents() *mock.CryptoComponentsStub
GetDefaultCryptoComponents -
func GetDefaultDataComponents ¶ added in v1.2.0
func GetDefaultDataComponents() *mock.DataComponentsStub
GetDefaultDataComponents -
func GetDefaultNetworkComponents ¶ added in v1.2.0
func GetDefaultNetworkComponents() *mock.NetworkComponentsStub
GetDefaultNetworkComponents -
func GetDefaultProcessComponents ¶ added in v1.2.0
func GetDefaultProcessComponents() *mock.ProcessComponentsStub
GetDefaultProcessComponents -
func GetDefaultStateComponents ¶ added in v1.2.0
func GetDefaultStateComponents() *testscommon.StateComponentsMock
GetDefaultStateComponents -
func GetDefaultStatusComponents ¶ added in v1.2.0
func GetDefaultStatusComponents() *mock.StatusComponentsStub
GetDefaultStatusComponents -
func GetMiniBlocksHashesFromShardIds ¶
GetMiniBlocksHashesFromShardIds returns miniblock hashes from body
func GetTokenIdentifier ¶ added in v1.1.39
func GetTokenIdentifier(nodes []*TestProcessorNode, ticker []byte) []byte
GetTokenIdentifier returns the token identifier from the metachain for the given ticker
func IncrementAndPrintRound ¶
IncrementAndPrintRound increments the given variable, and prints the message for the beginning of the round
func IncrementNonces ¶
func IncrementNonces(nonces []*uint64)
IncrementNonces increments all the nonces
func IsIntInSlice ¶
IsIntInSlice returns true if idx is found on any position in the provided slice
func MakeDisplayTable ¶
func MakeDisplayTable(nodes []*TestProcessorNode) string
MakeDisplayTable will output a string containing counters for received transactions, headers, miniblocks and meta headers for all provided test nodes
func MakeDisplayTableForP2PNodes ¶
func MakeDisplayTableForP2PNodes(nodes map[uint32][]*TestP2PNode) string
MakeDisplayTableForP2PNodes will output a string containing counters for received messages for all provided test nodes
func MintAddress ¶
func MintAddress(accnts state.AccountsAdapter, addressBytes []byte, value *big.Int)
MintAddress will create an account (if it does not exists), update the balance with required value, save the account and commit the trie.
func MintAllNodes ¶
func MintAllNodes(nodes []*TestProcessorNode, value *big.Int)
MintAllNodes will take each shard node (n) and will mint all nodes that have their pk managed by the iterating node n
func MintAllPlayers ¶
func MintAllPlayers(nodes []*TestProcessorNode, players []*TestWalletAccount, value *big.Int)
MintAllPlayers mints addresses for all players
func NewOneNodeNetwork ¶ added in v1.0.147
func NewOneNodeNetwork() *oneNodeNetwork
NewOneNodeNetwork creates a one-node network, useful for some integration tests
func PlayerSendsTransaction ¶ added in v1.0.133
func PlayerSendsTransaction( nodes []*TestProcessorNode, player *TestWalletAccount, scAddress []byte, value *big.Int, txData string, gasLimit uint64, )
PlayerSendsTransaction creates and sends a transaction to the SC
func PrintShardAccount ¶
func PrintShardAccount(accnt state.UserAccountHandler, tag string)
PrintShardAccount outputs on console a shard account data contained
func ProposeAndSyncOneBlock ¶
func ProposeAndSyncOneBlock( t *testing.T, nodes []*TestProcessorNode, idxProposers []int, round uint64, nonce uint64, ) (uint64, uint64)
ProposeAndSyncOneBlock proposes a block, syncs the block and then increments the round
func ProposeBlock ¶
func ProposeBlock(nodes []*TestProcessorNode, idxProposers []int, round uint64, nonce uint64)
ProposeBlock proposes a block for every shard
func ProposeBlockSignalsEmptyBlock ¶
func ProposeBlockSignalsEmptyBlock( node *TestProcessorNode, round uint64, nonce uint64, ) (data.HeaderHandler, data.BodyHandler, bool)
ProposeBlockSignalsEmptyBlock proposes and broadcasts a block
func ProposeBlocks ¶
func ProposeBlocks( nodes []*TestProcessorNode, round *uint64, idxProposers []int, nonces []*uint64, numOfRounds int, )
ProposeBlocks proposes blocks for a given number of rounds
func PubKeysMapFromKeysMap ¶
func PubKeysMapFromKeysMap(keyPairMap map[uint32][]*TestKeyPair) map[uint32][]string
PubKeysMapFromKeysMap returns a map of public keys per shard from the key pairs per shard map.
func ResetHighestProbableNonce ¶
func ResetHighestProbableNonce(nodes []*TestProcessorNode, shardId uint32, targetNonce uint64)
ResetHighestProbableNonce resets the highest probable nonce
func SaveDelegationContractsList ¶ added in v1.1.56
func SaveDelegationContractsList(nodes []*TestProcessorNode)
SaveDelegationContractsList will save a mock configuration for the delegation contracts list
func SaveDelegationManagerConfig ¶ added in v1.1.56
func SaveDelegationManagerConfig(nodes []*TestProcessorNode)
SaveDelegationManagerConfig will save a mock configuration for the delegation manager SC
func ScCallTxWithParams ¶
func ScCallTxWithParams( senderNode *TestProcessorNode, sk crypto.PrivateKey, nonce uint64, data string, value *big.Int, gasLimit uint64, gasPrice uint64, )
ScCallTxWithParams creates and sends a SC tx call or deploy with all major parameters provided
func SetEconomicsParameters ¶
func SetEconomicsParameters(nodes []*TestProcessorNode, maxGasLimitPerBlock uint64, minGasPrice uint64, minGasLimit uint64)
SetEconomicsParameters will set maxGasLimitPerBlock, minGasPrice and minGasLimits to provided nodes
func StartSyncingBlocks ¶
func StartSyncingBlocks(nodes []*TestProcessorNode)
StartSyncingBlocks starts the syncing process of all the nodes
func SyncAllShardsWithRoundBlock ¶
func SyncAllShardsWithRoundBlock( t *testing.T, nodesMap map[uint32][]*TestProcessorNode, indexProposers map[uint32]int, round uint64, )
SyncAllShardsWithRoundBlock enforces all nodes in each shard synchronizing the block for the given round
func SyncBlock ¶
func SyncBlock( t *testing.T, nodes []*TestProcessorNode, idxProposers []int, round uint64, )
SyncBlock synchronizes the proposed block in all the other shard nodes
func TestPrivateKeyHasBalance ¶
func TestPrivateKeyHasBalance(t *testing.T, n *TestProcessorNode, sk crypto.PrivateKey, expectedBalance *big.Int)
TestPrivateKeyHasBalance checks if the private key has the expected balance
func TestPublicKeyHasBalance ¶
func TestPublicKeyHasBalance(t *testing.T, n *TestProcessorNode, pk crypto.PublicKey, expectedBalance *big.Int)
TestPublicKeyHasBalance checks if the account corresponding to the given public key has the expected balance
func Uint32InSlice ¶
Uint32InSlice checks if a uint32 value is in a slice
func UpdateRound ¶
func UpdateRound(nodes []*TestProcessorNode, round uint64)
UpdateRound updates the round for every node
func WaitForBootstrapAndShowConnected ¶
func WaitForBootstrapAndShowConnected(peers []p2p.Messenger, durationBootstrapingTime time.Duration)
WaitForBootstrapAndShowConnected will delay a given duration in order to wait for bootstraping and print the number of peers that each node is connected to
func WaitOperationToBeDone ¶
func WaitOperationToBeDone(t *testing.T, nodes []*TestProcessorNode, nrOfRounds int, nonce uint64, round uint64, idxProposers []int) (uint64, uint64)
WaitOperationToBeDone -
func WhiteListTxs ¶ added in v1.0.133
func WhiteListTxs(nodes []*TestProcessorNode, txs []*transaction.Transaction)
WhiteListTxs -
Types ¶
type Address ¶ added in v1.2.0
type Address = []byte
Address is a slice of bytes used to identify an account
type ArgIndexHashedNodesCoordinatorFactory ¶
type ArgIndexHashedNodesCoordinatorFactory struct {
// contains filtered or unexported fields
}
ArgIndexHashedNodesCoordinatorFactory -
type Connectable ¶ added in v1.1.47
type Connectable interface { ConnectTo(connectable Connectable) error GetConnectableAddress() string IsInterfaceNil() bool }
Connectable defines the operations for a struct to become connectable by other struct In other words, all instances that implement this interface are able to connect with each other
type CountInterceptor ¶
type CountInterceptor struct {
// contains filtered or unexported fields
}
CountInterceptor represents an interceptors that counts received messages on topics
func NewCountInterceptor ¶
func NewCountInterceptor() *CountInterceptor
NewCountInterceptor creates a new CountInterceptor instance
func (*CountInterceptor) IsInterfaceNil ¶
func (ci *CountInterceptor) IsInterfaceNil() bool
IsInterfaceNil returns true if there is no value under the interface
func (*CountInterceptor) MessageCount ¶
func (ci *CountInterceptor) MessageCount(topic string) int
MessageCount returns the number of messages received on the provided topic
func (*CountInterceptor) ProcessReceivedMessage ¶
func (ci *CountInterceptor) ProcessReceivedMessage(message p2p.MessageP2P, _ core.PeerID) error
ProcessReceivedMessage is called each time a new message is received
func (*CountInterceptor) Reset ¶
func (ci *CountInterceptor) Reset()
Reset resets the counters values
type CryptoParams ¶
type CryptoParams struct { KeyGen crypto.KeyGenerator Keys map[uint32][]*TestKeyPair SingleSigner crypto.SingleSigner TxKeyGen crypto.KeyGenerator TxKeys map[uint32][]*TestKeyPair }
CryptoParams holds crypto parametres
func CreateCryptoParams ¶
func CreateCryptoParams(nodesPerShard int, nbMetaNodes int, nbShards uint32) *CryptoParams
CreateCryptoParams generates the crypto parameters (key pairs, key generator and suite) for multiple nodes
type Facade ¶ added in v1.1.27
type Facade interface { GetBalance(address string) (*big.Int, error) GetUsername(address string) (string, error) GetValueForKey(address string, key string) (string, error) GetAccount(address string) (dataApi.AccountResponse, error) GetESDTData(address string, key string, nonce uint64) (*esdt.ESDigitalToken, error) GetNFTTokenIDsRegisteredByAddress(address string) ([]string, error) GetESDTsWithRole(address string, role string) ([]string, error) GetAllESDTTokens(address string) (map[string]*esdt.ESDigitalToken, error) GetBlockByHash(hash string, withTxs bool) (*dataApi.Block, error) GetBlockByNonce(nonce uint64, withTxs bool) (*dataApi.Block, error) Trigger(epoch uint32, withEarlyEndOfEpoch bool) error IsSelfTrigger() bool GetTotalStakedValue() (*dataApi.StakeValues, error) GetHeartbeats() ([]data.PubKeyHeartbeat, error) StatusMetrics() external.StatusMetricsHandler GetQueryHandler(name string) (debug.QueryHandler, error) GetPeerInfo(pid string) ([]core.QueryP2PPeerInfo, error) GetNumCheckpointsFromAccountState() uint32 GetNumCheckpointsFromPeerState() uint32 CreateTransaction(nonce uint64, value string, receiver string, receiverUsername []byte, sender string, senderUsername []byte, gasPrice uint64, gasLimit uint64, data []byte, signatureHex string, chainID string, version uint32, options uint32) (*transaction.Transaction, []byte, error) ValidateTransaction(tx *transaction.Transaction) error ValidateTransactionForSimulation(tx *transaction.Transaction, bypassSignature bool) error SendBulkTransactions([]*transaction.Transaction) (uint64, error) SimulateTransactionExecution(tx *transaction.Transaction) (*txSimData.SimulationResults, error) GetTransaction(hash string, withResults bool) (*transaction.ApiTransactionResult, error) ComputeTransactionGasLimit(tx *transaction.Transaction) (*transaction.CostResponse, error) EncodeAddressPubkey(pk []byte) (string, error) GetThrottlerForEndpoint(endpoint string) (core.Throttler, bool) ValidatorStatisticsApi() (map[string]*state.ValidatorApiResponse, error) ExecuteSCQuery(*process.SCQuery) (*vm.VMOutputApi, error) DecodeAddressPubkey(pk string) ([]byte, error) IsInterfaceNil() bool }
Facade is the node facade used to decouple the node implementation with the web server. Used in integration tests
type GasScheduleMap ¶ added in v1.2.0
GasScheduleMap is a map containing the predefined gas costs
type IndexHashedNodesCoordinatorFactory ¶
type IndexHashedNodesCoordinatorFactory struct { }
IndexHashedNodesCoordinatorFactory -
func (*IndexHashedNodesCoordinatorFactory) CreateNodesCoordinator ¶
func (tpn *IndexHashedNodesCoordinatorFactory) CreateNodesCoordinator(arg ArgIndexHashedNodesCoordinatorFactory) sharding.NodesCoordinator
CreateNodesCoordinator -
type IndexHashedNodesCoordinatorWithRaterFactory ¶
type IndexHashedNodesCoordinatorWithRaterFactory struct {
sharding.PeerAccountListAndRatingHandler
}
IndexHashedNodesCoordinatorWithRaterFactory -
func (*IndexHashedNodesCoordinatorWithRaterFactory) CreateNodesCoordinator ¶
func (ihncrf *IndexHashedNodesCoordinatorWithRaterFactory) CreateNodesCoordinator( arg ArgIndexHashedNodesCoordinatorFactory, ) sharding.NodesCoordinator
CreateNodesCoordinator is used for creating a nodes coordinator in the integration tests based on the provided parameters
type NetworkShardingUpdater ¶
type NetworkShardingUpdater interface { GetPeerInfo(pid core.PeerID) core.P2PPeerInfo UpdatePeerIDInfo(pid core.PeerID, pk []byte, shardID uint32) UpdatePeerIdSubType(pid core.PeerID, peerSubType core.P2PPeerSubType) IsInterfaceNil() bool }
NetworkShardingUpdater defines the updating methods used by the network sharding component
type NodeSlice ¶ added in v1.2.0
type NodeSlice = []*TestProcessorNode
NodeSlice is a slice of TestProcessorNode instances
type NodesByShardMap ¶ added in v1.2.0
type NodesByShardMap = map[ShardIdentifier]NodeSlice
NodesByShardMap is a map that groups TestProcessorNodes by their shard ID
type NodesCoordinatorFactory ¶
type NodesCoordinatorFactory interface {
CreateNodesCoordinator(arg ArgIndexHashedNodesCoordinatorFactory) sharding.NodesCoordinator
}
NodesCoordinatorFactory is used for creating a nodesCoordinator in the integration tests
type NodesWithRater ¶
type NodesWithRater struct { sharding.NodesCoordinator // contains filtered or unexported fields }
NodesWithRater -
func (*NodesWithRater) IsInterfaceNil ¶
func (nwr *NodesWithRater) IsInterfaceNil() bool
IsInterfaceNil -
type ShardIdentifier ¶ added in v1.2.0
type ShardIdentifier = uint32
ShardIdentifier is the numeric index of a shard
type TestBootstrapper ¶
type TestBootstrapper interface { process.Bootstrapper RollBack(revertUsingForkNonce bool) error SetProbableHighestNonce(nonce uint64) }
TestBootstrapper extends the Bootstrapper interface with some functions intended to be used only in tests as it simplifies the reproduction of edge cases
type TestBuiltinFunction ¶ added in v1.1.1
type TestBuiltinFunction struct {
Function func(acntSnd, acntDst vmcommon.UserAccountHandler, vmInput *vmcommon.ContractCallInput) (*vmcommon.VMOutput, error)
}
TestBuiltinFunction wraps a builtin function defined ad-hoc, for testing
func (*TestBuiltinFunction) IsActive ¶ added in v1.2.10
func (bf *TestBuiltinFunction) IsActive() bool
IsActive -
func (*TestBuiltinFunction) IsInterfaceNil ¶ added in v1.1.1
func (bf *TestBuiltinFunction) IsInterfaceNil() bool
IsInterfaceNil --
func (*TestBuiltinFunction) ProcessBuiltinFunction ¶ added in v1.1.1
func (bf *TestBuiltinFunction) ProcessBuiltinFunction(acntSnd, acntDst vmcommon.UserAccountHandler, vmInput *vmcommon.ContractCallInput) (*vmcommon.VMOutput, error)
ProcessBuiltinFunction is a method implementation required by the BuiltinFunction interface
func (*TestBuiltinFunction) SetNewGasConfig ¶ added in v1.1.12
func (bf *TestBuiltinFunction) SetNewGasConfig(_ *vmcommon.GasCost)
SetNewGasConfig -
type TestEpochStartTrigger ¶
type TestEpochStartTrigger interface { epochStart.TriggerHandler GetRoundsPerEpoch() uint64 SetTrigger(triggerHandler epochStart.TriggerHandler) SetRoundsPerEpoch(roundsPerEpoch uint64) SetMinRoundsBetweenEpochs(minRoundsPerEpoch uint64) SetEpoch(epoch uint32) }
TestEpochStartTrigger extends the epochStart trigger interface with some functions intended to by used only in tests as it simplifies the reproduction of test scenarios
type TestKeyPair ¶
type TestKeyPair struct { Sk crypto.PrivateKey Pk crypto.PublicKey }
TestKeyPair holds a pair of private/public Keys
type TestNetwork ¶ added in v1.2.0
type TestNetwork struct { NumShards int NodesPerShard int NodesInMetashard int Nodes NodeSlice NodesSharded NodesByShardMap Wallets []*TestWalletAccount DeploymentAddress Address Proposers []int Round uint64 Nonce uint64 T *testing.T DefaultNode *TestProcessorNode DefaultGasPrice uint64 MinGasLimit uint64 MaxGasLimit uint64 DefaultVM []byte DefaultGasSchedule GasScheduleMap BypassErrorsOnce bool }
TestNetwork wraps a set of TestProcessorNodes along with a set of test Wallets, instantiates them, controls them and provides operations with them; designed to be used in integration tests. TODO combine TestNetwork with the preexisting TestContext and OneNodeNetwork into a single struct containing the functionality of all three
func NewTestNetwork ¶ added in v1.2.0
func NewTestNetwork(t *testing.T) *TestNetwork
NewTestNetwork creates an unsized TestNetwork; topology must be configured afterwards, before starting.
func NewTestNetworkSized ¶ added in v1.2.0
func NewTestNetworkSized( t *testing.T, numShards int, nodesPerShard int, nodesInMetashard int, ) *TestNetwork
NewTestNetworkSized creates a new TestNetwork containing topology information; can be started immediately.
func (*TestNetwork) Close ¶ added in v1.2.0
func (net *TestNetwork) Close()
Close shuts down the test network.
func (*TestNetwork) ComputeGasLimit ¶ added in v1.2.0
func (net *TestNetwork) ComputeGasLimit(tx *transaction.Transaction) uint64
ComputeGasLimit calculates the base gas limit of the provided transaction, smart contract execution or built-in function calls notwithstanding.
func (*TestNetwork) ComputeTxFee ¶ added in v1.2.0
func (net *TestNetwork) ComputeTxFee(tx *transaction.Transaction) *big.Int
ComputeTxFee calculates the cost of the provided transaction, smart contract execution or built-in function calls notwithstanding.
func (*TestNetwork) ComputeTxFeeUint64 ¶ added in v1.2.0
func (net *TestNetwork) ComputeTxFeeUint64(tx *transaction.Transaction) uint64
ComputeTxFeeUint64 calculates the cost of the provided transaction, smart contract execution or built-in function calls notwithstanding.
func (*TestNetwork) CreateSignedTx ¶ added in v1.2.0
func (net *TestNetwork) CreateSignedTx( sender *TestWalletAccount, recvAddress Address, value *big.Int, txData []byte, ) *transaction.Transaction
CreateSignedTx creates a new transaction from provided information and signs it with the `sender` wallet; if modified, a transaction must be sent to the network using SignAndSendTx instead of SendTx.
func (*TestNetwork) CreateSignedTxUint64 ¶ added in v1.2.0
func (net *TestNetwork) CreateSignedTxUint64( sender *TestWalletAccount, recvAddress Address, value uint64, txData []byte, ) *transaction.Transaction
CreateSignedTxUint64 creates a new transaction from provided information and signs it with the `sender` wallet; if modified, a transaction must be sent to the network using SignAndSendTx instead of SendTx.
func (*TestNetwork) CreateTx ¶ added in v1.2.0
func (net *TestNetwork) CreateTx( sender *TestWalletAccount, recvAddress Address, value *big.Int, txData []byte, ) *transaction.Transaction
CreateTx creates a new transaction from the provided information; must be signed before sending; the nonce of the `sender` wallet is incremented.
func (*TestNetwork) CreateTxUint64 ¶ added in v1.2.0
func (net *TestNetwork) CreateTxUint64( sender *TestWalletAccount, recvAddress Address, value uint64, txData []byte, ) *transaction.Transaction
CreateTxUint64 creates a new transaction from the provided information; must be signed before sending; the nonce of the `sender` wallet is incremented.
func (*TestNetwork) CreateWallets ¶ added in v1.2.0
func (net *TestNetwork) CreateWallets(count int)
CreateWallets initializes the internal test wallets
func (*TestNetwork) DeployNonpayableSC ¶ added in v1.2.14
func (net *TestNetwork) DeployNonpayableSC(owner *TestWalletAccount, fileName string) []byte
DeployNonpayableSC deploys a non-payable contract with the bytecode specified by fileName.
func (*TestNetwork) DeployPayableSC ¶ added in v1.2.14
func (net *TestNetwork) DeployPayableSC(owner *TestWalletAccount, fileName string) []byte
DeployPayableSC deploys a payable contract with the bytecode specified by fileName.
func (*TestNetwork) DeploySC ¶ added in v1.2.14
func (net *TestNetwork) DeploySC(owner *TestWalletAccount, fileName string, payable bool) []byte
DeploySC deploys a contract with the bytecode specified by fileName.
func (*TestNetwork) GetAccountHandler ¶ added in v1.2.0
func (net *TestNetwork) GetAccountHandler(address Address) state.UserAccountHandler
GetAccountHandler retrieves the `state.UserAccountHandler` instance for the specified address by querying a node belonging to the shard of the address.
func (*TestNetwork) Increment ¶ added in v1.2.0
func (net *TestNetwork) Increment()
Increment only increments the Round and the Nonce, without triggering the processing of a block; use Step to process a block as well.
func (*TestNetwork) MintNodeAccounts ¶ added in v1.2.0
func (net *TestNetwork) MintNodeAccounts(value *big.Int)
MintNodeAccounts adds the specified value to the accounts owned by the nodes of the TestNetwork.
func (*TestNetwork) MintNodeAccountsUint64 ¶ added in v1.2.0
func (net *TestNetwork) MintNodeAccountsUint64(value uint64)
MintNodeAccountsUint64 adds the specified value to the accounts owned by the nodes of the TestNetwork.
func (*TestNetwork) MintWallets ¶ added in v1.2.0
func (net *TestNetwork) MintWallets(value *big.Int)
MintWallets adds the specified value to the test wallets.
func (*TestNetwork) MintWalletsUint64 ¶ added in v1.2.0
func (net *TestNetwork) MintWalletsUint64(value uint64)
MintWalletsUint64 adds the specified value to the test wallets.
func (*TestNetwork) NewAddress ¶ added in v1.2.0
func (net *TestNetwork) NewAddress(creator *TestWalletAccount) Address
NewAddress creates a new child address of the provided wallet; used to compute the address of newly deployed smart contracts.
func (*TestNetwork) RequireWalletNoncesInSyncWithState ¶ added in v1.2.0
func (net *TestNetwork) RequireWalletNoncesInSyncWithState()
RequireWalletNoncesInSyncWithState asserts that the nonces of all wallets managed by the test network are in sync with the actual nonces in the blockchain state.
func (*TestNetwork) SendTx ¶ added in v1.2.0
func (net *TestNetwork) SendTx(tx *transaction.Transaction) string
SendTx submits the provided transaction to the test network; transaction must be already signed. Returns the transaction hash.
func (*TestNetwork) SendTxFromNode ¶ added in v1.2.0
func (net *TestNetwork) SendTxFromNode(tx *transaction.Transaction, node *TestProcessorNode) string
SendTxFromNode submits the provided transaction via the specified node; transaction must be already signed. Returns the transaction hash.
func (*TestNetwork) ShardOfAddress ¶ added in v1.2.0
func (net *TestNetwork) ShardOfAddress(address Address) ShardIdentifier
ShardOfAddress returns the shard ID of the specified address.
func (*TestNetwork) SignAndSendTx ¶ added in v1.2.0
func (net *TestNetwork) SignAndSendTx(signer *TestWalletAccount, tx *transaction.Transaction) string
SignAndSendTx signs then submits the provided transaction to the test network, using the provided signer account; use it to send transactions that have been modified after being created. Returns the transaction hash.
func (*TestNetwork) SignTx ¶ added in v1.2.0
func (net *TestNetwork) SignTx(signer *TestWalletAccount, tx *transaction.Transaction)
SignTx signs a transaction with the provided `signer` wallet.
func (*TestNetwork) Start ¶ added in v1.2.0
func (net *TestNetwork) Start()
Start initializes the test network and starts its nodes
func (*TestNetwork) Step ¶ added in v1.2.0
func (net *TestNetwork) Step()
Step increments the Round and Nonce and triggers the production and synchronization of a single block.
func (*TestNetwork) Steps ¶ added in v1.2.0
func (net *TestNetwork) Steps(steps int)
Steps repeatedly increments the Round and Nonce and processes blocks.
type TestP2PNode ¶
type TestP2PNode struct { Messenger p2p.Messenger NodesCoordinator sharding.NodesCoordinator ShardCoordinator sharding.Coordinator NetworkShardingUpdater NetworkShardingUpdater Node *node.Node NodeKeys TestKeyPair SingleSigner crypto.SingleSigner KeyGen crypto.KeyGenerator Storage dataRetriever.StorageService Interceptor *CountInterceptor }
TestP2PNode represents a container type of class used in integration tests with all its fields exported, used mainly on P2P tests
func NewTestP2PNode ¶
func NewTestP2PNode( maxShards uint32, nodeShardId uint32, p2pConfig config.P2PConfig, coordinator sharding.NodesCoordinator, keys TestKeyPair, ) *TestP2PNode
NewTestP2PNode returns a new NewTestP2PNode instance
func (*TestP2PNode) CountCrossShardMessages ¶
func (tP2pNode *TestP2PNode) CountCrossShardMessages() int
CountCrossShardMessages returns the messages count on the cross-shard topics
func (*TestP2PNode) CountGlobalMessages ¶
func (tP2pNode *TestP2PNode) CountGlobalMessages() int
CountGlobalMessages returns the messages count on the global topic
func (*TestP2PNode) CountIntraShardMessages ¶
func (tP2pNode *TestP2PNode) CountIntraShardMessages() int
CountIntraShardMessages returns the messages count on the intra-shard topic
func (*TestP2PNode) CreateTestInterceptors ¶
func (tP2pNode *TestP2PNode) CreateTestInterceptors()
CreateTestInterceptors creates test interceptors that count the number of received messages
func (*TestP2PNode) RegisterTopicValidator ¶
func (tP2pNode *TestP2PNode) RegisterTopicValidator(topic string, processor p2p.MessageProcessor)
RegisterTopicValidator registers a message processor instance on the provided topic
type TestProcessorNode ¶
type TestProcessorNode struct { ShardCoordinator sharding.Coordinator NodesCoordinator sharding.NodesCoordinator NodesSetup sharding.GenesisNodesSetupHandler Messenger p2p.Messenger OwnAccount *TestWalletAccount NodeKeys *TestKeyPair ExportFolder string DataPool dataRetriever.PoolsHolder Storage dataRetriever.StorageService PeerState state.AccountsAdapter AccntState state.AccountsAdapter TrieStorageManagers map[string]common.StorageManager TrieContainer state.TriesHolder BlockChain data.ChainHandler GenesisBlocks map[uint32]data.HeaderHandler EconomicsData *economics.TestEconomicsData RatingsData *rating.RatingsData BlockBlackListHandler process.TimeCacher HeaderValidator process.HeaderConstructionValidator BlockTracker process.BlockTracker InterceptorsContainer process.InterceptorsContainer ResolversContainer dataRetriever.ResolversContainer ResolverFinder dataRetriever.ResolversFinder RequestHandler process.RequestHandler ArwenChangeLocker process.Locker InterimProcContainer process.IntermediateProcessorContainer TxProcessor process.TransactionProcessor TxCoordinator process.TransactionCoordinator ScrForwarder process.IntermediateTransactionHandler BlockchainHook *hooks.BlockChainHookImpl VMContainer process.VirtualMachinesContainer ArgsParser process.ArgumentsParser ScProcessor *smartContract.TestScProcessor RewardsProcessor process.RewardTransactionProcessor PreProcessorsContainer process.PreProcessorsContainer GasHandler process.GasHandler FeeAccumulator process.TransactionFeeHandler SmartContractParser genesis.InitialSmartContractParser SystemSCFactory vm.SystemSCContainerFactory ForkDetector process.ForkDetector BlockProcessor process.BlockProcessor BroadcastMessenger consensus.BroadcastMessenger MiniblocksProvider process.MiniBlockProvider Bootstrapper TestBootstrapper RoundHandler *mock.RoundHandlerMock BootstrapStorer *mock.BoostrapStorerMock StorageBootstrapper *mock.StorageBootstrapperMock RequestedItemsHandler dataRetriever.RequestedItemsHandler WhiteListHandler process.WhiteListHandler WhiteListerVerifiedTxs process.WhiteListHandler NetworkShardingCollector consensus.NetworkShardingCollector EpochStartTrigger TestEpochStartTrigger EpochStartNotifier notifier.EpochStartNotifier MultiSigner crypto.MultiSigner HeaderSigVerifier process.InterceptedHeaderSigVerifier HeaderIntegrityVerifier process.HeaderIntegrityVerifier ValidatorStatisticsProcessor process.ValidatorStatisticsProcessor Rater sharding.PeerAccountListAndRatingHandler EpochStartSystemSCProcessor process.EpochStartSystemSCProcessor // Node is used to call the functionality already implemented in it Node *node.Node SCQueryService external.SCQueryService CounterHdrRecv int32 CounterMbRecv int32 CounterTxRecv int32 CounterMetaRcv int32 ReceivedTransactions sync.Map InitialNodes []*sharding.InitialNode ChainID []byte MinTransactionVersion uint32 ExportHandler update.ExportHandler WaitTime time.Duration HistoryRepository dblookupext.HistoryRepository EpochNotifier process.EpochNotifier EnableEpochs config.EnableEpochs UseValidVmBlsSigVerifier bool TransactionLogProcessor process.TransactionLogProcessor }
TestProcessorNode represents a container type of class used in integration tests with all its fields exported
func CreateNode ¶ added in v1.0.104
func CreateNode( nodesPerShard int, nbMetaNodes int, shardConsensusGroupSize int, metaConsensusGroupSize int, shardId uint32, nbShards int, validatorsMap map[uint32][]sharding.Validator, waitingMap map[uint32][]sharding.Validator, keyIndex int, cp *CryptoParams, cache sharding.Cacher, coordinatorFactory NodesCoordinatorFactory, nodesSetup sharding.GenesisNodesSetupHandler, ratingsData *rating.RatingsData, ) *TestProcessorNode
CreateNode -
func CreateNodeWithBLSAndTxKeys ¶ added in v1.0.116
func CreateNodeWithBLSAndTxKeys( nodesPerShard int, nbMetaNodes int, shardConsensusGroupSize int, metaConsensusGroupSize int, shardId uint32, nbShards int, validatorsMap map[uint32][]sharding.Validator, waitingMap map[uint32][]sharding.Validator, keyIndex int, cp *CryptoParams, cache sharding.Cacher, coordinatorFactory NodesCoordinatorFactory, nodesSetup sharding.GenesisNodesSetupHandler, ratingsData *rating.RatingsData, ) *TestProcessorNode
CreateNodeWithBLSAndTxKeys -
func CreateNodes ¶
func CreateNodes( numOfShards int, nodesPerShard int, numMetaChainNodes int, ) []*TestProcessorNode
CreateNodes creates multiple nodes in different shards
func CreateNodesWithBLSSigVerifier ¶ added in v1.1.3
func CreateNodesWithBLSSigVerifier( numOfShards int, nodesPerShard int, numMetaChainNodes int, ) []*TestProcessorNode
CreateNodesWithBLSSigVerifier creates multiple nodes in different shards
func CreateNodesWithCustomStateCheckpointModulus ¶
func CreateNodesWithCustomStateCheckpointModulus( numOfShards int, nodesPerShard int, numMetaChainNodes int, stateCheckpointModulus uint, ) []*TestProcessorNode
CreateNodesWithCustomStateCheckpointModulus creates multiple nodes in different shards with custom stateCheckpointModulus
func CreateNodesWithEnableEpochs ¶ added in v1.2.10
func CreateNodesWithEnableEpochs( numOfShards int, nodesPerShard int, numMetaChainNodes int, epochConfig config.EnableEpochs, ) []*TestProcessorNode
CreateNodesWithEnableEpochs creates multiple nodes with custom epoch config
func NewTestProcessorNode ¶
func NewTestProcessorNode( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ) *TestProcessorNode
NewTestProcessorNode returns a new TestProcessorNode instance with a libp2p messenger
func NewTestProcessorNodeWithBLSSigVerifier ¶ added in v1.1.3
func NewTestProcessorNodeWithBLSSigVerifier( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ) *TestProcessorNode
NewTestProcessorNodeWithBLSSigVerifier returns a new TestProcessorNode instance with a libp2p messenger with a real BLS sig verifier used in system smart contracts
func NewTestProcessorNodeWithCustomDataPool ¶
func NewTestProcessorNodeWithCustomDataPool(maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, dPool dataRetriever.PoolsHolder) *TestProcessorNode
NewTestProcessorNodeWithCustomDataPool returns a new TestProcessorNode instance with the given data pool
func NewTestProcessorNodeWithCustomNodesCoordinator ¶
func NewTestProcessorNodeWithCustomNodesCoordinator( maxShards uint32, nodeShardId uint32, epochStartNotifier notifier.EpochStartNotifier, nodesCoordinator sharding.NodesCoordinator, ratingsData *rating.RatingsData, cp *CryptoParams, keyIndex int, ownAccount *TestWalletAccount, headerSigVerifier process.InterceptedHeaderSigVerifier, headerIntegrityVerifier process.HeaderIntegrityVerifier, nodeSetup sharding.GenesisNodesSetupHandler, ) *TestProcessorNode
NewTestProcessorNodeWithCustomNodesCoordinator returns a new TestProcessorNode instance with custom NodesCoordinator
func NewTestProcessorNodeWithEnableEpochs ¶ added in v1.2.10
func NewTestProcessorNodeWithEnableEpochs( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, enableEpochs config.EnableEpochs, ) *TestProcessorNode
NewTestProcessorNodeWithEnableEpochs returns a TestProcessorNode instance custom enable epochs
func NewTestProcessorNodeWithFullGenesis ¶ added in v1.0.133
func NewTestProcessorNodeWithFullGenesis( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, accountParser genesis.AccountsParser, smartContractParser genesis.InitialSmartContractParser, heartbeatPk string, ) *TestProcessorNode
NewTestProcessorNodeWithFullGenesis returns a new TestProcessorNode instance with a libp2p messenger and a full genesis deploy
func NewTestProcessorNodeWithStateCheckpointModulus ¶
func NewTestProcessorNodeWithStateCheckpointModulus( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, stateCheckpointModulus uint, ) *TestProcessorNode
NewTestProcessorNodeWithStateCheckpointModulus creates a new testNodeProcessor with custom state checkpoint modulus
func NewTestProcessorNodeWithStorageTrieAndGasModel ¶ added in v1.1.18
func NewTestProcessorNodeWithStorageTrieAndGasModel( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, trieStore storage.Storer, gasMap map[string]map[string]uint64, ) *TestProcessorNode
NewTestProcessorNodeWithStorageTrieAndGasModel returns a new TestProcessorNode instance with a storage-based trie and gas model
func NewTestSyncNode ¶
func NewTestSyncNode( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ) *TestProcessorNode
NewTestSyncNode returns a new TestProcessorNode instance with sync capabilities
func ProposeBlockWithConsensusSignature ¶
func ProposeBlockWithConsensusSignature( shardId uint32, nodesMap map[uint32][]*TestProcessorNode, round uint64, nonce uint64, randomness []byte, epoch uint32, ) (data.BodyHandler, data.HeaderHandler, [][]byte, []*TestProcessorNode)
ProposeBlockWithConsensusSignature proposes
func SetupSyncNodesOneShardAndMeta ¶
func SetupSyncNodesOneShardAndMeta( numNodesPerShard int, numNodesMeta int, ) ([]*TestProcessorNode, []int)
SetupSyncNodesOneShardAndMeta creates nodes with sync capabilities divided into one shard and a metachain
func (*TestProcessorNode) BroadcastBlock ¶
func (tpn *TestProcessorNode) BroadcastBlock(body data.BodyHandler, header data.HeaderHandler)
BroadcastBlock broadcasts the block and body to the connected peers
func (*TestProcessorNode) CommitBlock ¶
func (tpn *TestProcessorNode) CommitBlock(body data.BodyHandler, header data.HeaderHandler)
CommitBlock commits the block and body
func (*TestProcessorNode) ConnectTo ¶ added in v1.1.47
func (tpn *TestProcessorNode) ConnectTo(connectable Connectable) error
ConnectTo will try to initiate a connection to the provided parameter
func (*TestProcessorNode) GetBlockBody ¶
GetBlockBody returns the body for provided header parameter
func (*TestProcessorNode) GetConnectableAddress ¶ added in v1.1.47
func (tpn *TestProcessorNode) GetConnectableAddress() string
GetConnectableAddress returns a non circuit, non windows default connectable p2p address
func (*TestProcessorNode) GetMetaBlockBody ¶
func (tpn *TestProcessorNode) GetMetaBlockBody(header *dataBlock.MetaBlock) (*dataBlock.Body, error)
GetMetaBlockBody returns the body for provided header parameter
func (*TestProcessorNode) GetMetaHeader ¶
func (tpn *TestProcessorNode) GetMetaHeader(nonce uint64) (*dataBlock.MetaBlock, error)
GetMetaHeader returns the first *dataBlock.MetaBlock stored in datapools having the nonce provided as parameter
func (*TestProcessorNode) GetShardHeader ¶
func (tpn *TestProcessorNode) GetShardHeader(nonce uint64) (*dataBlock.Header, error)
GetShardHeader returns the first *dataBlock.Header stored in datapools having the nonce provided as parameter
func (*TestProcessorNode) InitDelegationManager ¶ added in v1.1.15
func (tpn *TestProcessorNode) InitDelegationManager()
InitDelegationManager will initialize the delegation manager whenever required
func (*TestProcessorNode) InitializeProcessors ¶ added in v1.0.138
func (tpn *TestProcessorNode) InitializeProcessors(gasMap map[string]map[string]uint64)
InitializeProcessors will reinitialize processors
func (*TestProcessorNode) IsInterfaceNil ¶ added in v1.1.47
func (tpn *TestProcessorNode) IsInterfaceNil() bool
IsInterfaceNil returns true if there is no value under the interface
func (*TestProcessorNode) LoadTxSignSkBytes ¶
func (tpn *TestProcessorNode) LoadTxSignSkBytes(skBytes []byte)
LoadTxSignSkBytes alters the already generated sk/pk pair
func (*TestProcessorNode) MiniBlocksPresent ¶
func (tpn *TestProcessorNode) MiniBlocksPresent(hashes [][]byte) bool
MiniBlocksPresent checks if the all the miniblocks are present in the pool
func (*TestProcessorNode) ProposeBlock ¶
func (tpn *TestProcessorNode) ProposeBlock(round uint64, nonce uint64) (data.BodyHandler, data.HeaderHandler, [][]byte)
ProposeBlock proposes a new block
func (*TestProcessorNode) SendTransaction ¶
func (tpn *TestProcessorNode) SendTransaction(tx *dataTransaction.Transaction) (string, error)
SendTransaction can send a transaction (it does the dispatching)
func (*TestProcessorNode) SetAccountNonce ¶
func (tpn *TestProcessorNode) SetAccountNonce(nonce uint64) error
SetAccountNonce sets the account nonce with journal
func (*TestProcessorNode) StartSync ¶
func (tpn *TestProcessorNode) StartSync() error
StartSync calls Bootstrapper.StartSync. Errors if bootstrapper is not set
func (*TestProcessorNode) SyncNode ¶
func (tpn *TestProcessorNode) SyncNode(nonce uint64) error
SyncNode tries to process and commit a block already stored in data pool with provided nonce
func (*TestProcessorNode) WhiteListBody ¶ added in v1.0.133
func (tpn *TestProcessorNode) WhiteListBody(nodes []*TestProcessorNode, bodyHandler data.BodyHandler)
WhiteListBody will whitelist all miniblocks from the given body for all the given nodes
type TestProcessorNodeWithTestWebServer ¶ added in v1.1.27
type TestProcessorNodeWithTestWebServer struct { *TestProcessorNode // contains filtered or unexported fields }
TestProcessorNodeWithTestWebServer represents a TestProcessorNode with a test web server
func NewTestProcessorNodeWithTestWebServer ¶ added in v1.1.27
func NewTestProcessorNodeWithTestWebServer( maxShards uint32, nodeShardId uint32, txSignPrivKeyShardId uint32, ) *TestProcessorNodeWithTestWebServer
NewTestProcessorNodeWithTestWebServer returns a new TestProcessorNodeWithTestWebServer instance with a libp2p messenger
func (*TestProcessorNodeWithTestWebServer) DoRequest ¶ added in v1.1.27
func (node *TestProcessorNodeWithTestWebServer) DoRequest(request *http.Request) *httptest.ResponseRecorder
DoRequest preforms a test request on the web server, returning the response ready to be parsed
type TestStorage ¶
type TestStorage struct {
// contains filtered or unexported fields
}
TestStorage represents a container type of class used in integration tests for storage
func NewTestStorage ¶
func NewTestStorage() *TestStorage
NewTestStorage return an object of type TestStorage
func (*TestStorage) CreateStorageLevelDB ¶
func (ts *TestStorage) CreateStorageLevelDB() storage.Storer
CreateStorageLevelDB creates a storage levelDB
func (*TestStorage) CreateStorageLevelDBSerial ¶
func (ts *TestStorage) CreateStorageLevelDBSerial() storage.Storer
CreateStorageLevelDBSerial creates a storage levelDB serial
func (*TestStorage) CreateStoredData ¶
func (ts *TestStorage) CreateStoredData(nonce uint64) ([]byte, []byte)
CreateStoredData creates stored data
func (*TestStorage) InitAdditionalFieldsForStorageOperations ¶
func (ts *TestStorage) InitAdditionalFieldsForStorageOperations(nbTxsWrite int, mapRemovedKeys *sync.Map, maxWritten *uint64)
InitAdditionalFieldsForStorageOperations init additional structure fields to can do storage operations
func (*TestStorage) ReadMultiple ¶
func (ts *TestStorage) ReadMultiple( store storage.Storer, wg *sync.WaitGroup, chStartTrigger chan struct{}, errors *int32, )
ReadMultiple read multiple data from storage
func (*TestStorage) RemoveMultiple ¶
func (ts *TestStorage) RemoveMultiple( store storage.Storer, wg *sync.WaitGroup, chEndRemove chan struct{}, errors *int32, )
RemoveMultiple remove multiple data from storage
func (*TestStorage) WriteMultipleWithNotif ¶
func (ts *TestStorage) WriteMultipleWithNotif( store storage.Storer, wg *sync.WaitGroup, chWriteDone chan struct{}, nbNotifDone int, errors *int32, )
WriteMultipleWithNotif write multiple data in storage without notification
type TestWalletAccount ¶
type TestWalletAccount struct { SingleSigner crypto.SingleSigner BlockSingleSigner crypto.SingleSigner SkTxSign crypto.PrivateKey PkTxSign crypto.PublicKey PkTxSignBytes []byte KeygenTxSign crypto.KeyGenerator KeygenBlockSign crypto.KeyGenerator PeerSigHandler crypto.PeerSignatureHandler Address []byte Nonce uint64 Balance *big.Int }
TestWalletAccount creates and account with balance and crypto necessary to sign transactions
func CreateTestWalletAccount ¶
func CreateTestWalletAccount(coordinator sharding.Coordinator, shardId uint32) *TestWalletAccount
CreateTestWalletAccount creates an wallet account in a selected shard
func CreateTestWalletAccountWithKeygenAndSingleSigner ¶
func CreateTestWalletAccountWithKeygenAndSingleSigner( coordinator sharding.Coordinator, shardId uint32, blockSingleSigner crypto.SingleSigner, keyGenBlockSign crypto.KeyGenerator, ) *TestWalletAccount
CreateTestWalletAccountWithKeygenAndSingleSigner creates a wallet account in a selected shard
func (*TestWalletAccount) LoadTxSignSkBytes ¶
func (twa *TestWalletAccount) LoadTxSignSkBytes(skBytes []byte)
LoadTxSignSkBytes alters the already generated sk/pk pair
Source Files ¶
- countInterceptor.go
- interface.go
- nodesCoordinatorFactory.go
- oneNodeNetwork.go
- testBuiltinFunction.go
- testGameHelperFunctions.go
- testInitializer.go
- testNetwork.go
- testP2PNode.go
- testProcessorNode.go
- testProcessorNodeWithCoordinator.go
- testProcessorNodeWithMultisigner.go
- testProcessorNodeWithStateCheckpointModulus.go
- testProcessorNodeWithTestWebServer.go
- testStorage.go
- testSyncNode.go
- testWalletAccount.go