Documentation ¶
Index ¶
- func RandomChoice(rnd *rand.Rand, list []string) string
- func RandomRange(rnd *rand.Rand, bottom, up int64) int64
- func RandomString(rnd *rand.Rand, n int64, source string) string
- func RandomSublist(rnd *rand.Rand, list []uint64) []uint64
- type Action
- type ActionGenerator
- type ActionReactor
- type BurnNFTAction
- type BurnNFTGenerator
- type BuyCoinAction
- type BuyCoinGenerator
- type CreateCoinAction
- type CreateCoinGenerator
- type CreateMultisigTransactionAction
- type CreateMultisigTransactionGenerator
- type CreateMultisigWalletAction
- type CreateMultisigWalletGenerator
- type DepositMultisigWalletAction
- type DepositMultisigWalletGenerator
- type EditNFTAction
- type EditNFTGenerator
- type EmptyAction
- type MintNFTAction
- type MintNFTGenerator
- type MultiSendCoinAction
- type MultiSendCoinGenerator
- type NFTSubTokenKey
- type SellCoinAction
- type SellCoinGenerator
- type SendCoinAction
- type SendCoinGenerator
- type SignMultisigTransactionAction
- type SignMultisigTransactionGenerator
- type TPSLimiter
- type TransferNFTAction
- type TransferNFTGenerator
- type UpdateCoinAction
- type UpdateCoinGenerator
- type UpdateInfo
- type UpdateReserveNFTAction
- type UpdateReserveNFTGenerator
- type WeightedAG
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RandomRange ¶
returns random number in range [low,up)
func RandomString ¶
returns random string length n
Types ¶
type Action ¶
type Action interface { // returns list of accounts than can make transaction // need to decrease count of invalid actions, required ownership of coin/nft, coin balance etc... ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount // generate signed transaction data GenerateTx(sa *stormTypes.StormAccount) ([]byte, error) // for debug puprposes String() string }
type ActionGenerator ¶
type ActionGenerator interface { Generate() Action Update(ui UpdateInfo) }
Generate some action with random parameters
type ActionReactor ¶
type ActionReactor struct {
// contains filtered or unexported fields
}
func (*ActionReactor) Add ¶
func (ar *ActionReactor) Add(generatorName string, weight int64) error
TODO: parameters for generator
func (*ActionReactor) Generate ¶
func (ar *ActionReactor) Generate() Action
choose generator and generate action
func (*ActionReactor) Update ¶
func (ar *ActionReactor) Update(ui UpdateInfo)
type BurnNFTAction ¶
type BurnNFTAction struct {
// contains filtered or unexported fields
}
func (*BurnNFTAction) ChooseAccounts ¶
func (aa *BurnNFTAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*BurnNFTAction) GenerateTx ¶
func (aa *BurnNFTAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*BurnNFTAction) String ¶
func (aa *BurnNFTAction) String() string
type BurnNFTGenerator ¶
type BurnNFTGenerator struct {
// contains filtered or unexported fields
}
MsgBurnNFT
func NewBurnNFTGenerator ¶
func NewBurnNFTGenerator() *BurnNFTGenerator
func (*BurnNFTGenerator) Generate ¶
func (gg *BurnNFTGenerator) Generate() Action
func (*BurnNFTGenerator) Update ¶
func (gg *BurnNFTGenerator) Update(ui UpdateInfo)
type BuyCoinAction ¶
type BuyCoinAction struct {
// contains filtered or unexported fields
}
func (*BuyCoinAction) ChooseAccounts ¶
func (ab *BuyCoinAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*BuyCoinAction) GenerateTx ¶
func (ab *BuyCoinAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*BuyCoinAction) String ¶
func (ab *BuyCoinAction) String() string
type BuyCoinGenerator ¶
type BuyCoinGenerator struct {
// contains filtered or unexported fields
}
MsgBuyCoin
func NewBuyCoinGenerator ¶
func NewBuyCoinGenerator( bottomRange, upperRange int64, baseCoin string) *BuyCoinGenerator
func (*BuyCoinGenerator) Generate ¶
func (abg *BuyCoinGenerator) Generate() Action
func (*BuyCoinGenerator) Update ¶
func (abg *BuyCoinGenerator) Update(ui UpdateInfo)
type CreateCoinAction ¶
type CreateCoinAction struct {
// contains filtered or unexported fields
}
func (*CreateCoinAction) ChooseAccounts ¶
func (ac *CreateCoinAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*CreateCoinAction) GenerateTx ¶
func (ac *CreateCoinAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*CreateCoinAction) String ¶
func (ac *CreateCoinAction) String() string
type CreateCoinGenerator ¶
type CreateCoinGenerator struct {
// contains filtered or unexported fields
}
MsgCreateCoin
func NewCreateCoinGenerator ¶
func NewCreateCoinGenerator( symbolLengthBottom, symbolLengthUp, initVolumeBottom, initVolumeUp, initReserveBottom, initReserveUp, limitVolumeBottom, limitVolumeUp int64) *CreateCoinGenerator
func (*CreateCoinGenerator) Generate ¶
func (acg *CreateCoinGenerator) Generate() Action
func (*CreateCoinGenerator) Update ¶
func (acg *CreateCoinGenerator) Update(ui UpdateInfo)
type CreateMultisigTransactionAction ¶
type CreateMultisigTransactionAction struct {
// contains filtered or unexported fields
}
func (*CreateMultisigTransactionAction) ChooseAccounts ¶
func (aa *CreateMultisigTransactionAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*CreateMultisigTransactionAction) GenerateTx ¶
func (aa *CreateMultisigTransactionAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*CreateMultisigTransactionAction) String ¶
func (aa *CreateMultisigTransactionAction) String() string
type CreateMultisigTransactionGenerator ¶
type CreateMultisigTransactionGenerator struct {
// contains filtered or unexported fields
}
func NewCreateMultisigTransactionGenerator ¶
func NewCreateMultisigTransactionGenerator(bottomRange, upperRange int64) *CreateMultisigTransactionGenerator
func (*CreateMultisigTransactionGenerator) Generate ¶
func (gg *CreateMultisigTransactionGenerator) Generate() Action
func (*CreateMultisigTransactionGenerator) Update ¶
func (gg *CreateMultisigTransactionGenerator) Update(ui UpdateInfo)
type CreateMultisigWalletAction ¶
type CreateMultisigWalletAction struct {
// contains filtered or unexported fields
}
func (*CreateMultisigWalletAction) ChooseAccounts ¶
func (aa *CreateMultisigWalletAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*CreateMultisigWalletAction) GenerateTx ¶
func (aa *CreateMultisigWalletAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*CreateMultisigWalletAction) String ¶
func (aa *CreateMultisigWalletAction) String() string
type CreateMultisigWalletGenerator ¶
type CreateMultisigWalletGenerator struct {
// contains filtered or unexported fields
}
MsgCreateWallet
func NewCreateMultisigWalletGenerator ¶
func NewCreateMultisigWalletGenerator() *CreateMultisigWalletGenerator
func (*CreateMultisigWalletGenerator) Generate ¶
func (gg *CreateMultisigWalletGenerator) Generate() Action
func (*CreateMultisigWalletGenerator) Update ¶
func (gg *CreateMultisigWalletGenerator) Update(ui UpdateInfo)
type DepositMultisigWalletAction ¶
type DepositMultisigWalletAction struct {
// contains filtered or unexported fields
}
func (*DepositMultisigWalletAction) ChooseAccounts ¶
func (aa *DepositMultisigWalletAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*DepositMultisigWalletAction) GenerateTx ¶
func (aa *DepositMultisigWalletAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*DepositMultisigWalletAction) String ¶
func (aa *DepositMultisigWalletAction) String() string
type DepositMultisigWalletGenerator ¶
type DepositMultisigWalletGenerator struct {
// contains filtered or unexported fields
}
like SendCoin, but for multisig wallets as receivers
func NewDepositMultisigWalletGenerator ¶
func NewDepositMultisigWalletGenerator(bottomRange, upperRange int64) *DepositMultisigWalletGenerator
func (*DepositMultisigWalletGenerator) Generate ¶
func (gg *DepositMultisigWalletGenerator) Generate() Action
func (*DepositMultisigWalletGenerator) Update ¶
func (gg *DepositMultisigWalletGenerator) Update(ui UpdateInfo)
type EditNFTAction ¶
type EditNFTAction struct {
// contains filtered or unexported fields
}
func (*EditNFTAction) ChooseAccounts ¶
func (aa *EditNFTAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*EditNFTAction) GenerateTx ¶
func (aa *EditNFTAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*EditNFTAction) String ¶
func (aa *EditNFTAction) String() string
type EditNFTGenerator ¶
type EditNFTGenerator struct {
// contains filtered or unexported fields
}
MsgEditNFT
func NewEditNFTGenerator ¶
func NewEditNFTGenerator(textLengthBottom, textLengthUp int64) *EditNFTGenerator
func (*EditNFTGenerator) Generate ¶
func (gg *EditNFTGenerator) Generate() Action
func (*EditNFTGenerator) Update ¶
func (gg *EditNFTGenerator) Update(ui UpdateInfo)
type EmptyAction ¶
type EmptyAction struct{}
EmptyAction is used if generator can't create valid action
func (*EmptyAction) ChooseAccounts ¶
func (ea *EmptyAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*EmptyAction) GenerateTx ¶
func (ea *EmptyAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*EmptyAction) String ¶
func (ea *EmptyAction) String() string
type MintNFTAction ¶
type MintNFTAction struct {
// contains filtered or unexported fields
}
func (*MintNFTAction) ChooseAccounts ¶
func (aa *MintNFTAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*MintNFTAction) GenerateTx ¶
func (aa *MintNFTAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*MintNFTAction) String ¶
func (aa *MintNFTAction) String() string
type MintNFTGenerator ¶
type MintNFTGenerator struct {
// contains filtered or unexported fields
}
MsgMintNFT
func NewMintNFTGenerator ¶
func NewMintNFTGenerator( textLengthBottom, textLengthUp, reserveBottom, reserveUp, quantityBottom, quantityUp int64) *MintNFTGenerator
func (*MintNFTGenerator) Generate ¶
func (gg *MintNFTGenerator) Generate() Action
func (*MintNFTGenerator) Update ¶
func (gg *MintNFTGenerator) Update(ui UpdateInfo)
type MultiSendCoinAction ¶
type MultiSendCoinAction struct {
// contains filtered or unexported fields
}
func (*MultiSendCoinAction) ChooseAccounts ¶
func (as *MultiSendCoinAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*MultiSendCoinAction) GenerateTx ¶
func (as *MultiSendCoinAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*MultiSendCoinAction) String ¶
func (as *MultiSendCoinAction) String() string
type MultiSendCoinGenerator ¶
type MultiSendCoinGenerator struct {
// contains filtered or unexported fields
}
MsgMultiSendCoin
func NewMultiSendCoinGenerator ¶
func NewMultiSendCoinGenerator(bottomRange, upperRange, sendCountBottom, sendCountUpper int64) *MultiSendCoinGenerator
func (*MultiSendCoinGenerator) Generate ¶
func (asg *MultiSendCoinGenerator) Generate() Action
func (*MultiSendCoinGenerator) Update ¶
func (asg *MultiSendCoinGenerator) Update(ui UpdateInfo)
type NFTSubTokenKey ¶
type SellCoinAction ¶
type SellCoinAction struct {
// contains filtered or unexported fields
}
func (*SellCoinAction) ChooseAccounts ¶
func (as *SellCoinAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*SellCoinAction) GenerateTx ¶
func (as *SellCoinAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*SellCoinAction) String ¶
func (as *SellCoinAction) String() string
type SellCoinGenerator ¶
type SellCoinGenerator struct {
// contains filtered or unexported fields
}
MsgSellCoin
func NewSellCoinGenerator ¶
func NewSellCoinGenerator( bottomRange, upperRange int64, baseCoin string) *SellCoinGenerator
func (*SellCoinGenerator) Generate ¶
func (asg *SellCoinGenerator) Generate() Action
func (*SellCoinGenerator) Update ¶
func (asg *SellCoinGenerator) Update(ui UpdateInfo)
type SendCoinAction ¶
type SendCoinAction struct {
// contains filtered or unexported fields
}
func (*SendCoinAction) ChooseAccounts ¶
func (as *SendCoinAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*SendCoinAction) GenerateTx ¶
func (as *SendCoinAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*SendCoinAction) String ¶
func (as *SendCoinAction) String() string
type SendCoinGenerator ¶
type SendCoinGenerator struct {
// contains filtered or unexported fields
}
MsgSendCoin
func NewSendCoinGenerator ¶
func NewSendCoinGenerator(bottomRange, upperRange int64) *SendCoinGenerator
func (*SendCoinGenerator) Generate ¶
func (asg *SendCoinGenerator) Generate() Action
func (*SendCoinGenerator) Update ¶
func (asg *SendCoinGenerator) Update(ui UpdateInfo)
type SignMultisigTransactionAction ¶
type SignMultisigTransactionAction struct {
// contains filtered or unexported fields
}
func (*SignMultisigTransactionAction) ChooseAccounts ¶
func (aa *SignMultisigTransactionAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*SignMultisigTransactionAction) GenerateTx ¶
func (aa *SignMultisigTransactionAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*SignMultisigTransactionAction) String ¶
func (aa *SignMultisigTransactionAction) String() string
type SignMultisigTransactionGenerator ¶
type SignMultisigTransactionGenerator struct {
// contains filtered or unexported fields
}
func NewSignMultisigTransactionGenerator ¶
func NewSignMultisigTransactionGenerator() *SignMultisigTransactionGenerator
func (*SignMultisigTransactionGenerator) Generate ¶
func (gg *SignMultisigTransactionGenerator) Generate() Action
func (*SignMultisigTransactionGenerator) Update ¶
func (gg *SignMultisigTransactionGenerator) Update(ui UpdateInfo)
type TPSLimiter ¶
type TPSLimiter struct {
// contains filtered or unexported fields
}
TPS (transactions per second) limiter
func NewTPSLimiter ¶
func NewTPSLimiter(limit int64) *TPSLimiter
func (*TPSLimiter) CanMake ¶
func (t *TPSLimiter) CanMake() bool
type TransferNFTAction ¶
type TransferNFTAction struct {
// contains filtered or unexported fields
}
func (*TransferNFTAction) ChooseAccounts ¶
func (aa *TransferNFTAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*TransferNFTAction) GenerateTx ¶
func (aa *TransferNFTAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*TransferNFTAction) String ¶
func (aa *TransferNFTAction) String() string
type TransferNFTGenerator ¶
type TransferNFTGenerator struct {
// contains filtered or unexported fields
}
MsgTransferNFT
func NewTransferNFTGenerator ¶
func NewTransferNFTGenerator() *TransferNFTGenerator
func (*TransferNFTGenerator) Generate ¶
func (gg *TransferNFTGenerator) Generate() Action
func (*TransferNFTGenerator) Update ¶
func (gg *TransferNFTGenerator) Update(ui UpdateInfo)
type UpdateCoinAction ¶
type UpdateCoinAction struct {
// contains filtered or unexported fields
}
func (*UpdateCoinAction) ChooseAccounts ¶
func (au *UpdateCoinAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*UpdateCoinAction) GenerateTx ¶
func (au *UpdateCoinAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*UpdateCoinAction) String ¶
func (au *UpdateCoinAction) String() string
type UpdateCoinGenerator ¶
type UpdateCoinGenerator struct {
// contains filtered or unexported fields
}
MsgUpdateCoin
func NewUpdateCoinGenerator ¶
func NewUpdateCoinGenerator( bottomRange, upperRange int64, baseCoin string) *UpdateCoinGenerator
func (*UpdateCoinGenerator) Generate ¶
func (aug *UpdateCoinGenerator) Generate() Action
func (*UpdateCoinGenerator) Update ¶
func (aug *UpdateCoinGenerator) Update(ui UpdateInfo)
type UpdateInfo ¶
type UpdateInfo struct { Coins []string Addresses []string FullCoins []dscApi.Coin NFTs []dscApi.NFT NFTSubTokenReserves map[NFTSubTokenKey]sdk.Int MultisigWallets []dscApi.MultisigWallet MultisigTransactions []dscApi.MultisigTransaction MultisigBalances map[string]sdk.Coins }
UpdateInfo contains all external updatable data for generators
type UpdateReserveNFTAction ¶
type UpdateReserveNFTAction struct {
// contains filtered or unexported fields
}
func (*UpdateReserveNFTAction) ChooseAccounts ¶
func (aa *UpdateReserveNFTAction) ChooseAccounts(saList []*stormTypes.StormAccount) []*stormTypes.StormAccount
func (*UpdateReserveNFTAction) GenerateTx ¶
func (aa *UpdateReserveNFTAction) GenerateTx(sa *stormTypes.StormAccount) ([]byte, error)
func (*UpdateReserveNFTAction) String ¶
func (aa *UpdateReserveNFTAction) String() string
type UpdateReserveNFTGenerator ¶
type UpdateReserveNFTGenerator struct {
// contains filtered or unexported fields
}
MsgUpdateReserveNFT
func NewUpdateReserveNFTGenerator ¶
func NewUpdateReserveNFTGenerator(increaseBottom, increaseUp int64) *UpdateReserveNFTGenerator
func (*UpdateReserveNFTGenerator) Generate ¶
func (gg *UpdateReserveNFTGenerator) Generate() Action
func (*UpdateReserveNFTGenerator) Update ¶
func (gg *UpdateReserveNFTGenerator) Update(ui UpdateInfo)
type WeightedAG ¶
type WeightedAG struct { Weight int64 AG ActionGenerator }
Source Files ¶
- action_reactor.go
- actions_base.go
- coin_buycoin.go
- coin_createcoin.go
- coin_multisend.go
- coin_sellcoin.go
- coin_sendcoin.go
- coin_updatecoin.go
- multisig_create_transaction.go
- multisig_create_wallet.go
- multisig_deposit_wallet.go
- multisig_sign_trasnaction.go
- nft_burn.go
- nft_edit.go
- nft_mint.go
- nft_transfer.go
- nft_updatereserve.go
Click to show internal directories.
Click to hide internal directories.