# Functions

GenerateMockAddress simulates creation of a new address by the protocol.
GetTokenNameFromKey extracts the token name from the given storage key; it does not check whether the key is indeed a token key or not.
IsDCDTKey returns true if the given storage key is DCDT-related.
IsNonceKey returns true if the given storage key belongs to an DCDT nonce.
IsRoleKey returns true if the given storage key belongs to an DCDT role.
IsSmartContractAddress verifies the address format.
IsTokenKey returns true if the given storage key belongs to an DCDT token.
MakeLastNonceKey creates the storage key corresponding to the last nonce of the given tokenName.
MakeTokenKey creates the storage key corresponding to the given tokenName.
MakeTokenRolesKey creates the storage key corresponding to the roles for the given tokenName.
NewAccountMap creates a new AccountMap instance.
NewBuiltinFunctionsWrapper creates a new BuiltinFunctionsWrapper with default dependencies.
NewMockAccountsAdapter instantiates a new MockAccountsAdapter.
NewMockGuardedAccountHandler -.
NewMockWorld creates a new MockWorld instance.

# Constants

SCAddressNumLeadingZeros is the number of zero bytes every smart contract address begins with.

# Variables

DCDTNonceKeyPrefix is the prefix of storage keys belonging to DCDT nonces.
DCDTRoleKeyPrefix is the prefix of storage keys belonging to DCDT roles.
DCDTTokenKeyPrefix is the prefix of storage keys belonging to DCDT tokens.
ErrBuiltinFuncWrapperNotInitialized means that the builtin function wrapper was used before initialization.
ErrInsufficientFunds signals the funds are insufficient for the move balance operation but the transaction fee is covered by the current balance.
ErrInvalidAddressLength indicates an incorrect length given for an address.
ErrMarshallingProto is raised when the object does not implement proto.Message.
ErrNegativeValue signals that a negative value has been detected and it is not allowed.
ErrNilWorldMock signals that the WorldMock is nil but shouldn't be.
ErrOperationNotPermitted indicates an operation rejected due to insufficient permissions.
ErrTrieHandlingNotImplemented indicates that no trie-related operations are currently implemented.
ErrUnmarshallingProto is raised when the object that needs to be unmarshaled does not implement proto.Message.
WorldMarshalizer is the global marshalizer to be used by the components of the BuiltinFunctionsWrapper.

# Structs

Account holds the account info.
BlockInfo contains metadata about a mocked block.
BuiltinFunctionsWrapper manages and initializes a BuiltInFunctionContainer along with its dependencies.
GogoProtoMarshalizer implements marshaling with protobuf.
MockAccountsAdapter is an implementation of AccountsAdapter based on MockWorld and the accounts within it.
MockDCDTData groups together all instances of a token (same token name, different nonces).
MockGuardedAccountHandler -.
MockWorld provides a mock representation of the blockchain to be used in VM tests.
NewAddressMock allows tests to specify what new addresses to generate.

# Interfaces

GogoProtoObj groups the necessary of a gogo protobuf marshalizeble object.

# Type aliases

AccountMap is a map from address to Account, also implementing the AccountsAdapter interface.