actions

package
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RandomChoice

func RandomChoice(rnd *rand.Rand, list []string) string

TODO: need generics

func RandomRange

func RandomRange(rnd *rand.Rand, bottom, up int64) int64

returns random number in range [low,up)

func RandomString

func RandomString(rnd *rand.Rand, n int64, source string) string

returns random string length n

func RandomSublist

func RandomSublist(rnd *rand.Rand, list []uint64) []uint64

Return random sublist (copy)

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 (*CreateMultisigTransactionAction) GenerateTx

func (*CreateMultisigTransactionAction) String

type CreateMultisigTransactionGenerator

type CreateMultisigTransactionGenerator struct {
	// contains filtered or unexported fields
}

func NewCreateMultisigTransactionGenerator

func NewCreateMultisigTransactionGenerator(bottomRange, upperRange int64) *CreateMultisigTransactionGenerator

func (*CreateMultisigTransactionGenerator) Generate

func (*CreateMultisigTransactionGenerator) Update

type CreateMultisigWalletAction

type CreateMultisigWalletAction struct {
	// contains filtered or unexported fields
}

func (*CreateMultisigWalletAction) ChooseAccounts

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

type DepositMultisigWalletAction

type DepositMultisigWalletAction struct {
	// contains filtered or unexported fields
}

func (*DepositMultisigWalletAction) ChooseAccounts

func (*DepositMultisigWalletAction) GenerateTx

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

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 NFTSubTokenKey struct {
	Denom   string
	TokenID string
	ID      uint64
}

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 (*SignMultisigTransactionAction) GenerateTx

func (*SignMultisigTransactionAction) String

type SignMultisigTransactionGenerator

type SignMultisigTransactionGenerator struct {
	// contains filtered or unexported fields
}

func NewSignMultisigTransactionGenerator

func NewSignMultisigTransactionGenerator() *SignMultisigTransactionGenerator

func (*SignMultisigTransactionGenerator) Generate

func (*SignMultisigTransactionGenerator) Update

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
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL