Documentation ¶
Index ¶
- func BlockWithPrevCert(cert *certificate.BlockCertificate) func(bm *BlockMaker)
- func BlockWithPrevHash(h hash.Hash) func(bm *BlockMaker)
- func BlockWithProposer(addr crypto.Address) func(bm *BlockMaker)
- func BlockWithSeed(seed sortition.VerifiableSeed) func(bm *BlockMaker)
- func BlockWithStateHash(h hash.Hash) func(bm *BlockMaker)
- func BlockWithTime(t time.Time) func(bm *BlockMaker)
- func BlockWithTransactions(txs block.Txs) func(bm *BlockMaker)
- func BlockWithVersion(ver uint8) func(bm *BlockMaker)
- func GenerateSeed() int64
- func TransactionWithAmount(amt amount.Amount) func(tm *TransactionMaker)
- func TransactionWithBLSSigner(signer *bls.PrivateKey) func(tm *TransactionMaker)
- func TransactionWithEd25519Signer(signer *ed25519.PrivateKey) func(tm *TransactionMaker)
- func TransactionWithFee(fee amount.Amount) func(tm *TransactionMaker)
- func TransactionWithLockTime(lockTime uint32) func(tm *TransactionMaker)
- func TransactionWithValidatorPublicKey(pubKey *bls.PublicKey) func(tm *TransactionMaker)
- func WithProposerKey(key *bls.ValidatorKey) func(pm *ProposalMaker)
- type BlockMaker
- type OverrideStringer
- type ProposalMaker
- type TestSuite
- func (*TestSuite) DecodingHex(in string) []byte
- func (ts *TestSuite) GenerateTestAccount(number int32) (*account.Account, crypto.Address)
- func (ts *TestSuite) GenerateTestBlock(height uint32, options ...func(bm *BlockMaker)) (*block.Block, *certificate.BlockCertificate)
- func (ts *TestSuite) GenerateTestBlockCertificate(height uint32) *certificate.BlockCertificate
- func (ts *TestSuite) GenerateTestBondTx(options ...func(tm *TransactionMaker)) *tx.Tx
- func (ts *TestSuite) GenerateTestCommittee(num int) (committee.Committee, []*bls.ValidatorKey)
- func (ts *TestSuite) GenerateTestPrecommitVote(height uint32, round int16) (*vote.Vote, *bls.ValidatorKey)
- func (ts *TestSuite) GenerateTestPrepareCertificate(height uint32) *certificate.VoteCertificate
- func (ts *TestSuite) GenerateTestPrepareVote(height uint32, round int16) (*vote.Vote, *bls.ValidatorKey)
- func (ts *TestSuite) GenerateTestProposal(height uint32, round int16, options ...func(pmk *ProposalMaker)) *proposal.Proposal
- func (ts *TestSuite) GenerateTestSortitionTx(options ...func(tm *TransactionMaker)) *tx.Tx
- func (ts *TestSuite) GenerateTestTransferTx(options ...func(tm *TransactionMaker)) *tx.Tx
- func (ts *TestSuite) GenerateTestUnbondTx(options ...func(tm *TransactionMaker)) *tx.Tx
- func (ts *TestSuite) GenerateTestValidator(number int32) (*validator.Validator, *bls.ValidatorKey)
- func (ts *TestSuite) GenerateTestWithdrawTx(options ...func(tm *TransactionMaker)) *tx.Tx
- func (*TestSuite) HelperSignProposal(valKey *bls.ValidatorKey, p *proposal.Proposal)
- func (*TestSuite) HelperSignTransaction(prv crypto.PrivateKey, trx *tx.Tx)
- func (*TestSuite) HelperSignVote(valKey *bls.ValidatorKey, v *vote.Vote)
- func (ts *TestSuite) NewBlockMaker() *BlockMaker
- func (ts *TestSuite) NewProposalMaker() *ProposalMaker
- func (ts *TestSuite) NewTransactionMaker() *TransactionMaker
- func (ts *TestSuite) RandAccAddress() crypto.Address
- func (ts *TestSuite) RandAmount(max ...amount.Amount) amount.Amount
- func (ts *TestSuite) RandAmountRange(min, max amount.Amount) amount.Amount
- func (ts *TestSuite) RandBLSKeyPair() (*bls.PublicKey, *bls.PrivateKey)
- func (ts *TestSuite) RandBLSSignature() *bls.Signature
- func (ts *TestSuite) RandBool() bool
- func (ts *TestSuite) RandBytes(length int) []byte
- func (ts *TestSuite) RandEd25519KeyPair() (*ed25519.PublicKey, *ed25519.PrivateKey)
- func (ts *TestSuite) RandEd25519Signature() *ed25519.Signature
- func (ts *TestSuite) RandFee(max ...amount.Amount) amount.Amount
- func (ts *TestSuite) RandHash() hash.Hash
- func (ts *TestSuite) RandHeight() uint32
- func (ts *TestSuite) RandInt(max int) int
- func (ts *TestSuite) RandInt16(max int16) int16
- func (ts *TestSuite) RandInt16NonZero(max int16) int16
- func (ts *TestSuite) RandInt32(max int32) int32
- func (ts *TestSuite) RandInt32NonZero(max int32) int32
- func (ts *TestSuite) RandInt64(max int64) int64
- func (ts *TestSuite) RandInt64NonZero(max int64) int64
- func (ts *TestSuite) RandInt8(max int8) int8
- func (ts *TestSuite) RandIntNonZero(max int) int
- func (ts *TestSuite) RandPeerID() peer.ID
- func (ts *TestSuite) RandProof() sortition.Proof
- func (ts *TestSuite) RandRound() int16
- func (ts *TestSuite) RandSeed() sortition.VerifiableSeed
- func (ts *TestSuite) RandSlice(length int) []int32
- func (ts *TestSuite) RandString(length int) string
- func (ts *TestSuite) RandUint16(max uint16) uint16
- func (ts *TestSuite) RandUint16NonZero(max uint16) uint16
- func (ts *TestSuite) RandUint32(max uint32) uint32
- func (ts *TestSuite) RandUint32NonZero(max uint32) uint32
- func (ts *TestSuite) RandUint64(max uint64) uint64
- func (ts *TestSuite) RandUint64NonZero(max uint64) uint64
- func (ts *TestSuite) RandUint8(max uint8) uint8
- func (ts *TestSuite) RandValAddress() crypto.Address
- func (ts *TestSuite) RandValKey() *bls.ValidatorKey
- type TransactionMaker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BlockWithPrevCert ¶ added in v1.4.0
func BlockWithPrevCert(cert *certificate.BlockCertificate) func(bm *BlockMaker)
BlockWithPrevCert sets previous block certificate to the block.
func BlockWithPrevHash ¶ added in v1.4.0
func BlockWithPrevHash(h hash.Hash) func(bm *BlockMaker)
BlockWithPrevHash sets previous block hash to the block.
func BlockWithProposer ¶ added in v1.4.0
func BlockWithProposer(addr crypto.Address) func(bm *BlockMaker)
BlockWithProposer sets proposer address to the block.
func BlockWithSeed ¶ added in v1.4.0
func BlockWithSeed(seed sortition.VerifiableSeed) func(bm *BlockMaker)
BlockWithSeed sets verifiable seed to the block.
func BlockWithStateHash ¶ added in v1.4.0
func BlockWithStateHash(h hash.Hash) func(bm *BlockMaker)
BlockWithStateHash sets state hash to the block.
func BlockWithTime ¶ added in v1.4.0
func BlockWithTime(t time.Time) func(bm *BlockMaker)
BlockWithTime sets block creation time to the block.
func BlockWithTransactions ¶ added in v1.4.0
func BlockWithTransactions(txs block.Txs) func(bm *BlockMaker)
BlockWithTransactions adds transactions to the block.
func BlockWithVersion ¶ added in v1.4.0
func BlockWithVersion(ver uint8) func(bm *BlockMaker)
BlockWithVersion sets version to the block.
func GenerateSeed ¶ added in v0.15.0
func GenerateSeed() int64
func TransactionWithAmount ¶ added in v1.4.0
func TransactionWithAmount(amt amount.Amount) func(tm *TransactionMaker)
TransactionWithAmount sets amount to the transaction.
func TransactionWithBLSSigner ¶ added in v1.5.0
func TransactionWithBLSSigner(signer *bls.PrivateKey) func(tm *TransactionMaker)
TransactionWithBLSSigner sets the BLS signer to sign the test transaction.
func TransactionWithEd25519Signer ¶ added in v1.5.0
func TransactionWithEd25519Signer(signer *ed25519.PrivateKey) func(tm *TransactionMaker)
TransactionWithEd25519Signer sets the Ed25519 signer to sign the test transaction.
func TransactionWithFee ¶ added in v1.4.0
func TransactionWithFee(fee amount.Amount) func(tm *TransactionMaker)
TransactionWithFee sets fee to the transaction.
func TransactionWithLockTime ¶ added in v1.4.0
func TransactionWithLockTime(lockTime uint32) func(tm *TransactionMaker)
TransactionWithLockTime sets lock-time to the transaction.
func TransactionWithValidatorPublicKey ¶ added in v1.6.0
func TransactionWithValidatorPublicKey(pubKey *bls.PublicKey) func(tm *TransactionMaker)
TransactionWithValidatorPublicKey sets the Validator's public key for the Bond transaction.
func WithProposerKey ¶ added in v1.6.0
func WithProposerKey(key *bls.ValidatorKey) func(pm *ProposalMaker)
WithProposerKey sets the private key of the proposer.
Types ¶
type BlockMaker ¶ added in v1.4.0
type BlockMaker struct { Version uint8 Txs block.Txs Proposer crypto.Address Time time.Time StateHash hash.Hash PrevHash hash.Hash Seed sortition.VerifiableSeed PrevCert *certificate.BlockCertificate }
type OverrideStringer ¶ added in v0.17.0
type OverrideStringer struct {
// contains filtered or unexported fields
}
func NewOverrideStringer ¶ added in v0.17.0
func NewOverrideStringer(name string, obj fmt.Stringer) *OverrideStringer
func (*OverrideStringer) String ¶ added in v0.17.0
func (o *OverrideStringer) String() string
type ProposalMaker ¶ added in v1.6.0
type ProposalMaker struct {
ProposerKey *bls.ValidatorKey
}
type TestSuite ¶
TestSuite provides a set of helper functions for testing purposes. All the random values are generated based on a logged seed. By using a pre-generated seed, it is possible to reproduce failed tests by re-evaluating all the random values. This helps in identifying and debugging failures in testing conditions.
func NewTestSuite ¶
NewTestSuite creates a new TestSuite by generating new seed.
func NewTestSuiteFromSeed ¶ added in v1.6.0
NewTestSuiteFromSeed creates a new TestSuite with the given seed.
func (*TestSuite) DecodingHex ¶
DecodingHex decodes the input string from hexadecimal format and returns the resulting byte slice.
func (*TestSuite) GenerateTestAccount ¶
GenerateTestAccount generates an account for testing purposes.
func (*TestSuite) GenerateTestBlock ¶
func (ts *TestSuite) GenerateTestBlock(height uint32, options ...func(bm *BlockMaker)) ( *block.Block, *certificate.BlockCertificate, )
GenerateTestBlock generates a block for testing purposes with optional configuration.
func (*TestSuite) GenerateTestBlockCertificate ¶ added in v1.2.0
func (ts *TestSuite) GenerateTestBlockCertificate(height uint32) *certificate.BlockCertificate
GenerateTestBlockCertificate generates a block certificate for testing purposes.
func (*TestSuite) GenerateTestBondTx ¶
func (ts *TestSuite) GenerateTestBondTx(options ...func(tm *TransactionMaker)) *tx.Tx
GenerateTestBondTx generates a bond transaction for testing purposes.
func (*TestSuite) GenerateTestCommittee ¶
GenerateTestCommittee generates a committee for testing purposes. All committee members have the same power.
func (*TestSuite) GenerateTestPrecommitVote ¶
func (ts *TestSuite) GenerateTestPrecommitVote(height uint32, round int16) (*vote.Vote, *bls.ValidatorKey)
GenerateTestPrecommitVote generates a precommit vote for testing purposes.
func (*TestSuite) GenerateTestPrepareCertificate ¶ added in v1.2.0
func (ts *TestSuite) GenerateTestPrepareCertificate(height uint32) *certificate.VoteCertificate
GenerateTestPrepareCertificate generates a prepare certificate for testing purposes.
func (*TestSuite) GenerateTestPrepareVote ¶
func (ts *TestSuite) GenerateTestPrepareVote(height uint32, round int16) (*vote.Vote, *bls.ValidatorKey)
GenerateTestPrepareVote generates a prepare vote for testing purposes.
func (*TestSuite) GenerateTestProposal ¶
func (ts *TestSuite) GenerateTestProposal(height uint32, round int16, options ...func(pmk *ProposalMaker), ) *proposal.Proposal
GenerateTestProposal generates a proposal for testing purposes.
func (*TestSuite) GenerateTestSortitionTx ¶
func (ts *TestSuite) GenerateTestSortitionTx(options ...func(tm *TransactionMaker)) *tx.Tx
GenerateTestSortitionTx generates a sortition transaction for testing purposes.
func (*TestSuite) GenerateTestTransferTx ¶
func (ts *TestSuite) GenerateTestTransferTx(options ...func(tm *TransactionMaker)) *tx.Tx
GenerateTestTransferTx generates a transfer transaction for testing purposes.
func (*TestSuite) GenerateTestUnbondTx ¶
func (ts *TestSuite) GenerateTestUnbondTx(options ...func(tm *TransactionMaker)) *tx.Tx
GenerateTestUnbondTx generates an unbond transaction for testing purposes.
func (*TestSuite) GenerateTestValidator ¶
GenerateTestValidator generates a validator for testing purposes.
func (*TestSuite) GenerateTestWithdrawTx ¶
func (ts *TestSuite) GenerateTestWithdrawTx(options ...func(tm *TransactionMaker)) *tx.Tx
GenerateTestWithdrawTx generates a withdraw transaction for testing purposes.
func (*TestSuite) HelperSignProposal ¶ added in v0.15.0
func (*TestSuite) HelperSignProposal(valKey *bls.ValidatorKey, p *proposal.Proposal)
func (*TestSuite) HelperSignTransaction ¶ added in v0.15.0
func (*TestSuite) HelperSignTransaction(prv crypto.PrivateKey, trx *tx.Tx)
func (*TestSuite) HelperSignVote ¶ added in v0.15.0
func (*TestSuite) HelperSignVote(valKey *bls.ValidatorKey, v *vote.Vote)
func (*TestSuite) NewBlockMaker ¶ added in v1.4.0
func (ts *TestSuite) NewBlockMaker() *BlockMaker
NewBlockMaker creates a new BlockMaker instance.
func (*TestSuite) NewProposalMaker ¶ added in v1.6.0
func (ts *TestSuite) NewProposalMaker() *ProposalMaker
NewProposalMaker creates a new NewProposalMaker instance.
func (*TestSuite) NewTransactionMaker ¶ added in v1.4.0
func (ts *TestSuite) NewTransactionMaker() *TransactionMaker
NewTransactionMaker creates a new TransactionMaker instance.
func (*TestSuite) RandAccAddress ¶ added in v0.15.0
RandAccAddress generates a random account address for testing purposes.
func (*TestSuite) RandAmount ¶ added in v0.19.0
RandAmount returns a random amount between [1e9, max). If max is not set, it defaults to 1000e9.
func (*TestSuite) RandAmountRange ¶ added in v1.2.0
RandAmountRange returns a random amount between [min, max).
func (*TestSuite) RandBLSKeyPair ¶ added in v0.15.0
func (ts *TestSuite) RandBLSKeyPair() (*bls.PublicKey, *bls.PrivateKey)
RandBLSKeyPair generates a random BLS key pair for testing purposes.
func (*TestSuite) RandBLSSignature ¶ added in v0.15.0
RandBLSSignature generates a random BLS signature for testing purposes.
func (*TestSuite) RandBytes ¶ added in v0.15.0
RandBytes returns a slice of random bytes of the given length.
func (*TestSuite) RandEd25519KeyPair ¶ added in v1.5.0
func (ts *TestSuite) RandEd25519KeyPair() (*ed25519.PublicKey, *ed25519.PrivateKey)
RandEd25519KeyPair generates a random Ed25519 key pair for testing purposes.
func (*TestSuite) RandEd25519Signature ¶ added in v1.5.0
RandEd25519Signature generates a random BLS signature for testing purposes.
func (*TestSuite) RandFee ¶ added in v1.2.0
RandFee returns a random fee between [1e7, max). If max is not set, it defaults to 1e9.
func (*TestSuite) RandHash ¶ added in v0.15.0
RandHash generates a random hash for testing purposes.
func (*TestSuite) RandHeight ¶ added in v0.15.0
RandHeight returns a random number between [1000, 1000000] for block height.
func (*TestSuite) RandInt16NonZero ¶
RandInt16NonZero returns a random int16 between 1 and max+1: [1, max+1).
func (*TestSuite) RandInt32NonZero ¶
RandInt32NonZero returns a random int32 between 1 and max+1: [1, max+1).
func (*TestSuite) RandInt64NonZero ¶
RandInt64NonZero returns a random int64 between 1 and max+1: [1, max+1).
func (*TestSuite) RandInt8 ¶ added in v1.2.0
RandInt8 returns a random int8 between 0 and max: [0, max).
func (*TestSuite) RandIntNonZero ¶
RandIntNonZero returns a random int between 1 and max+1: [1, max+1).
func (*TestSuite) RandPeerID ¶ added in v0.15.0
RandPeerID returns a random peer ID.
func (*TestSuite) RandProof ¶ added in v0.15.0
RandProof generates a random Proof for testing purposes.
func (*TestSuite) RandRound ¶ added in v0.15.0
RandRound returns a random number between [0, 10) for block round.
func (*TestSuite) RandSeed ¶ added in v0.15.0
func (ts *TestSuite) RandSeed() sortition.VerifiableSeed
RandSeed generates a random VerifiableSeed for testing purposes.
func (*TestSuite) RandSlice ¶ added in v1.2.0
RandSlice generates a random non-repeating slice of int32 elements with the specified length.
func (*TestSuite) RandString ¶ added in v0.15.0
RandString generates a random string of the given length.
func (*TestSuite) RandUint16 ¶
RandUint16 returns a random uint16 between 0 and max: [0, max).
func (*TestSuite) RandUint16NonZero ¶
RandUint16NonZero returns a random uint16 between 1 and max+1: [1, max+1).
func (*TestSuite) RandUint32 ¶
RandUint32 returns a random uint32 between 0 and max: [0, max).
func (*TestSuite) RandUint32NonZero ¶
RandUint32NonZero returns a random uint32 between 1 and max+1: [1, max+1).
func (*TestSuite) RandUint64 ¶
RandUint64 returns a random uint64 between 0 and max: [0, max).
func (*TestSuite) RandUint64NonZero ¶
RandUint64NonZero returns a random uint64 between 1 and max+1: [1, max+1).
func (*TestSuite) RandUint8 ¶ added in v1.2.0
RandUint8 returns a random uint8 between 0 and max: [0, max).
func (*TestSuite) RandValAddress ¶ added in v0.15.0
RandValAddress generates a random validator address for testing purposes.
func (*TestSuite) RandValKey ¶ added in v0.15.0
func (ts *TestSuite) RandValKey() *bls.ValidatorKey
RandValKey generates a random validator key for testing purposes.
type TransactionMaker ¶ added in v1.4.0
type TransactionMaker struct { LockTime uint32 Amount amount.Amount Fee amount.Amount Signer crypto.PrivateKey ValPubKey *bls.PublicKey }
func (*TransactionMaker) SignerAccountAddress ¶ added in v1.5.0
func (tm *TransactionMaker) SignerAccountAddress() crypto.Address
func (*TransactionMaker) SignerValidatorAddress ¶ added in v1.5.0
func (tm *TransactionMaker) SignerValidatorAddress() crypto.Address