builtInFunctions

package
v1.999.0 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2022 License: GPL-3.0 Imports: 20 Imported by: 4

Documentation

Index

Constants

View Source
const (
	// MetadataPaused is the location of paused flag in the esdt global meta data
	MetadataPaused = 1
	// MetadataLimitedTransfer is the location of limited transfer flag in the esdt global meta data
	MetadataLimitedTransfer = 2
	// BurnRoleForAll is the location of burn role for all flag in the esdt global meta data
	BurnRoleForAll = 4
)
View Source
const (
	// MetadataFrozen is the location of frozen flag in the esdt user meta data
	MetadataFrozen = 1
)

Variables

View Source
var ErrAccountNotPayable = errors.New("sending value to non payable contract")

ErrAccountNotPayable will be sent when trying to send tokens to a non-payableCheck account

View Source
var ErrActionNotAllowed = errors.New("action is not allowed")

ErrActionNotAllowed signals that action is not allowed

View Source
var ErrAddressIsNotAllowed = errors.New("address is not allowed to do the action")

ErrAddressIsNotAllowed signals that sender is not allowed to do the action

View Source
var ErrAddressIsNotESDTSystemSC = errors.New("destination is not system sc address")

ErrAddressIsNotESDTSystemSC signals that destination is not a system sc address

View Source
var ErrBuiltInFunctionCalledWithValue = errors.New("built in function called with tx value is not allowed")

ErrBuiltInFunctionCalledWithValue signals that builtin function was called with value that is not allowed

View Source
var ErrCallerIsNotTheDNSAddress = errors.New("not a dns address")

ErrCallerIsNotTheDNSAddress signals that called address is not the DNS address

View Source
var ErrCannotWipeAccountNotFrozen = errors.New("cannot wipe because the account is not frozen for this esdt token")

ErrCannotWipeAccountNotFrozen signals that account isn't frozen so the wipe is not possible

View Source
var ErrContainerKeyAlreadyExists = errors.New("provided key already exists in container")

ErrContainerKeyAlreadyExists signals that an element was already set in the container's map

View Source
var ErrESDTIsFrozenForAccount = errors.New("account is frozen for this esdt token")

ErrESDTIsFrozenForAccount signals that account is frozen for given esdt token

View Source
var ErrESDTTokenIsPaused = errors.New("esdt token is paused")

ErrESDTTokenIsPaused signals that esdt token is paused

View Source
var ErrEmptyFunctionName = errors.New("empty function name")

ErrEmptyFunctionName signals that an empty function name has been provided

View Source
var ErrInsufficientFunds = errors.New("insufficient funds")

ErrInsufficientFunds signals the funds are insufficient for the move balance operation but the transaction fee is covered by the current balance

View Source
var ErrInsufficientQuantityESDT = errors.New("insufficient quantity")

ErrInsufficientQuantityESDT signals the funds are insufficient for the ESDT transfer

View Source
var ErrInvalidAddressLength = errors.New("invalid address length")

ErrInvalidAddressLength signals that address length is invalid

View Source
var ErrInvalidArguments = errors.New("invalid arguments to process built-in function")

ErrInvalidArguments signals that invalid arguments were given to process built-in function

View Source
var ErrInvalidContainerKey = errors.New("element does not exist in container")

ErrInvalidContainerKey signals that an element does not exist in the container's map

View Source
var ErrInvalidLiquidityForESDT = errors.New("invalid liquidity for ESDT")

ErrInvalidLiquidityForESDT signals that liquidity is invalid for ESDT

View Source
var ErrInvalidMaxNumAddresses = errors.New("invalid max number of addresses")

ErrInvalidMaxNumAddresses signals that there is an invalid max number of addresses

View Source
var ErrInvalidMetadata = errors.New("invalid metadata")

ErrInvalidMetadata signals that invalid metadata was provided

View Source
var ErrInvalidNFTQuantity = errors.New("invalid NFT quantity")

ErrInvalidNFTQuantity signals that invalid NFT quantity was provided

View Source
var ErrInvalidNonce = errors.New("invalid nonce for esdt")

ErrInvalidNonce signals that invalid nonce for esdt

View Source
var ErrInvalidNumOfArgs = errors.New("invalid number of arguments")

ErrInvalidNumOfArgs signals that the number of arguments is invalid

View Source
var ErrInvalidRcvAddr = errors.New("invalid receiver address")

ErrInvalidRcvAddr signals that an invalid receiver address was provided

View Source
var ErrInvalidTokenID = errors.New("invalid tokenID")

ErrInvalidTokenID signals that invalid tokenID was provided

View Source
var ErrNFTDoesNotHaveMetadata = errors.New("NFT does not have metadata")

ErrNFTDoesNotHaveMetadata signals that NFT does not have metadata

View Source
var ErrNFTTokenDoesNotExist = errors.New("NFT token does not exist")

ErrNFTTokenDoesNotExist signals that NFT token does not exist

View Source
var ErrNegativeValue = errors.New("negative value")

ErrNegativeValue signals that a negative value has been detected and it is not allowed

View Source
var ErrNewNFTDataOnSenderAddress = errors.New("new NFT data on sender")

ErrNewNFTDataOnSenderAddress signals that a new NFT data was found on the sender address

View Source
var ErrNilAccountsAdapter = errors.New("nil AccountsAdapter")

ErrNilAccountsAdapter defines the error when trying to use a nil AccountsAddapter

View Source
var ErrNilContainerElement = errors.New("element cannot be nil")

ErrNilContainerElement signals when trying to add a nil element in the container

View Source
var ErrNilDnsAddresses = errors.New("nil dns addresses map")

ErrNilDnsAddresses signals that nil dns addresses map was provided

View Source
var ErrNilESDTData = errors.New("nil esdt data")

ErrNilESDTData signals that ESDT data does not exist

View Source
var ErrNilESDTNFTStorageHandler = errors.New("nil esdt nft storage handler")

ErrNilESDTNFTStorageHandler signals that a nil nft storage handler has been provided

View Source
var ErrNilEpochHandler = errors.New("nil epoch handler")

ErrNilEpochHandler signals that a nil epoch handler was provided

View Source
var ErrNilGlobalSettingsHandler = errors.New("nil pause handler")

ErrNilGlobalSettingsHandler signals that nil pause handler has been provided

View Source
var ErrNilMarshalizer = errors.New("nil Marshalizer")

ErrNilMarshalizer signals that an operation has been attempted to or with a nil Marshalizer implementation

View Source
var ErrNilPayableHandler = errors.New("nil payableHandler was provided")

ErrNilPayableHandler signals that nil payableHandler was provided

View Source
var ErrNilRolesHandler = errors.New("nil roles handler")

ErrNilRolesHandler signals that nil roles handler has been provided

View Source
var ErrNilSCDestAccount = errors.New("nil destination SC account")

ErrNilSCDestAccount signals that destination account is nil

View Source
var ErrNilShardCoordinator = errors.New("nil shard coordinator")

ErrNilShardCoordinator signals that an operation has been attempted to or with a nil shard coordinator

View Source
var ErrNilTransactionHandler = errors.New("nil transaction handler")

ErrNilTransactionHandler signals that a nil transaction handler has been provided

View Source
var ErrNilUserAccount = errors.New("nil user account")

ErrNilUserAccount signals that nil user account was provided

View Source
var ErrNilValue = errors.New("nil value")

ErrNilValue signals the value is nil

View Source
var ErrNilVmInput = errors.New("nil vm input")

ErrNilVmInput signals that provided vm input is nil

View Source
var ErrNotEnoughGas = errors.New("not enough gas was sent in the transaction")

ErrNotEnoughGas signals that not enough gas has been provided

View Source
var ErrOnlyFungibleTokensHaveBalanceTransfer = errors.New("only fungible tokens have balance transfer")

ErrOnlyFungibleTokensHaveBalanceTransfer signals that only fungible tokens have balance transfer

View Source
var ErrOnlySystemAccountAccepted = errors.New("only system account is accepted")

ErrOnlySystemAccountAccepted signals that only system account is accepted

View Source
var ErrOperationNotPermitted = errors.New("operation in account not permitted")

ErrOperationNotPermitted signals that operation is not permitted

View Source
var ErrTokenHasValidMetadata = errors.New("token has valid metadata")

ErrTokenHasValidMetadata signals that token has a valid metadata

View Source
var ErrTooManyTransferAddresses = errors.New("too many transfer addresses")

ErrTooManyTransferAddresses signals that too many transfer address roles has been added

View Source
var ErrUserNameChangeIsDisabled = errors.New("user name change is disabled")

ErrUserNameChangeIsDisabled signals the user name change is not allowed

View Source
var ErrWrongTypeAssertion = errors.New("wrong type assertion")

ErrWrongTypeAssertion signals that an type assertion failed

View Source
var ErrWrongTypeInContainer = errors.New("wrong type of object inside container")

ErrWrongTypeInContainer signals that a wrong type of object was found in container

Functions

func NewBuiltInFunctionContainer

func NewBuiltInFunctionContainer() *functionContainer

NewBuiltInFunctionContainer will create a new instance of a container

func NewBuiltInFunctionsCreator

func NewBuiltInFunctionsCreator(args ArgsCreateBuiltInFunctionContainer) (*builtInFuncCreator, error)

NewBuiltInFunctionsCreator creates a component which will instantiate the built in functions contracts

func NewChangeOwnerAddressFunc

func NewChangeOwnerAddressFunc(gasCost uint64) *changeOwnerAddress

NewChangeOwnerAddressFunc create a new change owner built in function

func NewClaimDeveloperRewardsFunc

func NewClaimDeveloperRewardsFunc(gasCost uint64) *claimDeveloperRewards

NewClaimDeveloperRewardsFunc returns a new developer rewards implementation

func NewESDTBurnFunc

func NewESDTBurnFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ESDTGlobalSettingsHandler,
	disableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtBurn, error)

NewESDTBurnFunc returns the esdt burn built-in function component

func NewESDTDataStorage

func NewESDTDataStorage(args ArgsNewESDTDataStorage) (*esdtDataStorage, error)

NewESDTDataStorage creates a new esdt data storage handler

func NewESDTDeleteMetadataFunc

func NewESDTDeleteMetadataFunc(
	args ArgsNewESDTDeleteMetadata,
) (*esdtDeleteMetaData, error)

NewESDTDeleteMetadataFunc returns the esdt metadata deletion built-in function component

func NewESDTFreezeWipeFunc

func NewESDTFreezeWipeFunc(
	marshaller vmcommon.Marshalizer,
	freeze bool,
	wipe bool,
) (*esdtFreezeWipe, error)

NewESDTFreezeWipeFunc returns the esdt freeze/un-freeze/wipe built-in function component

func NewESDTGlobalSettingsFunc

func NewESDTGlobalSettingsFunc(
	accounts vmcommon.AccountsAdapter,
	marshaller marshal.Marshalizer,
	set bool,
	function string,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtGlobalSettings, error)

NewESDTGlobalSettingsFunc returns the esdt pause/un-pause built-in function component

func NewESDTLocalBurnFunc

func NewESDTLocalBurnFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
) (*esdtLocalBurn, error)

NewESDTLocalBurnFunc returns the esdt local burn built-in function component

func NewESDTLocalMintFunc

func NewESDTLocalMintFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
) (*esdtLocalMint, error)

NewESDTLocalMintFunc returns the esdt local mint built-in function component

func NewESDTNFTAddQuantityFunc

func NewESDTNFTAddQuantityFunc(
	funcGasCost uint64,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
	globalSettingsHandler vmcommon.ESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
	valueLengthCheckEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtNFTAddQuantity, error)

NewESDTNFTAddQuantityFunc returns the esdt NFT add quantity built-in function component

func NewESDTNFTAddUriFunc

func NewESDTNFTAddUriFunc(
	funcGasCost uint64,
	gasConfig vmcommon.BaseOperationCost,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
	globalSettingsHandler vmcommon.ESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtNFTAddUri, error)

NewESDTNFTAddUriFunc returns the esdt NFT add URI built-in function component

func NewESDTNFTBurnFunc

func NewESDTNFTBurnFunc(
	funcGasCost uint64,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
	globalSettingsHandler vmcommon.ExtendedESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
) (*esdtNFTBurn, error)

NewESDTNFTBurnFunc returns the esdt NFT burn built-in function component

func NewESDTNFTCreateFunc

func NewESDTNFTCreateFunc(
	funcGasCost uint64,
	gasConfig vmcommon.BaseOperationCost,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
	accounts vmcommon.AccountsAdapter,
	valueLengthCheckEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtNFTCreate, error)

NewESDTNFTCreateFunc returns the esdt NFT create built-in function component

func NewESDTNFTCreateRoleTransfer

func NewESDTNFTCreateRoleTransfer(
	marshaller vmcommon.Marshalizer,
	accounts vmcommon.AccountsAdapter,
	shardCoordinator vmcommon.Coordinator,
) (*esdtNFTCreateRoleTransfer, error)

NewESDTNFTCreateRoleTransfer returns the esdt NFT create role transfer built-in function component

func NewESDTNFTMultiTransferFunc

func NewESDTNFTMultiTransferFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedESDTGlobalSettingsHandler,
	accounts vmcommon.AccountsAdapter,
	shardCoordinator vmcommon.Coordinator,
	gasConfig vmcommon.BaseOperationCost,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
	roleHandler vmcommon.ESDTRoleHandler,
	transferToMetaEnableEpoch uint32,
	checkCorrectTokenIDEnableEpoch uint32,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
) (*esdtNFTMultiTransfer, error)

NewESDTNFTMultiTransferFunc returns the esdt NFT multi transfer built-in function component

func NewESDTNFTTransferFunc

func NewESDTNFTTransferFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedESDTGlobalSettingsHandler,
	accounts vmcommon.AccountsAdapter,
	shardCoordinator vmcommon.Coordinator,
	gasConfig vmcommon.BaseOperationCost,
	rolesHandler vmcommon.ESDTRoleHandler,
	transferToMetaEnableEpoch uint32,
	checkZeroTransferEnableEpoch uint32,
	checkCorrectTokenIDEnableEpoch uint32,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtNFTTransfer, error)

NewESDTNFTTransferFunc returns the esdt NFT transfer built-in function component

func NewESDTNFTUpdateAttributesFunc

func NewESDTNFTUpdateAttributesFunc(
	funcGasCost uint64,
	gasConfig vmcommon.BaseOperationCost,
	esdtStorageHandler vmcommon.ESDTNFTStorageHandler,
	globalSettingsHandler vmcommon.ESDTGlobalSettingsHandler,
	rolesHandler vmcommon.ESDTRoleHandler,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtNFTupdate, error)

NewESDTNFTUpdateAttributesFunc returns the esdt NFT update attribute built-in function component

func NewESDTRolesFunc

func NewESDTRolesFunc(
	marshaller vmcommon.Marshalizer,
	set bool,
) (*esdtRoles, error)

NewESDTRolesFunc returns the esdt change roles built-in function component

func NewESDTTransferFunc

func NewESDTTransferFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedESDTGlobalSettingsHandler,
	shardCoordinator vmcommon.Coordinator,
	rolesHandler vmcommon.ESDTRoleHandler,
	transferToMetaEnableEpoch uint32,
	checkCorrectTokenIDEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*esdtTransfer, error)

NewESDTTransferFunc returns the esdt transfer built-in function component

func NewESDTTransferRoleAddressFunc

func NewESDTTransferRoleAddressFunc(
	accounts vmcommon.AccountsAdapter,
	marshaller marshal.Marshalizer,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
	maxNumAddresses uint32,
	set bool,
) (*esdtTransferAddress, error)

NewESDTTransferRoleAddressFunc returns the esdt transfer role address handler built-in function component

func NewPayableCheckFunc

func NewPayableCheckFunc(
	payable vmcommon.PayableHandler,
	checkFunctionArgumentsEnableEpoch uint32,
	fixAsyncCallbackCheckEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*payableCheck, error)

NewPayableCheckFunc returns a new component which checks if destination is payableCheck when needed

func NewSaveKeyValueStorageFunc

func NewSaveKeyValueStorageFunc(
	gasConfig vmcommon.BaseOperationCost,
	funcGasCost uint64,
) (*saveKeyValueStorage, error)

NewSaveKeyValueStorageFunc returns the save key-value storage built in function

func NewSaveUserNameFunc

func NewSaveUserNameFunc(
	gasCost uint64,
	mapDnsAddresses map[string]struct{},
	enableChange bool,
) (*saveUserName, error)

NewSaveUserNameFunc returns a username built in function implementation

Types

type ArgsCreateBuiltInFunctionContainer

type ArgsCreateBuiltInFunctionContainer struct {
	GasMap                              map[string]map[string]uint64
	MapDNSAddresses                     map[string]struct{}
	EnableUserNameChange                bool
	Marshalizer                         vmcommon.Marshalizer
	Accounts                            vmcommon.AccountsAdapter
	ShardCoordinator                    vmcommon.Coordinator
	EpochNotifier                       vmcommon.EpochNotifier
	ESDTNFTImprovementV1ActivationEpoch uint32
	ESDTTransferRoleEnableEpoch         uint32
	GlobalMintBurnDisableEpoch          uint32
	ESDTTransferToMetaEnableEpoch       uint32
	NFTCreateMultiShardEnableEpoch      uint32
	SaveNFTToSystemAccountEnableEpoch   uint32
	CheckCorrectTokenIDEnableEpoch      uint32
	SendESDTMetadataAlwaysEnableEpoch   uint32
	CheckFunctionArgumentEnableEpoch    uint32
	FixAsyncCallbackCheckEnableEpoch    uint32
	FixOldTokenLiquidityEnableEpoch     uint32
	MaxNumOfAddressesForTransferRole    uint32
	ConfigAddress                       []byte
}

ArgsCreateBuiltInFunctionContainer defines the input arguments to create built in functions container

type ArgsNewESDTDataStorage

type ArgsNewESDTDataStorage struct {
	Accounts                        vmcommon.AccountsAdapter
	GlobalSettingsHandler           vmcommon.ESDTGlobalSettingsHandler
	Marshalizer                     vmcommon.Marshalizer
	SaveToSystemEnableEpoch         uint32
	SendAlwaysEnableEpoch           uint32
	FixOldTokenLiquidityEnableEpoch uint32
	EpochNotifier                   vmcommon.EpochNotifier
	ShardCoordinator                vmcommon.Coordinator
}

ArgsNewESDTDataStorage defines the argument list for new esdt data storage handler

type ArgsNewESDTDeleteMetadata

type ArgsNewESDTDeleteMetadata struct {
	FuncGasCost     uint64
	Marshalizer     vmcommon.Marshalizer
	Accounts        vmcommon.AccountsAdapter
	ActivationEpoch uint32
	EpochNotifier   vmcommon.EpochNotifier
	AllowedAddress  []byte
	Delete          bool
}

ArgsNewESDTDeleteMetadata defines the argument list for new esdt delete metadata built in function

type ESDTGlobalMetadata

type ESDTGlobalMetadata struct {
	Paused          bool
	LimitedTransfer bool
	BurnRoleForAll  bool
}

ESDTGlobalMetadata represents esdt global metadata saved on system account

func ESDTGlobalMetadataFromBytes

func ESDTGlobalMetadataFromBytes(bytes []byte) ESDTGlobalMetadata

ESDTGlobalMetadataFromBytes creates a metadata object from bytes

func (*ESDTGlobalMetadata) ToBytes

func (metadata *ESDTGlobalMetadata) ToBytes() []byte

ToBytes converts the metadata to bytes

type ESDTUserMetadata

type ESDTUserMetadata struct {
	Frozen bool
}

ESDTUserMetadata represents esdt user metadata saved on every account

func ESDTUserMetadataFromBytes

func ESDTUserMetadataFromBytes(bytes []byte) ESDTUserMetadata

ESDTUserMetadataFromBytes creates a metadata object from bytes

func (*ESDTUserMetadata) ToBytes

func (metadata *ESDTUserMetadata) ToBytes() []byte

ToBytes converts the metadata to bytes

Jump to

Keyboard shortcuts

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