Documentation ¶
Index ¶
- func NewPubSubFilterer(tx *txs.Tx) pubsub.Filterer
- type AssetDefinition
- type AssetIDChangeAddr
- type Balance
- type BuildGenesisArgs
- type BuildGenesisReply
- type Client
- type ClientHolder
- type ClientOwners
- type ClientSendOutput
- type Config
- type CreateAssetArgs
- type CreateNFTAssetArgs
- type ExportArgs
- type ExportKeyArgs
- type ExportKeyReply
- type Factory
- type FormattedAssetID
- type Genesis
- type GenesisAsset
- type GetAddressTxsArgs
- type GetAddressTxsReply
- type GetAllBalancesArgs
- type GetAllBalancesReply
- type GetAssetDescriptionArgs
- type GetAssetDescriptionReply
- type GetBalanceArgs
- type GetBalanceReply
- type GetTxStatusReply
- type Holder
- type ImportArgs
- type ImportKeyArgs
- type ImportKeyReply
- type MintArgs
- type MintNFTArgs
- type Owners
- type SendArgs
- type SendMultipleArgs
- type SendNFTArgs
- type SendOutput
- type Service
- func (s *Service) CreateAddress(_ *http.Request, args *api.UserPass, reply *api.JSONAddress) error
- func (s *Service) CreateAsset(_ *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
- func (s *Service) CreateFixedCapAsset(_ *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
- func (s *Service) CreateNFTAsset(_ *http.Request, args *CreateNFTAssetArgs, reply *AssetIDChangeAddr) error
- func (s *Service) CreateVariableCapAsset(_ *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
- func (s *Service) Export(_ *http.Request, args *ExportArgs, reply *api.JSONTxIDChangeAddr) error
- func (s *Service) ExportKey(_ *http.Request, args *ExportKeyArgs, reply *ExportKeyReply) error
- func (s *Service) GetAddressTxs(_ *http.Request, args *GetAddressTxsArgs, reply *GetAddressTxsReply) error
- func (s *Service) GetAllBalances(_ *http.Request, args *GetAllBalancesArgs, reply *GetAllBalancesReply) error
- func (s *Service) GetAssetDescription(_ *http.Request, args *GetAssetDescriptionArgs, ...) error
- func (s *Service) GetBalance(_ *http.Request, args *GetBalanceArgs, reply *GetBalanceReply) error
- func (s *Service) GetTx(_ *http.Request, args *api.GetTxArgs, reply *api.GetTxReply) error
- func (s *Service) GetTxStatus(_ *http.Request, args *api.JSONTxID, reply *GetTxStatusReply) error
- func (s *Service) GetUTXOs(_ *http.Request, args *api.GetUTXOsArgs, reply *api.GetUTXOsReply) error
- func (s *Service) Import(_ *http.Request, args *ImportArgs, reply *api.JSONTxID) error
- func (s *Service) ImportKey(_ *http.Request, args *ImportKeyArgs, reply *api.JSONAddress) error
- func (s *Service) IssueStopVertex(_ *http.Request, _, _ *struct{}) error
- func (s *Service) IssueTx(_ *http.Request, args *api.FormattedTx, reply *api.JSONTxID) error
- func (s *Service) ListAddresses(_ *http.Request, args *api.UserPass, response *api.JSONAddresses) error
- func (s *Service) Mint(_ *http.Request, args *MintArgs, reply *api.JSONTxIDChangeAddr) error
- func (s *Service) MintNFT(_ *http.Request, args *MintNFTArgs, reply *api.JSONTxIDChangeAddr) error
- func (s *Service) Send(r *http.Request, args *SendArgs, reply *api.JSONTxIDChangeAddr) error
- func (s *Service) SendMultiple(_ *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
- func (s *Service) SendNFT(_ *http.Request, args *SendNFTArgs, reply *api.JSONTxIDChangeAddr) error
- type StaticClient
- type StaticService
- type TxCachedState
- type UniqueTx
- func (tx *UniqueTx) Accept(context.Context) error
- func (tx *UniqueTx) Bytes() []byte
- func (tx *UniqueTx) Dependencies() ([]snowstorm.Tx, error)
- func (tx *UniqueTx) Evict()
- func (*UniqueTx) HasWhitelist() bool
- func (tx *UniqueTx) ID() ids.ID
- func (tx *UniqueTx) InputIDs() []ids.ID
- func (tx *UniqueTx) InputUTXOs() []*avax.UTXOID
- func (tx *UniqueTx) Key() ids.ID
- func (tx *UniqueTx) Reject(context.Context) error
- func (tx *UniqueTx) SemanticVerify() error
- func (tx *UniqueTx) Status() choices.Status
- func (tx *UniqueTx) SyntacticVerify() error
- func (tx *UniqueTx) UTXOs() []*avax.UTXO
- func (tx *UniqueTx) Verify(context.Context) error
- func (*UniqueTx) Whitelist(context.Context) (set.Set[ids.ID], error)
- type VM
- func (*VM) BuildBlock(context.Context) (snowman.Block, error)
- func (*VM) Connected(context.Context, ids.NodeID, *version.Application) error
- func (vm *VM) CreateHandlers(context.Context) (map[string]*common.HTTPHandler, error)
- func (*VM) CreateStaticHandlers(context.Context) (map[string]*common.HTTPHandler, error)
- func (vm *VM) DeduplicateTx(tx *UniqueTx) *UniqueTx
- func (*VM) Disconnected(context.Context, ids.NodeID) error
- func (vm *VM) FlushTxs()
- func (*VM) GetBlock(context.Context, ids.ID) (snowman.Block, error)
- func (vm *VM) GetTx(_ context.Context, txID ids.ID) (snowstorm.Tx, error)
- func (*VM) HealthCheck(context.Context) (interface{}, error)
- func (vm *VM) Initialize(_ context.Context, ctx *snow.Context, dbManager manager.Manager, ...) error
- func (vm *VM) IssueTx(b []byte) (ids.ID, error)
- func (*VM) LastAccepted(context.Context) (ids.ID, error)
- func (vm *VM) Linearize(_ context.Context, stopVertexID ids.ID) error
- func (vm *VM) LoadUser(username string, password string, addrsToUse set.Set[ids.ShortID]) ([]*avax.UTXO, *secp256k1fx.Keychain, error)
- func (vm *VM) Mint(utxos []*avax.UTXO, kc *secp256k1fx.Keychain, amounts map[ids.ID]uint64, ...) ([]*txs.Operation, [][]*crypto.PrivateKeySECP256K1R, error)
- func (vm *VM) MintNFT(utxos []*avax.UTXO, kc *secp256k1fx.Keychain, assetID ids.ID, payload []byte, ...) ([]*txs.Operation, [][]*crypto.PrivateKeySECP256K1R, error)
- func (*VM) ParseBlock(context.Context, []byte) (snowman.Block, error)
- func (vm *VM) ParseTx(_ context.Context, b []byte) (snowstorm.Tx, error)
- func (vm *VM) PendingTxs(context.Context) []snowstorm.Tx
- func (*VM) SetPreference(context.Context, ids.ID) error
- func (vm *VM) SetState(_ context.Context, state snow.State) error
- func (vm *VM) Shutdown(context.Context) error
- func (vm *VM) Spend(utxos []*avax.UTXO, kc *secp256k1fx.Keychain, amounts map[ids.ID]uint64) (map[ids.ID]uint64, []*avax.TransferableInput, [][]*crypto.PrivateKeySECP256K1R, ...)
- func (vm *VM) SpendAll(utxos []*avax.UTXO, kc *secp256k1fx.Keychain) (map[ids.ID]uint64, []*avax.TransferableInput, [][]*crypto.PrivateKeySECP256K1R, ...)
- func (vm *VM) SpendNFT(utxos []*avax.UTXO, kc *secp256k1fx.Keychain, assetID ids.ID, groupID uint32, ...) ([]*txs.Operation, [][]*crypto.PrivateKeySECP256K1R, error)
- func (*VM) Version(context.Context) (string, error)
- type WalletClient
- type WalletService
- func (w *WalletService) IssueTx(_ *http.Request, args *api.FormattedTx, reply *api.JSONTxID) error
- func (w *WalletService) Send(r *http.Request, args *SendArgs, reply *api.JSONTxIDChangeAddr) error
- func (w *WalletService) SendMultiple(_ *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AssetDefinition ¶
type AssetIDChangeAddr ¶ added in v1.9.8
type AssetIDChangeAddr struct { FormattedAssetID api.JSONChangeAddr }
AssetIDChangeAddr is an asset ID and a change address
type BuildGenesisArgs ¶
type BuildGenesisArgs struct { NetworkID json.Uint32 `json:"networkID"` GenesisData map[string]AssetDefinition `json:"genesisData"` Encoding formatting.Encoding `json:"encoding"` }
BuildGenesisArgs are arguments for BuildGenesis
type BuildGenesisReply ¶
type BuildGenesisReply struct { Bytes string `json:"bytes"` Encoding formatting.Encoding `json:"encoding"` }
BuildGenesisReply is the reply from BuildGenesis
type Client ¶ added in v1.9.8
type Client interface { WalletClient // GetTxStatus returns the status of [txID] GetTxStatus(ctx context.Context, txID ids.ID, options ...rpc.Option) (choices.Status, error) // ConfirmTx attempts to confirm [txID] by repeatedly checking its status. // Note: ConfirmTx will block until either the context is done or the client // returns a decided status. ConfirmTx(ctx context.Context, txID ids.ID, freq time.Duration, options ...rpc.Option) (choices.Status, error) // GetTx returns the byte representation of [txID] GetTx(ctx context.Context, txID ids.ID, options ...rpc.Option) ([]byte, error) // IssueStopVertex issues a stop vertex. IssueStopVertex(ctx context.Context, options ...rpc.Option) error // GetUTXOs returns the byte representation of the UTXOs controlled by [addrs] GetUTXOs( ctx context.Context, addrs []ids.ShortID, limit uint32, startAddress ids.ShortID, startUTXOID ids.ID, options ...rpc.Option, ) ([][]byte, ids.ShortID, ids.ID, error) // GetAtomicUTXOs returns the byte representation of the atomic UTXOs controlled by [addrs] // from [sourceChain] GetAtomicUTXOs( ctx context.Context, addrs []ids.ShortID, sourceChain string, limit uint32, startAddress ids.ShortID, startUTXOID ids.ID, options ...rpc.Option, ) ([][]byte, ids.ShortID, ids.ID, error) // GetAssetDescription returns a description of [assetID] GetAssetDescription(ctx context.Context, assetID string, options ...rpc.Option) (*GetAssetDescriptionReply, error) // GetBalance returns the balance of [assetID] held by [addr]. // If [includePartial], balance includes partial owned (i.e. in a multisig) funds. GetBalance(ctx context.Context, addr ids.ShortID, assetID string, includePartial bool, options ...rpc.Option) (*GetBalanceReply, error) // GetAllBalances returns all asset balances for [addr] GetAllBalances(ctx context.Context, addr ids.ShortID, includePartial bool, options ...rpc.Option) ([]Balance, error) // CreateAsset creates a new asset and returns its assetID CreateAsset( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, name string, symbol string, denomination byte, holders []*ClientHolder, minters []ClientOwners, options ...rpc.Option, ) (ids.ID, error) // CreateFixedCapAsset creates a new fixed cap asset and returns its assetID CreateFixedCapAsset( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, name string, symbol string, denomination byte, holders []*ClientHolder, options ...rpc.Option, ) (ids.ID, error) // CreateVariableCapAsset creates a new variable cap asset and returns its assetID CreateVariableCapAsset( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, name string, symbol string, denomination byte, minters []ClientOwners, options ...rpc.Option, ) (ids.ID, error) // CreateNFTAsset creates a new NFT asset and returns its assetID CreateNFTAsset( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, name string, symbol string, minters []ClientOwners, options ...rpc.Option, ) (ids.ID, error) // CreateAddress creates a new address controlled by [user] CreateAddress(ctx context.Context, user api.UserPass, options ...rpc.Option) (ids.ShortID, error) // ListAddresses returns all addresses on this chain controlled by [user] ListAddresses(ctx context.Context, user api.UserPass, options ...rpc.Option) ([]ids.ShortID, error) // ExportKey returns the private key corresponding to [addr] controlled by [user] ExportKey(ctx context.Context, user api.UserPass, addr ids.ShortID, options ...rpc.Option) (*crypto.PrivateKeySECP256K1R, error) // ImportKey imports [privateKey] to [user] ImportKey(ctx context.Context, user api.UserPass, privateKey *crypto.PrivateKeySECP256K1R, options ...rpc.Option) (ids.ShortID, error) // Mint [amount] of [assetID] to be owned by [to] Mint( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, amount uint64, assetID string, to ids.ShortID, options ...rpc.Option, ) (ids.ID, error) // SendNFT sends an NFT and returns the ID of the newly created transaction SendNFT( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, assetID string, groupID uint32, to ids.ShortID, options ...rpc.Option, ) (ids.ID, error) // MintNFT issues a MintNFT transaction and returns the ID of the newly created transaction MintNFT( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, assetID string, payload []byte, to ids.ShortID, options ...rpc.Option, ) (ids.ID, error) // Import sends an import transaction to import funds from [sourceChain] and // returns the ID of the newly created transaction Import(ctx context.Context, user api.UserPass, to ids.ShortID, sourceChain string, options ...rpc.Option) (ids.ID, error) // Export sends an asset from this chain to the P/C-Chain. // After this tx is accepted, the AVAX must be imported to the P/C-chain with an importTx. // Returns the ID of the newly created atomic transaction Export( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, amount uint64, to ids.ShortID, toChainIDAlias string, assetID string, options ...rpc.Option, ) (ids.ID, error) }
Client for interacting with an AVM (X-Chain) instance
type ClientHolder ¶ added in v1.9.8
ClientHolder describes how much an address owns of an asset
type ClientOwners ¶ added in v1.9.8
ClientOwners describes who can perform an action
type ClientSendOutput ¶ added in v1.9.8
type ClientSendOutput struct { // The amount of funds to send Amount uint64 // ID of the asset being sent AssetID string // Address of the recipient To ids.ShortID }
ClientSendOutput specifies that [Amount] of asset [AssetID] be sent to [To]
type CreateAssetArgs ¶ added in v1.9.8
type CreateAssetArgs struct { api.JSONSpendHeader // User, password, from addrs, change addr Name string `json:"name"` Symbol string `json:"symbol"` Denomination byte `json:"denomination"` InitialHolders []*Holder `json:"initialHolders"` MinterSets []Owners `json:"minterSets"` }
CreateAssetArgs are arguments for passing into CreateAsset
type CreateNFTAssetArgs ¶ added in v1.9.8
type CreateNFTAssetArgs struct { api.JSONSpendHeader // User, password, from addrs, change addr Name string `json:"name"` Symbol string `json:"symbol"` MinterSets []Owners `json:"minterSets"` }
CreateNFTAssetArgs are arguments for passing into CreateNFTAsset requests
type ExportArgs ¶ added in v1.9.8
type ExportArgs struct { // User, password, from addrs, change addr api.JSONSpendHeader // Amount of nAVAX to send Amount json.Uint64 `json:"amount"` // Chain the funds are going to. Optional. Used if To address does not include the chainID. TargetChain string `json:"targetChain"` // ID of the address that will receive the AVAX. This address may include the // chainID, which is used to determine what the destination chain is. To string `json:"to"` AssetID string `json:"assetID"` }
ExportArgs are arguments for passing into ExportAVA requests
type ExportKeyArgs ¶
ExportKeyArgs are arguments for ExportKey
type ExportKeyReply ¶
type ExportKeyReply struct { // The decrypted PrivateKey for the Address provided in the arguments PrivateKey *crypto.PrivateKeySECP256K1R `json:"privateKey"` }
ExportKeyReply is the response for ExportKey
type FormattedAssetID ¶ added in v1.9.8
FormattedAssetID defines a JSON formatted struct containing an assetID as a string
type Genesis ¶
type Genesis struct {
Txs []*GenesisAsset `serialize:"true"`
}
type GenesisAsset ¶
type GenesisAsset struct { Alias string `serialize:"true"` txs.CreateAssetTx `serialize:"true"` }
func (*GenesisAsset) Less ¶ added in v1.9.8
func (g *GenesisAsset) Less(other *GenesisAsset) bool
type GetAddressTxsArgs ¶ added in v1.9.8
type GetAddressTxsReply ¶ added in v1.9.8
type GetAllBalancesArgs ¶ added in v1.9.8
type GetAllBalancesArgs struct { api.JSONAddress IncludePartial bool `json:"includePartial"` }
type GetAllBalancesReply ¶ added in v1.9.8
type GetAllBalancesReply struct {
Balances []Balance `json:"balances"`
}
GetAllBalancesReply is the response from a call to GetAllBalances
type GetAssetDescriptionArgs ¶
type GetAssetDescriptionArgs struct {
AssetID string `json:"assetID"`
}
GetAssetDescriptionArgs are arguments for passing into GetAssetDescription requests
type GetAssetDescriptionReply ¶
type GetAssetDescriptionReply struct { FormattedAssetID Name string `json:"name"` Symbol string `json:"symbol"` Denomination json.Uint8 `json:"denomination"` }
GetAssetDescriptionReply defines the GetAssetDescription replies returned from the API
type GetBalanceArgs ¶
type GetBalanceArgs struct { Address string `json:"address"` AssetID string `json:"assetID"` IncludePartial bool `json:"includePartial"` }
GetBalanceArgs are arguments for passing into GetBalance requests
type GetBalanceReply ¶
type GetBalanceReply struct { Balance json.Uint64 `json:"balance"` UTXOIDs []avax.UTXOID `json:"utxoIDs"` }
GetBalanceReply defines the GetBalance replies returned from the API
type GetTxStatusReply ¶
GetTxStatusReply defines the GetTxStatus replies returned from the API
type ImportArgs ¶ added in v1.9.8
type ImportArgs struct { // User that controls To api.UserPass // Chain the funds are coming from SourceChain string `json:"sourceChain"` // Address receiving the imported AVAX To string `json:"to"` }
ImportArgs are arguments for passing into Import requests
type ImportKeyArgs ¶
type ImportKeyArgs struct { api.UserPass PrivateKey *crypto.PrivateKeySECP256K1R `json:"privateKey"` }
ImportKeyArgs are arguments for ImportKey
type ImportKeyReply ¶
type ImportKeyReply struct { // The address controlled by the PrivateKey provided in the arguments Address string `json:"address"` }
ImportKeyReply is the response for ImportKey
type MintArgs ¶ added in v1.9.8
type MintArgs struct { api.JSONSpendHeader // User, password, from addrs, change addr Amount json.Uint64 `json:"amount"` AssetID string `json:"assetID"` To string `json:"to"` }
MintArgs are arguments for passing into Mint requests
type MintNFTArgs ¶ added in v1.9.8
type MintNFTArgs struct { api.JSONSpendHeader // User, password, from addrs, change addr AssetID string `json:"assetID"` Payload string `json:"payload"` To string `json:"to"` Encoding formatting.Encoding `json:"encoding"` }
MintNFTArgs are arguments for passing into MintNFT requests
type SendArgs ¶
type SendArgs struct { // User, password, from addrs, change addr api.JSONSpendHeader // The amount, assetID, and destination to send funds to SendOutput // Memo field Memo string `json:"memo"` }
SendArgs are arguments for passing into Send requests
type SendMultipleArgs ¶ added in v1.9.8
type SendMultipleArgs struct { // User, password, from addrs, change addr api.JSONSpendHeader // The outputs of the transaction Outputs []SendOutput `json:"outputs"` // Memo field Memo string `json:"memo"` }
SendMultipleArgs are arguments for passing into SendMultiple requests
type SendNFTArgs ¶ added in v1.9.8
type SendNFTArgs struct { api.JSONSpendHeader // User, password, from addrs, change addr AssetID string `json:"assetID"` GroupID json.Uint32 `json:"groupID"` To string `json:"to"` }
SendNFTArgs are arguments for passing into SendNFT requests
type SendOutput ¶ added in v1.9.8
type SendOutput struct { // The amount of funds to send Amount json.Uint64 `json:"amount"` // ID of the asset being sent AssetID string `json:"assetID"` // Address of the recipient To string `json:"to"` }
SendOutput specifies that [Amount] of asset [AssetID] be sent to [To]
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service defines the base service for the asset vm
func (*Service) CreateAddress ¶
CreateAddress creates an address for the user [args.Username]
func (*Service) CreateAsset ¶ added in v1.9.8
func (s *Service) CreateAsset(_ *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
CreateAsset returns ID of the newly created asset
func (*Service) CreateFixedCapAsset ¶
func (s *Service) CreateFixedCapAsset(_ *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
CreateFixedCapAsset returns ID of the newly created asset
func (*Service) CreateNFTAsset ¶ added in v1.9.8
func (s *Service) CreateNFTAsset(_ *http.Request, args *CreateNFTAssetArgs, reply *AssetIDChangeAddr) error
CreateNFTAsset returns ID of the newly created asset
func (*Service) CreateVariableCapAsset ¶
func (s *Service) CreateVariableCapAsset(_ *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
CreateVariableCapAsset returns ID of the newly created asset
func (*Service) Export ¶ added in v1.9.8
func (s *Service) Export(_ *http.Request, args *ExportArgs, reply *api.JSONTxIDChangeAddr) error
Export sends an asset from this chain to the P/C-Chain. After this tx is accepted, the AVAX must be imported to the P/C-chain with an importTx. Returns the ID of the newly created atomic transaction
func (*Service) ExportKey ¶
func (s *Service) ExportKey(_ *http.Request, args *ExportKeyArgs, reply *ExportKeyReply) error
ExportKey returns a private key from the provided user
func (*Service) GetAddressTxs ¶ added in v1.9.8
func (s *Service) GetAddressTxs(_ *http.Request, args *GetAddressTxsArgs, reply *GetAddressTxsReply) error
GetAddressTxs returns list of transactions for a given address
func (*Service) GetAllBalances ¶ added in v1.9.8
func (s *Service) GetAllBalances(_ *http.Request, args *GetAllBalancesArgs, reply *GetAllBalancesReply) error
GetAllBalances returns a map where:
Key: ID of an asset such that [args.Address] has a non-zero balance of the asset Value: The balance of the asset held by the address
If ![args.IncludePartial], returns only unlocked balance/UTXOs with a 1-out-of-1 multisig. Otherwise, returned balance/UTXOs includes assets held only partially by the address, and includes balances with locktime in the future.
func (*Service) GetAssetDescription ¶
func (s *Service) GetAssetDescription(_ *http.Request, args *GetAssetDescriptionArgs, reply *GetAssetDescriptionReply) error
GetAssetDescription creates an empty account with the name passed in
func (*Service) GetBalance ¶
func (s *Service) GetBalance(_ *http.Request, args *GetBalanceArgs, reply *GetBalanceReply) error
GetBalance returns the balance of an asset held by an address. If ![args.IncludePartial], returns only the balance held solely (1 out of 1 multisig) by the address and with a locktime in the past. Otherwise, returned balance includes assets held only partially by the address, and includes balances with locktime in the future.
func (*Service) GetTxStatus ¶
GetTxStatus returns the status of the specified transaction
func (*Service) GetUTXOs ¶
func (s *Service) GetUTXOs(_ *http.Request, args *api.GetUTXOsArgs, reply *api.GetUTXOsReply) error
GetUTXOs gets all utxos for passed in addresses
func (*Service) Import ¶ added in v1.9.8
Import imports an asset to this chain from the P/C-Chain. The AVAX must have already been exported from the P/C-Chain. Returns the ID of the newly created atomic transaction
func (*Service) ImportKey ¶
func (s *Service) ImportKey(_ *http.Request, args *ImportKeyArgs, reply *api.JSONAddress) error
ImportKey adds a private key to the provided user
func (*Service) IssueStopVertex ¶ added in v1.9.8
func (*Service) ListAddresses ¶ added in v1.9.8
func (s *Service) ListAddresses(_ *http.Request, args *api.UserPass, response *api.JSONAddresses) error
ListAddresses returns all of the addresses controlled by user [args.Username]
func (*Service) MintNFT ¶ added in v1.9.8
func (s *Service) MintNFT(_ *http.Request, args *MintNFTArgs, reply *api.JSONTxIDChangeAddr) error
MintNFT issues a MintNFT transaction and returns the ID of the newly created transaction
func (*Service) SendMultiple ¶ added in v1.9.8
func (s *Service) SendMultiple(_ *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
SendMultiple sends a transaction with multiple outputs.
func (*Service) SendNFT ¶ added in v1.9.8
func (s *Service) SendNFT(_ *http.Request, args *SendNFTArgs, reply *api.JSONTxIDChangeAddr) error
SendNFT sends an NFT
type StaticClient ¶ added in v1.9.8
type StaticClient interface {
BuildGenesis(ctx context.Context, args *BuildGenesisArgs, options ...rpc.Option) (*BuildGenesisReply, error)
}
StaticClient for interacting with the AVM static api
func NewStaticClient ¶ added in v1.9.8
func NewStaticClient(uri string) StaticClient
NewClient returns an AVM client for interacting with the avm static api
type StaticService ¶
type StaticService struct{}
StaticService defines the base service for the asset vm
func CreateStaticService ¶ added in v1.9.8
func CreateStaticService() *StaticService
func (*StaticService) BuildGenesis ¶
func (*StaticService) BuildGenesis(_ *http.Request, args *BuildGenesisArgs, reply *BuildGenesisReply) error
BuildGenesis returns the UTXOs such that at least one address in [args.Addresses] is referenced in the UTXO.
type TxCachedState ¶ added in v1.9.8
type UniqueTx ¶
type UniqueTx struct { *TxCachedState // contains filtered or unexported fields }
UniqueTx provides a de-duplication service for txs. This only provides a performance boost
func (*UniqueTx) Accept ¶
Accept is called when the transaction was finalized as accepted by consensus
func (*UniqueTx) Dependencies ¶
Dependencies returns the set of transactions this transaction builds on
func (*UniqueTx) Evict ¶
func (tx *UniqueTx) Evict()
Evict is called when this UniqueTx will no longer be returned from a cache lookup
func (*UniqueTx) HasWhitelist ¶ added in v1.9.8
Whitelist is not supported by this transaction type, so [false] is returned.
func (*UniqueTx) InputUTXOs ¶
InputUTXOs returns the utxos that will be consumed on tx acceptance
func (*UniqueTx) Reject ¶
Reject is called when the transaction was finalized as rejected by consensus
func (*UniqueTx) SemanticVerify ¶
SemanticVerify the validity of this transaction
func (*UniqueTx) SyntacticVerify ¶
SyntacticVerify verifies that this transaction is well formed
func (*UniqueTx) UTXOs ¶
UTXOs returns the utxos that will be added to the UTXO set on tx acceptance
type VM ¶
type VM struct { common.AppHandler Factory avax.AddressManager avax.AtomicUTXOManager ids.Aliaser // contains filtered or unexported fields }
func (*VM) BuildBlock ¶ added in v1.9.8
func (*VM) CreateHandlers ¶
func (*VM) CreateStaticHandlers ¶
func (*VM) DeduplicateTx ¶ added in v1.9.8
UniqueTx de-duplicates the transaction.
func (*VM) Disconnected ¶ added in v1.9.8
func (*VM) HealthCheck ¶ added in v1.9.8
TODO: add health checks
func (*VM) Initialize ¶
func (*VM) IssueTx ¶
IssueTx attempts to send a transaction to consensus. If onDecide is specified, the function will be called when the transaction is either accepted or rejected with the appropriate status. This function will go out of scope when the transaction is removed from memory.
func (*VM) LoadUser ¶ added in v1.9.8
func (vm *VM) LoadUser( username string, password string, addrsToUse set.Set[ids.ShortID], ) ( []*avax.UTXO, *secp256k1fx.Keychain, error, )
LoadUser returns: 1) The UTXOs that reference one or more addresses controlled by the given user 2) A keychain that contains this user's keys If [addrsToUse] has positive length, returns UTXOs that reference one or more addresses controlled by the given user that are also in [addrsToUse].
func (*VM) ParseBlock ¶ added in v1.9.8
func (*VM) SpendAll ¶ added in v1.9.8
func (vm *VM) SpendAll( utxos []*avax.UTXO, kc *secp256k1fx.Keychain, ) ( map[ids.ID]uint64, []*avax.TransferableInput, [][]*crypto.PrivateKeySECP256K1R, error, )
type WalletClient ¶ added in v1.9.8
type WalletClient interface { // IssueTx issues a transaction to a node and returns the TxID IssueTx(ctx context.Context, tx []byte, options ...rpc.Option) (ids.ID, error) // Send [amount] of [assetID] to address [to] Send( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, amount uint64, assetID string, to ids.ShortID, memo string, options ...rpc.Option, ) (ids.ID, error) // SendMultiple sends a transaction from [user] funding all [outputs] SendMultiple( ctx context.Context, user api.UserPass, from []ids.ShortID, changeAddr ids.ShortID, outputs []ClientSendOutput, memo string, options ...rpc.Option, ) (ids.ID, error) }
interface of an AVM wallet client for interacting with avm managed wallet on [chain]
func NewWalletClient ¶ added in v1.9.8
func NewWalletClient(uri, chain string) WalletClient
NewWalletClient returns an AVM wallet client for interacting with avm managed wallet on [chain]
type WalletService ¶ added in v1.9.8
type WalletService struct {
// contains filtered or unexported fields
}
func (*WalletService) IssueTx ¶ added in v1.9.8
func (w *WalletService) IssueTx(_ *http.Request, args *api.FormattedTx, reply *api.JSONTxID) error
IssueTx attempts to issue a transaction into consensus
func (*WalletService) Send ¶ added in v1.9.8
func (w *WalletService) Send(r *http.Request, args *SendArgs, reply *api.JSONTxIDChangeAddr) error
Send returns the ID of the newly created transaction
func (*WalletService) SendMultiple ¶ added in v1.9.8
func (w *WalletService) SendMultiple(_ *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
SendMultiple sends a transaction with multiple outputs.