Documentation ¶
Index ¶
- Constants
- Variables
- func AdjustAccountBaseTokens(state kv.KVStore, account isc.AgentID, adjustment int64)
- func CheckLedger(state kv.KVStoreReader, checkpoint string)
- func CheckNonce(state kv.KVStoreReader, agentID isc.AgentID, nonce uint64) error
- func CommonAccount() isc.AgentID
- func CreditNFTToAccount(state kv.KVStore, agentID isc.AgentID, nft *isc.NFT)
- func CreditToAccount(state kv.KVStore, agentID isc.AgentID, assets *isc.Assets)
- func DebitFromAccount(state kv.KVStore, agentID isc.AgentID, assets *isc.Assets)
- func DebitNFTFromAccount(state kv.KVStore, agentID isc.AgentID, id iotago.NFTID)
- func DeleteFoundryOutput(state kv.KVStore, sn uint32)
- func DeleteNFTOutput(state kv.KVStore, id iotago.NFTID)
- func DeleteNativeTokenOutput(state kv.KVStore, nativeTokenID iotago.NativeTokenID)
- func GetAccountFungibleTokens(state kv.KVStoreReader, agentID isc.AgentID) *isc.Assets
- func GetAccountNFTs(state kv.KVStoreReader, agentID isc.AgentID) []iotago.NFTID
- func GetBaseTokensBalance(state kv.KVStoreReader, agentID isc.AgentID) uint64
- func GetFoundryOutput(state kv.KVStoreReader, sn uint32, chainID isc.ChainID) (*iotago.FoundryOutput, uint32, uint16)
- func GetNFTOutput(state kv.KVStoreReader, id iotago.NFTID) (*iotago.NFTOutput, uint32, uint16)
- func GetNativeTokenBalance(state kv.KVStoreReader, agentID isc.AgentID, ...) *big.Int
- func GetNativeTokenBalanceTotal(state kv.KVStoreReader, nativeTokenID iotago.NativeTokenID) *big.Int
- func GetNativeTokenOutput(state kv.KVStoreReader, nativeTokenID iotago.NativeTokenID, ...) (*iotago.BasicOutput, uint32, uint16)
- func GetNativeTokens(state kv.KVStoreReader, agentID isc.AgentID) iotago.NativeTokens
- func GetTotalL2FungibleTokens(state kv.KVStoreReader) *isc.Assets
- func GetTotalL2NFTs(state kv.KVStoreReader) []iotago.NFTID
- func HasEnoughForAllowance(state kv.KVStoreReader, agentID isc.AgentID, allowance *isc.Assets) bool
- func IncrementNonce(state kv.KVStore, callerAgentID isc.AgentID)
- func MoveBetweenAccounts(state kv.KVStore, fromAgentID, toAgentID isc.AgentID, assets *isc.Assets) error
- func MoveFoundryBetweenAccounts(state kv.KVStore, agentIDFrom, agentIDTo isc.AgentID, sn uint32)
- func MustGetNFTData(state kv.KVStoreReader, id iotago.NFTID) *isc.NFT
- func MustMoveBetweenAccounts(state kv.KVStore, fromAgentID, toAgentID isc.AgentID, assets *isc.Assets)
- func SaveFoundryOutput(state kv.KVStore, f *iotago.FoundryOutput, blockIndex uint32, ...)
- func SaveNFTOutput(state kv.KVStore, out *iotago.NFTOutput, blockIndex uint32, outputIndex uint16)
- func SaveNativeTokenOutput(state kv.KVStore, out *iotago.BasicOutput, blockIndex uint32, ...)
- func SetInitialState(state kv.KVStore, baseTokensOnAnchor uint64)
- type NFTOutputRec
- type StateAccess
Constants ¶
const ( ParamAccountNonce = "n" ParamAgentID = "a" ParamBalance = "B" ParamCollectionID = "C" ParamDestroyTokens = "y" ParamForceMinimumBaseTokens = "f" ParamFoundryOutputBin = "b" ParamFoundrySN = "s" ParamGasReserve = "g" ParamNFTAmount = "A" ParamNFTData = "e" ParamNFTID = "z" ParamNFTIDs = "i" ParamNativeTokenID = "N" ParamSupplyDeltaAbs = "d" ParamTokenScheme = "t" )
Variables ¶
var ( // Views ViewAccountFoundries = coreutil.ViewFunc("accountFoundries") ViewAccountNFTAmount = coreutil.ViewFunc("accountNFTAmount") ViewAccountNFTAmountInCollection = coreutil.ViewFunc("accountNFTAmountInCollection") ViewAccountNFTs = coreutil.ViewFunc("accountNFTs") ViewAccountNFTsInCollection = coreutil.ViewFunc("accountNFTsInCollection") ViewAccounts = coreutil.ViewFunc("accounts") ViewBalance = coreutil.ViewFunc("balance") ViewBalanceBaseToken = coreutil.ViewFunc("balanceBaseToken") ViewBalanceNativeToken = coreutil.ViewFunc("balanceNativeToken") ViewFoundryOutput = coreutil.ViewFunc("foundryOutput") ViewGetAccountNonce = coreutil.ViewFunc("getAccountNonce") ViewGetNativeTokenIDRegistry = coreutil.ViewFunc("getNativeTokenIDRegistry") ViewNFTData = coreutil.ViewFunc("nftData") ViewTotalAssets = coreutil.ViewFunc("totalAssets") // Funcs FuncDeposit = coreutil.Func("deposit") FuncFoundryCreateNew = coreutil.Func("foundryCreateNew") FuncFoundryDestroy = coreutil.Func("foundryDestroy") FuncFoundryModifySupply = coreutil.Func("foundryModifySupply") FuncTransferAccountToChain = coreutil.Func("transferAccountToChain") FuncTransferAllowanceTo = coreutil.Func("transferAllowanceTo") FuncWithdraw = coreutil.Func("withdraw") )
var ( ErrNotEnoughFunds = coreerrors.Register("not enough funds").Create() ErrNotEnoughBaseTokensForStorageDeposit = coreerrors.Register("not enough base tokens for storage deposit").Create() ErrNotEnoughAllowance = coreerrors.Register("not enough allowance").Create() ErrBadAmount = coreerrors.Register("bad native asset amount").Create() ErrRepeatingFoundrySerialNumber = coreerrors.Register("repeating serial number of the foundry").Create() ErrFoundryNotFound = coreerrors.Register("foundry not found").Create() ErrOverflow = coreerrors.Register("overflow in token arithmetics").Create() ErrTooManyNFTsInAllowance = coreerrors.Register("expected at most 1 NFT in allowance").Create() ErrNFTIDNotFound = coreerrors.Register("NFTID not found").Create() )
var Contract = coreutil.NewContract(coreutil.CoreContractAccounts)
var Processor = Contract.Processor(nil, FuncDeposit.WithHandler(deposit), FuncFoundryCreateNew.WithHandler(foundryCreateNew), FuncFoundryDestroy.WithHandler(foundryDestroy), FuncFoundryModifySupply.WithHandler(foundryModifySupply), FuncTransferAccountToChain.WithHandler(transferAccountToChain), FuncTransferAllowanceTo.WithHandler(transferAllowanceTo), FuncWithdraw.WithHandler(withdraw), ViewAccountNFTs.WithHandler(viewAccountNFTs), ViewAccountNFTAmount.WithHandler(viewAccountNFTAmount), ViewAccountNFTsInCollection.WithHandler(viewAccountNFTsInCollection), ViewAccountNFTAmountInCollection.WithHandler(viewAccountNFTAmountInCollection), ViewAccountFoundries.WithHandler(viewAccountFoundries), ViewAccounts.WithHandler(viewAccounts), ViewBalance.WithHandler(viewBalance), ViewBalanceBaseToken.WithHandler(viewBalanceBaseToken), ViewBalanceNativeToken.WithHandler(viewBalanceNativeToken), ViewFoundryOutput.WithHandler(viewFoundryOutput), ViewGetAccountNonce.WithHandler(viewGetAccountNonce), ViewGetNativeTokenIDRegistry.WithHandler(viewGetNativeTokenIDRegistry), ViewNFTData.WithHandler(viewNFTData), ViewTotalAssets.WithHandler(viewTotalAssets), )
Functions ¶
func AdjustAccountBaseTokens ¶ added in v0.3.0
func CheckLedger ¶ added in v0.3.7
func CheckLedger(state kv.KVStoreReader, checkpoint string)
only used in internal tests and solo
func CheckNonce ¶
func CommonAccount ¶ added in v1.0.3
func CreditNFTToAccount ¶ added in v0.3.0
CreditNFTToAccount credits an NFT to the on chain ledger
func CreditToAccount ¶
CreditToAccount brings new funds to the on chain ledger NOTE: this function does not take NFTs into account
func DebitFromAccount ¶
DebitFromAccount takes out assets balance the on chain ledger. If not enough it panics NOTE: this function does not take NFTs into account
func DebitNFTFromAccount ¶ added in v0.3.0
DebitNFTFromAccount removes an NFT from an account. If the account does not own the nft, it panics.
func DeleteFoundryOutput ¶ added in v0.3.0
DeleteFoundryOutput deletes foundry output from the map of all foundries
func DeleteNativeTokenOutput ¶ added in v0.3.0
func DeleteNativeTokenOutput(state kv.KVStore, nativeTokenID iotago.NativeTokenID)
func GetAccountFungibleTokens ¶ added in v1.0.3
GetAccountFungibleTokens returns all fungible tokens belonging to the agentID on the state
func GetAccountNFTs ¶ added in v0.3.0
GetAccountNFTs returns all NFTs belonging to the agentID on the state
func GetBaseTokensBalance ¶ added in v0.3.0
func GetBaseTokensBalance(state kv.KVStoreReader, agentID isc.AgentID) uint64
func GetFoundryOutput ¶ added in v0.3.0
func GetFoundryOutput(state kv.KVStoreReader, sn uint32, chainID isc.ChainID) (*iotago.FoundryOutput, uint32, uint16)
GetFoundryOutput returns foundry output, its block number and output index
func GetNFTOutput ¶ added in v0.3.0
func GetNativeTokenBalance ¶ added in v0.3.0
func GetNativeTokenBalance(state kv.KVStoreReader, agentID isc.AgentID, nativeTokenID iotago.NativeTokenID) *big.Int
func GetNativeTokenBalanceTotal ¶ added in v0.3.0
func GetNativeTokenBalanceTotal(state kv.KVStoreReader, nativeTokenID iotago.NativeTokenID) *big.Int
func GetNativeTokenOutput ¶ added in v0.3.0
func GetNativeTokenOutput(state kv.KVStoreReader, nativeTokenID iotago.NativeTokenID, chainID isc.ChainID) (*iotago.BasicOutput, uint32, uint16)
func GetNativeTokens ¶ added in v1.0.3
func GetNativeTokens(state kv.KVStoreReader, agentID isc.AgentID) iotago.NativeTokens
func GetTotalL2FungibleTokens ¶ added in v1.0.3
func GetTotalL2FungibleTokens(state kv.KVStoreReader) *isc.Assets
func GetTotalL2NFTs ¶ added in v0.3.0
func GetTotalL2NFTs(state kv.KVStoreReader) []iotago.NFTID
func HasEnoughForAllowance ¶ added in v0.3.0
HasEnoughForAllowance checks whether an account has enough balance to cover for the allowance
func IncrementNonce ¶ added in v1.0.3
func MoveBetweenAccounts ¶
func MoveBetweenAccounts(state kv.KVStore, fromAgentID, toAgentID isc.AgentID, assets *isc.Assets) error
MoveBetweenAccounts moves assets between on-chain accounts
func MoveFoundryBetweenAccounts ¶ added in v0.3.0
MoveFoundryBetweenAccounts changes ownership of the foundry
func MustGetNFTData ¶
func MustMoveBetweenAccounts ¶ added in v0.3.0
func SaveFoundryOutput ¶ added in v0.3.0
func SaveFoundryOutput(state kv.KVStore, f *iotago.FoundryOutput, blockIndex uint32, outputIndex uint16)
SaveFoundryOutput stores foundry output into the map of all foundry outputs (compressed form)
func SaveNFTOutput ¶ added in v0.3.0
SaveNFTOutput map tokenID -> foundryRec
func SaveNativeTokenOutput ¶ added in v0.3.0
func SaveNativeTokenOutput(state kv.KVStore, out *iotago.BasicOutput, blockIndex uint32, outputIndex uint16)
SaveNativeTokenOutput map nativeTokenID -> foundryRec
func SetInitialState ¶ added in v1.0.3
this expects the origin amount minus SD
Types ¶
type NFTOutputRec ¶ added in v0.3.0
func (*NFTOutputRec) Bytes ¶ added in v0.3.0
func (rec *NFTOutputRec) Bytes() []byte
func (*NFTOutputRec) String ¶ added in v0.3.0
func (rec *NFTOutputRec) String() string
type StateAccess ¶ added in v1.0.3
type StateAccess struct {
// contains filtered or unexported fields
}
func NewStateAccess ¶ added in v1.0.3
func NewStateAccess(store kv.KVStoreReader) *StateAccess
func (*StateAccess) AccountExists ¶ added in v1.0.3
func (sa *StateAccess) AccountExists(agentID isc.AgentID) bool