Co-authored-by: Alexander Peters <alpe@users.noreply.github.com>
This commit is contained in:
co-authored by
Alexander Peters
parent
93959d6976
commit
e42e270078
+29
-1
@@ -6,13 +6,41 @@ import (
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
)
|
||||
|
||||
// SimMsgFactoryX is an interface for creating and handling fuzz test-like simulation messages in the system.
|
||||
type SimMsgFactoryX interface {
|
||||
// MsgType returns an empty instance of the concrete message type that the factory provides.
|
||||
// This instance is primarily used for deduplication and reporting purposes.
|
||||
// The result must not be nil
|
||||
MsgType() sdk.Msg
|
||||
|
||||
// Create returns a FactoryMethod implementation which is responsible for constructing new instances of the message
|
||||
// on each invocation.
|
||||
Create() FactoryMethod
|
||||
|
||||
// DeliveryResultHandler returns a SimDeliveryResultHandler instance which processes the delivery
|
||||
// response error object. While most simulation factories anticipate successful message delivery,
|
||||
// certain factories employ this handler to validate execution errors, thereby covering negative
|
||||
// test scenarios.
|
||||
DeliveryResultHandler() SimDeliveryResultHandler
|
||||
}
|
||||
|
||||
type (
|
||||
// FactoryMethod method signature that is implemented by the concrete message factories
|
||||
// FactoryMethod is a method signature implemented by concrete message factories for SimMsgFactoryX
|
||||
//
|
||||
// This factory method is responsible for creating a new `sdk.Msg` instance and determining the
|
||||
// proposed signers who are expected to successfully sign the message for delivery.
|
||||
//
|
||||
// Parameters:
|
||||
// - ctx: The context for the operation
|
||||
// - testData: A pointer to a `ChainDataSource` which provides helper methods and simple access to accounts
|
||||
// and balances within the chain.
|
||||
// - reporter: An instance of `SimulationReporter` used to report the results of the simulation.
|
||||
// If no valid message can be provided, the factory method should call `reporter.Skip("some comment")`
|
||||
// with both `signer` and `msg` set to nil.
|
||||
//
|
||||
// Returns:
|
||||
// - signer: A slice of `SimAccount` representing the proposed signers.
|
||||
// - msg: An instance of `sdk.Msg` representing the message to be delivered.
|
||||
FactoryMethod func(ctx context.Context, testData *ChainDataSource, reporter SimulationReporter) (signer []SimAccount, msg sdk.Msg)
|
||||
|
||||
// FactoryMethodWithFutureOps extended message factory method for the gov module or others that have to schedule operations for a future block.
|
||||
|
||||
Reference in New Issue
Block a user