builtInFunctions

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2022 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MetadataPaused is the location of paused flag in the mect global meta data
	MetadataPaused = 1
	// MetadataLimitedTransfer is the location of limited transfer flag in the mect global meta data
	MetadataLimitedTransfer = 2
	// BurnRoleForAll is the location of burn role for all flag in the mect global meta data
	BurnRoleForAll = 4
)
View Source
const (
	// MetadataFrozen is the location of frozen flag in the mect 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 ErrAddressIsNotMECTSystemSC = errors.New("destination is not system sc address")

ErrAddressIsNotMECTSystemSC 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 mect 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 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 ErrInsufficientQuantityMECT = errors.New("insufficient quantity")

ErrInsufficientQuantityMECT signals the funds are insufficient for the MECT 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 ErrInvalidLiquidityForMECT = errors.New("invalid liquidity for MECT")

ErrInvalidLiquidityForMECT signals that liquidity is invalid for MECT

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 mect")

ErrInvalidNonce signals that invalid nonce for mect

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 ErrMECTIsFrozenForAccount = errors.New("account is frozen for this mect token")

ErrMECTIsFrozenForAccount signals that account is frozen for given mect token

View Source
var ErrMECTTokenIsPaused = errors.New("mect token is paused")

ErrMECTTokenIsPaused signals that mect token is paused

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 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 ErrNilMECTData = errors.New("nil mect data")

ErrNilMECTData signals that MECT data does not exist

View Source
var ErrNilMECTNFTStorageHandler = errors.New("nil mect nft storage handler")

ErrNilMECTNFTStorageHandler signals that a nil nft storage 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 NewMECTBurnFunc

func NewMECTBurnFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.MECTGlobalSettingsHandler,
	disableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*mectBurn, error)

NewMECTBurnFunc returns the mect burn built-in function component

func NewMECTDataStorage

func NewMECTDataStorage(args ArgsNewMECTDataStorage) (*mectDataStorage, error)

NewMECTDataStorage creates a new mect data storage handler

func NewMECTDeleteMetadataFunc

func NewMECTDeleteMetadataFunc(
	args ArgsNewMECTDeleteMetadata,
) (*mectDeleteMetaData, error)

NewMECTDeleteMetadataFunc returns the mect metadata deletion built-in function component

func NewMECTFreezeWipeFunc

func NewMECTFreezeWipeFunc(
	marshaller vmcommon.Marshalizer,
	freeze bool,
	wipe bool,
) (*mectFreezeWipe, error)

NewMECTFreezeWipeFunc returns the mect freeze/un-freeze/wipe built-in function component

func NewMECTGlobalSettingsFunc

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

NewMECTGlobalSettingsFunc returns the mect pause/un-pause built-in function component

func NewMECTLocalBurnFunc

func NewMECTLocalBurnFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedMECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
) (*mectLocalBurn, error)

NewMECTLocalBurnFunc returns the mect local burn built-in function component

func NewMECTLocalMintFunc

func NewMECTLocalMintFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.MECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
) (*mectLocalMint, error)

NewMECTLocalMintFunc returns the mect local mint built-in function component

func NewMECTNFTAddQuantityFunc

func NewMECTNFTAddQuantityFunc(
	funcGasCost uint64,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
	globalSettingsHandler vmcommon.MECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
	valueLengthCheckEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*mectNFTAddQuantity, error)

NewMECTNFTAddQuantityFunc returns the mect NFT add quantity built-in function component

func NewMECTNFTAddUriFunc

func NewMECTNFTAddUriFunc(
	funcGasCost uint64,
	gasConfig vmcommon.BaseOperationCost,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
	globalSettingsHandler vmcommon.MECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*mectNFTAddUri, error)

NewMECTNFTAddUriFunc returns the mect NFT add URI built-in function component

func NewMECTNFTBurnFunc

func NewMECTNFTBurnFunc(
	funcGasCost uint64,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
	globalSettingsHandler vmcommon.ExtendedMECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
) (*mectNFTBurn, error)

NewMECTNFTBurnFunc returns the mect NFT burn built-in function component

func NewMECTNFTCreateFunc

func NewMECTNFTCreateFunc(
	funcGasCost uint64,
	gasConfig vmcommon.BaseOperationCost,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.MECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
	accounts vmcommon.AccountsAdapter,
	valueLengthCheckEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*mectNFTCreate, error)

NewMECTNFTCreateFunc returns the mect NFT create built-in function component

func NewMECTNFTCreateRoleTransfer

func NewMECTNFTCreateRoleTransfer(
	marshaller vmcommon.Marshalizer,
	accounts vmcommon.AccountsAdapter,
	shardCoordinator vmcommon.Coordinator,
) (*mectNFTCreateRoleTransfer, error)

NewMECTNFTCreateRoleTransfer returns the mect NFT create role transfer built-in function component

func NewMECTNFTMultiTransferFunc

func NewMECTNFTMultiTransferFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedMECTGlobalSettingsHandler,
	accounts vmcommon.AccountsAdapter,
	shardCoordinator vmcommon.Coordinator,
	gasConfig vmcommon.BaseOperationCost,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
	roleHandler vmcommon.MECTRoleHandler,
	transferToMetaEnableEpoch uint32,
	checkCorrectTokenIDEnableEpoch uint32,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
) (*mectNFTMultiTransfer, error)

NewMECTNFTMultiTransferFunc returns the mect NFT multi transfer built-in function component

func NewMECTNFTTransferFunc

func NewMECTNFTTransferFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedMECTGlobalSettingsHandler,
	accounts vmcommon.AccountsAdapter,
	shardCoordinator vmcommon.Coordinator,
	gasConfig vmcommon.BaseOperationCost,
	rolesHandler vmcommon.MECTRoleHandler,
	transferToMetaEnableEpoch uint32,
	checkZeroTransferEnableEpoch uint32,
	checkCorrectTokenIDEnableEpoch uint32,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
	epochNotifier vmcommon.EpochNotifier,
) (*mectNFTTransfer, error)

NewMECTNFTTransferFunc returns the mect NFT transfer built-in function component

func NewMECTNFTUpdateAttributesFunc

func NewMECTNFTUpdateAttributesFunc(
	funcGasCost uint64,
	gasConfig vmcommon.BaseOperationCost,
	mectStorageHandler vmcommon.MECTNFTStorageHandler,
	globalSettingsHandler vmcommon.MECTGlobalSettingsHandler,
	rolesHandler vmcommon.MECTRoleHandler,
	activationEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*mectNFTupdate, error)

NewMECTNFTUpdateAttributesFunc returns the mect NFT update attribute built-in function component

func NewMECTRolesFunc

func NewMECTRolesFunc(
	marshaller vmcommon.Marshalizer,
	set bool,
) (*mectRoles, error)

NewMECTRolesFunc returns the mect change roles built-in function component

func NewMECTTransferFunc

func NewMECTTransferFunc(
	funcGasCost uint64,
	marshaller vmcommon.Marshalizer,
	globalSettingsHandler vmcommon.ExtendedMECTGlobalSettingsHandler,
	shardCoordinator vmcommon.Coordinator,
	rolesHandler vmcommon.MECTRoleHandler,
	transferToMetaEnableEpoch uint32,
	checkCorrectTokenIDEnableEpoch uint32,
	epochNotifier vmcommon.EpochNotifier,
) (*mectTransfer, error)

NewMECTTransferFunc returns the mect transfer built-in function component

func NewMECTTransferRoleAddressFunc

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

NewMECTTransferRoleAddressFunc returns the mect 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
	MECTNFTImprovementV1ActivationEpoch uint32
	MECTTransferRoleEnableEpoch         uint32
	GlobalMintBurnDisableEpoch          uint32
	MECTTransferToMetaEnableEpoch       uint32
	NFTCreateMultiShardEnableEpoch      uint32
	SaveNFTToSystemAccountEnableEpoch   uint32
	CheckCorrectTokenIDEnableEpoch      uint32
	SendMECTMetadataAlwaysEnableEpoch   uint32
	CheckFunctionArgumentEnableEpoch    uint32
	FixAsyncCallbackCheckEnableEpoch    uint32
	FixOldTokenLiquidityEnableEpoch     uint32
	MaxNumOfAddressesForTransferRole    uint32
	ConfigAddress                       []byte
}

ArgsCreateBuiltInFunctionContainer defines the input arguments to create built in functions container

type ArgsNewMECTDataStorage

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

ArgsNewMECTDataStorage defines the argument list for new mect data storage handler

type ArgsNewMECTDeleteMetadata

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

ArgsNewMECTDeleteMetadata defines the argument list for new mect delete metadata built in function

type MECTGlobalMetadata

type MECTGlobalMetadata struct {
	Paused          bool
	LimitedTransfer bool
	BurnRoleForAll  bool
}

MECTGlobalMetadata represents mect global metadata saved on system account

func MECTGlobalMetadataFromBytes

func MECTGlobalMetadataFromBytes(bytes []byte) MECTGlobalMetadata

MECTGlobalMetadataFromBytes creates a metadata object from bytes

func (*MECTGlobalMetadata) ToBytes

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

ToBytes converts the metadata to bytes

type MECTUserMetadata

type MECTUserMetadata struct {
	Frozen bool
}

MECTUserMetadata represents mect user metadata saved on every account

func MECTUserMetadataFromBytes

func MECTUserMetadataFromBytes(bytes []byte) MECTUserMetadata

MECTUserMetadataFromBytes creates a metadata object from bytes

func (*MECTUserMetadata) ToBytes

func (metadata *MECTUserMetadata) 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