Documentation ¶
Index ¶
- Variables
- func NewPubSubFilterer(tx *Tx) pubsub.Filterer
- type AssetDefinition
- type AssetIDChangeAddr
- type Balance
- type BaseTx
- type BuildGenesisArgs
- type BuildGenesisReply
- type Client
- func (c *Client) ConfirmTx(txID ids.ID, attempts int, delay time.Duration) (choices.Status, error)
- func (c *Client) CreateAddress(user api.UserPass) (string, error)
- func (c *Client) CreateAsset(user api.UserPass, from []string, changeAddr, name, symbol string, ...) (ids.ID, error)
- func (c *Client) CreateFixedCapAsset(user api.UserPass, from []string, changeAddr, name, symbol string, ...) (ids.ID, error)
- func (c *Client) CreateNFTAsset(user api.UserPass, from []string, changeAddr, name, symbol string, ...) (ids.ID, error)
- func (c *Client) CreateVariableCapAsset(user api.UserPass, from []string, changeAddr, name, symbol string, ...) (ids.ID, error)
- func (c *Client) Export(user api.UserPass, from []string, changeAddr string, amount uint64, to string, ...) (ids.ID, error)
- func (c *Client) ExportAVAX(user api.UserPass, from []string, changeAddr string, amount uint64, to string) (ids.ID, error)
- func (c *Client) ExportKey(user api.UserPass, addr string) (string, error)
- func (c *Client) GetAllBalances(addr string, includePartial bool) (*GetAllBalancesReply, error)
- func (c *Client) GetAssetDescription(assetID string) (*GetAssetDescriptionReply, error)
- func (c *Client) GetAtomicUTXOs(addrs []string, sourceChain string, limit uint32, ...) ([][]byte, api.Index, error)
- func (c *Client) GetBalance(addr string, assetID string, includePartial bool) (*GetBalanceReply, error)
- func (c *Client) GetTx(txID ids.ID) ([]byte, error)
- func (c *Client) GetTxStatus(txID ids.ID) (choices.Status, error)
- func (c *Client) GetUTXOs(addrs []string, limit uint32, startAddress, startUTXOID string) ([][]byte, api.Index, error)
- func (c *Client) Import(user api.UserPass, to, sourceChain string) (ids.ID, error)
- func (c *Client) ImportAVAX(user api.UserPass, to, sourceChain string) (ids.ID, error)
- func (c *Client) ImportKey(user api.UserPass, privateKey string) (string, error)
- func (c *Client) IssueTx(txBytes []byte) (ids.ID, error)
- func (c *Client) ListAddresses(user api.UserPass) ([]string, error)
- func (c *Client) Mint(user api.UserPass, from []string, changeAddr string, amount uint64, ...) (ids.ID, error)
- func (c *Client) MintNFT(user api.UserPass, from []string, changeAddr string, assetID string, ...) (ids.ID, error)
- func (c *Client) Send(user api.UserPass, from []string, changeAddr string, amount uint64, ...) (ids.ID, error)
- func (c *Client) SendMultiple(user api.UserPass, from []string, changeAddr string, outputs []SendOutput, ...) (ids.ID, error)
- func (c *Client) SendNFT(user api.UserPass, from []string, changeAddr string, assetID string, ...) (ids.ID, error)
- type CreateAssetArgs
- type CreateAssetTx
- type CreateNFTAssetArgs
- type ExportAVAXArgs
- type ExportArgs
- type ExportKeyArgs
- type ExportKeyReply
- type ExportTx
- type Factory
- type FormattedAssetID
- type Fx
- type FxOperation
- type Genesis
- type GenesisAsset
- type GetAllBalancesArgs
- type GetAllBalancesReply
- type GetAssetDescriptionArgs
- type GetAssetDescriptionReply
- type GetBalanceArgs
- type GetBalanceReply
- type GetTxStatusReply
- type Holder
- type ImportArgs
- type ImportKeyArgs
- type ImportKeyReply
- type ImportTx
- func (t *ImportTx) AssetIDs() ids.Set
- func (t *ImportTx) ConsumedAssetIDs() ids.Set
- func (t *ImportTx) ExecuteWithSideEffects(vm *VM, batch database.Batch) error
- func (t *ImportTx) InputUTXOs() []*avax.UTXOID
- func (t *ImportTx) NumCredentials() int
- func (t *ImportTx) SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error
- func (t *ImportTx) SyntacticVerify(ctx *snow.Context, c codec.Manager, txFeeAssetID ids.ID, txFee uint64, ...) error
- type InitialState
- type MintArgs
- type MintNFTArgs
- type Operation
- type OperationTx
- func (t *OperationTx) AssetIDs() ids.Set
- func (t *OperationTx) ConsumedAssetIDs() ids.Set
- func (t *OperationTx) InputUTXOs() []*avax.UTXOID
- func (t *OperationTx) NumCredentials() int
- func (t *OperationTx) Operations() []*Operation
- func (t *OperationTx) SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error
- func (t *OperationTx) SyntacticVerify(ctx *snow.Context, c codec.Manager, txFeeAssetID ids.ID, txFee uint64, ...) error
- func (t *OperationTx) UTXOs() []*avax.UTXO
- type Owners
- type SendArgs
- type SendMultipleArgs
- type SendNFTArgs
- type SendOutput
- type Service
- func (service *Service) CreateAddress(r *http.Request, args *api.UserPass, reply *api.JSONAddress) error
- func (service *Service) CreateAsset(r *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
- func (service *Service) CreateFixedCapAsset(r *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
- func (service *Service) CreateNFTAsset(r *http.Request, args *CreateNFTAssetArgs, reply *AssetIDChangeAddr) error
- func (service *Service) CreateVariableCapAsset(r *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
- func (service *Service) Export(_ *http.Request, args *ExportArgs, reply *api.JSONTxIDChangeAddr) error
- func (service *Service) ExportAVAX(_ *http.Request, args *ExportAVAXArgs, reply *api.JSONTxIDChangeAddr) error
- func (service *Service) ExportKey(r *http.Request, args *ExportKeyArgs, reply *ExportKeyReply) error
- func (service *Service) GetAllBalances(r *http.Request, args *GetAllBalancesArgs, reply *GetAllBalancesReply) error
- func (service *Service) GetAssetDescription(_ *http.Request, args *GetAssetDescriptionArgs, ...) error
- func (service *Service) GetBalance(r *http.Request, args *GetBalanceArgs, reply *GetBalanceReply) error
- func (service *Service) GetTx(r *http.Request, args *api.GetTxArgs, reply *api.FormattedTx) error
- func (service *Service) GetTxStatus(r *http.Request, args *api.JSONTxID, reply *GetTxStatusReply) error
- func (service *Service) GetUTXOs(r *http.Request, args *api.GetUTXOsArgs, reply *api.GetUTXOsReply) error
- func (service *Service) Import(_ *http.Request, args *ImportArgs, reply *api.JSONTxID) error
- func (service *Service) ImportAVAX(_ *http.Request, args *ImportArgs, reply *api.JSONTxID) error
- func (service *Service) ImportKey(r *http.Request, args *ImportKeyArgs, reply *api.JSONAddress) error
- func (service *Service) IssueTx(r *http.Request, args *api.FormattedTx, reply *api.JSONTxID) error
- func (service *Service) ListAddresses(_ *http.Request, args *api.UserPass, response *api.JSONAddresses) error
- func (service *Service) Mint(r *http.Request, args *MintArgs, reply *api.JSONTxIDChangeAddr) error
- func (service *Service) MintNFT(r *http.Request, args *MintNFTArgs, reply *api.JSONTxIDChangeAddr) error
- func (service *Service) Send(r *http.Request, args *SendArgs, reply *api.JSONTxIDChangeAddr) error
- func (service *Service) SendMultiple(r *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
- func (service *Service) SendNFT(r *http.Request, args *SendNFTArgs, reply *api.JSONTxIDChangeAddr) error
- type StaticService
- type Tx
- func (t *Tx) Credentials() []verify.Verifiable
- func (t *Tx) SemanticVerify(vm *VM, tx UnsignedTx) error
- func (t *Tx) SignNFTFx(c codec.Manager, signers [][]*crypto.PrivateKeySECP256K1R) error
- func (t *Tx) SignSECP256K1Fx(c codec.Manager, signers [][]*crypto.PrivateKeySECP256K1R) error
- func (t *Tx) SyntacticVerify(ctx *snow.Context, c codec.Manager, txFeeAssetID ids.ID, txFee uint64, ...) error
- type TxState
- type UniqueTx
- func (tx *UniqueTx) Accept() error
- func (tx *UniqueTx) Bytes() []byte
- func (tx *UniqueTx) Dependencies() []snowstorm.Tx
- func (tx *UniqueTx) Evict()
- func (tx *UniqueTx) ID() ids.ID
- func (tx *UniqueTx) InputIDs() []ids.ID
- func (tx *UniqueTx) InputUTXOs() []*avax.UTXOID
- func (tx *UniqueTx) Key() interface{}
- func (tx *UniqueTx) Reject() 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() error
- type UnsignedTx
- type VM
- func (vm *VM) Bootstrapped() error
- func (vm *VM) Bootstrapping() error
- func (vm *VM) Clock() *timer.Clock
- func (vm *VM) Codec() codec.Manager
- func (vm *VM) CodecRegistry() codec.Registry
- func (vm *VM) CreateHandlers() (map[string]*common.HTTPHandler, error)
- func (vm *VM) CreateStaticHandlers() (map[string]*common.HTTPHandler, error)
- func (vm *VM) FlushTxs()
- func (vm *VM) FormatAddress(chainID ids.ID, addr ids.ShortID) (string, error)
- func (vm *VM) FormatLocalAddress(addr ids.ShortID) (string, error)
- func (vm *VM) GetAtomicUTXOs(chainID ids.ID, addrs ids.ShortSet, startAddr ids.ShortID, startUTXOID ids.ID, ...) ([]*avax.UTXO, ids.ShortID, ids.ID, error)
- func (vm *VM) GetTx(txID ids.ID) (snowstorm.Tx, error)
- func (vm *VM) GetUTXOs(addrs ids.ShortSet, startAddr ids.ShortID, startUTXOID ids.ID, limit int, ...) ([]*avax.UTXO, ids.ShortID, ids.ID, error)
- func (vm *VM) HealthCheck() (interface{}, error)
- func (vm *VM) Initialize(ctx *snow.Context, db database.Database, genesisBytes []byte, ...) error
- func (vm *VM) IssueTx(b []byte) (ids.ID, error)
- func (vm *VM) LoadUser(username string, password string, addrsToUse ids.ShortSet) ([]*avax.UTXO, *secp256k1fx.Keychain, error)
- func (vm *VM) Logger() logging.Logger
- func (vm *VM) Mint(utxos []*avax.UTXO, kc *secp256k1fx.Keychain, amounts map[ids.ID]uint64, ...) ([]*Operation, [][]*crypto.PrivateKeySECP256K1R, error)
- func (vm *VM) MintNFT(utxos []*avax.UTXO, kc *secp256k1fx.Keychain, assetID ids.ID, payload []byte, ...) ([]*Operation, [][]*crypto.PrivateKeySECP256K1R, error)
- func (vm *VM) ParseAddress(addrStr string) (ids.ID, ids.ShortID, error)
- func (vm *VM) ParseLocalAddress(addrStr string) (ids.ShortID, error)
- func (vm *VM) ParseTx(b []byte) (snowstorm.Tx, error)
- func (vm *VM) PendingTxs() []snowstorm.Tx
- func (vm *VM) Shutdown() 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, ...) ([]*Operation, [][]*crypto.PrivateKeySECP256K1R, error)
- type WalletClient
- func (c *WalletClient) IssueTx(txBytes []byte) (ids.ID, error)
- func (c *WalletClient) Send(user api.UserPass, from []string, changeAddr string, amount uint64, ...) (ids.ID, error)
- func (c *WalletClient) SendMultiple(user api.UserPass, from []string, changeAddr string, outputs []SendOutput, ...) (ids.ID, error)
- type WalletService
- func (w *WalletService) IssueTx(r *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(r *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
Constants ¶
This section is empty.
Variables ¶
var (
ID = ids.ID{'a', 'v', 'm'}
)
ID that this VM uses when labeled
Functions ¶
func NewPubSubFilterer ¶ added in v1.4.0
Types ¶
type AssetDefinition ¶
type AssetDefinition struct { Name string `json:"name"` Symbol string `json:"symbol"` Denomination cjson.Uint8 `json:"denomination"` InitialState map[string][]interface{} `json:"initialState"` Memo string `json:"memo"` }
AssetDefinition ...
type AssetIDChangeAddr ¶ added in v0.8.4
type AssetIDChangeAddr struct { FormattedAssetID api.JSONChangeAddr }
AssetIDChangeAddr is an asset ID and a change address
type BaseTx ¶
BaseTx is the basis of all transactions.
func (*BaseTx) ExecuteWithSideEffects ¶
ExecuteWithSideEffects writes the batch with any additional side effects
func (*BaseTx) SemanticVerify ¶
func (t *BaseTx) SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error
SemanticVerify that this transaction is valid to be spent.
type BuildGenesisArgs ¶
type BuildGenesisArgs struct { NetworkID cjson.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.0.6
type Client struct {
// contains filtered or unexported fields
}
Client ...
func (*Client) ConfirmTx ¶ added in v1.1.2
ConfirmTx attempts to confirm [txID] by checking its status [attempts] times with a [delay] in between each attempt. If the transaction has not been decided by the final attempt, it returns the status of the last attempt. Note: ConfirmTx will block until either the last attempt finishes or the client returns a decided status.
func (*Client) CreateAddress ¶ added in v1.0.6
CreateAddress creates a new address controlled by [user]
func (*Client) CreateAsset ¶ added in v1.0.6
func (c *Client) CreateAsset( user api.UserPass, from []string, changeAddr, name, symbol string, denomination byte, holders []*Holder, minters []Owners, ) (ids.ID, error)
CreateAsset creates a new asset and returns its assetID
func (*Client) CreateFixedCapAsset ¶ added in v1.0.6
func (c *Client) CreateFixedCapAsset( user api.UserPass, from []string, changeAddr, name, symbol string, denomination byte, holders []*Holder, ) (ids.ID, error)
CreateFixedCapAsset creates a new fixed cap asset and returns its assetID
func (*Client) CreateNFTAsset ¶ added in v1.0.6
func (c *Client) CreateNFTAsset( user api.UserPass, from []string, changeAddr, name, symbol string, minters []Owners, ) (ids.ID, error)
CreateNFTAsset creates a new NFT asset and returns its assetID
func (*Client) CreateVariableCapAsset ¶ added in v1.0.6
func (c *Client) CreateVariableCapAsset( user api.UserPass, from []string, changeAddr, name, symbol string, denomination byte, minters []Owners, ) (ids.ID, error)
CreateVariableCapAsset creates a new variable cap asset and returns its assetID
func (*Client) Export ¶ added in v1.0.6
func (c *Client) Export( user api.UserPass, from []string, changeAddr string, amount uint64, to string, assetID string, ) (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
func (*Client) ExportAVAX ¶ added in v1.0.6
func (c *Client) ExportAVAX( user api.UserPass, from []string, changeAddr string, amount uint64, to string, ) (ids.ID, error)
ExportAVAX sends AVAX from this chain to the address specified by [to]. Returns the ID of the newly created atomic transaction
func (*Client) ExportKey ¶ added in v1.0.6
ExportKey returns the private key corresponding to [addr] controlled by [user]
func (*Client) GetAllBalances ¶ added in v1.0.6
func (c *Client) GetAllBalances(addr string, includePartial bool) (*GetAllBalancesReply, error)
GetAllBalances returns all asset balances for [addr]
func (*Client) GetAssetDescription ¶ added in v1.0.6
func (c *Client) GetAssetDescription(assetID string) (*GetAssetDescriptionReply, error)
GetAssetDescription returns a description of [assetID]
func (*Client) GetAtomicUTXOs ¶ added in v1.1.3
func (c *Client) GetAtomicUTXOs(addrs []string, sourceChain string, limit uint32, startAddress, startUTXOID string) ([][]byte, api.Index, error)
GetAtomicUTXOs returns the byte representation of the atomic UTXOs controlled by [addresses] from [sourceChain]
func (*Client) GetBalance ¶ added in v1.0.6
func (c *Client) GetBalance(addr string, assetID string, includePartial bool) (*GetBalanceReply, error)
GetBalance returns the balance of [assetID] held by [addr]. If [includePartial], balance includes partial owned (i.e. in a multisig) funds.
func (*Client) GetTxStatus ¶ added in v1.0.6
GetTxStatus returns the status of [txID]
func (*Client) GetUTXOs ¶ added in v1.0.6
func (c *Client) GetUTXOs(addrs []string, limit uint32, startAddress, startUTXOID string) ([][]byte, api.Index, error)
GetUTXOs returns the byte representation of the UTXOs controlled by [addrs]
func (*Client) Import ¶ added in v1.0.6
Import sends an import transaction to import funds from [sourceChain] and returns the ID of the newly created transaction
func (*Client) ImportAVAX ¶ added in v1.0.6
ImportAVAX sends an import transaction to import funds from [sourceChain] and returns the ID of the newly created transaction This is a deprecated name for Import
func (*Client) IssueTx ¶ added in v1.0.6
IssueTx issues a transaction to a node and returns the TxID
func (*Client) ListAddresses ¶ added in v1.0.6
ListAddresses returns all addresses on this chain controlled by [user]
func (*Client) Mint ¶ added in v1.0.6
func (c *Client) Mint( user api.UserPass, from []string, changeAddr string, amount uint64, assetID, to string, ) (ids.ID, error)
Mint [amount] of [assetID] to be owned by [to]
func (*Client) MintNFT ¶ added in v1.0.6
func (c *Client) MintNFT( user api.UserPass, from []string, changeAddr string, assetID string, payload []byte, to string, ) (ids.ID, error)
MintNFT issues a MintNFT transaction and returns the ID of the newly created transaction
func (*Client) Send ¶ added in v1.0.6
func (c *Client) Send( user api.UserPass, from []string, changeAddr string, amount uint64, assetID, to, memo string, ) (ids.ID, error)
Send [amount] of [assetID] to address [to]
type CreateAssetArgs ¶ added in v1.0.6
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 CreateAssetTx ¶
type CreateAssetTx struct { BaseTx `serialize:"true"` Name string `serialize:"true" json:"name"` Symbol string `serialize:"true" json:"symbol"` Denomination byte `serialize:"true" json:"denomination"` States []*InitialState `serialize:"true" json:"initialStates"` }
CreateAssetTx is a transaction that creates a new asset.
func (*CreateAssetTx) InitialStates ¶
func (t *CreateAssetTx) InitialStates() []*InitialState
InitialStates track which virtual machines, and the initial state of these machines, this asset uses. The returned array should not be modified.
func (*CreateAssetTx) SyntacticVerify ¶
func (t *CreateAssetTx) SyntacticVerify( ctx *snow.Context, c codec.Manager, txFeeAssetID ids.ID, _ uint64, txFee uint64, numFxs int, ) error
SyntacticVerify that this transaction is well-formed.
func (*CreateAssetTx) UTXOs ¶
func (t *CreateAssetTx) UTXOs() []*avax.UTXO
UTXOs returns the UTXOs transaction is producing.
type CreateNFTAssetArgs ¶ added in v0.8.0
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 ExportAVAXArgs ¶ added in v0.8.0
type ExportAVAXArgs struct { // User, password, from addrs, change addr api.JSONSpendHeader // Amount of nAVAX to send Amount json.Uint64 `json:"amount"` // ID of the address that will receive the AVAX. This address includes the // chainID, which is used to determine what the destination chain is. To string `json:"to"` }
ExportAVAXArgs are arguments for passing into ExportAVA requests
type ExportArgs ¶ added in v1.0.0
type ExportArgs struct { ExportAVAXArgs 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 string `json:"privateKey"` }
ExportKeyReply is the response for ExportKey
type ExportTx ¶
type ExportTx struct { BaseTx `serialize:"true"` // Which chain to send the funds to DestinationChain ids.ID `serialize:"true" json:"destinationChain"` // The outputs this transaction is sending to the other chain ExportedOuts []*avax.TransferableOutput `serialize:"true" json:"exportedOutputs"` }
ExportTx is a transaction that exports an asset to another blockchain.
func (*ExportTx) ExecuteWithSideEffects ¶
ExecuteWithSideEffects writes the batch with any additional side effects
func (*ExportTx) SemanticVerify ¶
func (t *ExportTx) SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error
SemanticVerify that this transaction is valid to be spent.
type FormattedAssetID ¶ added in v0.8.0
FormattedAssetID defines a JSON formatted struct containing an assetID as a string
type Fx ¶
type Fx interface { // Initialize this feature extension to be running under this VM. Should // return an error if the VM is incompatible. Initialize(vm interface{}) error // Notify this Fx that the VM is in bootstrapping Bootstrapping() error // Notify this Fx that the VM is bootstrapped Bootstrapped() error // VerifyTransfer verifies that the specified transaction can spend the // provided utxo with no restrictions on the destination. If the transaction // can't spend the output based on the input and credential, a non-nil error // should be returned. VerifyTransfer(tx, in, cred, utxo interface{}) error // VerifyOperation verifies that the specified transaction can spend the // provided utxos conditioned on the result being restricted to the provided // outputs. If the transaction can't spend the output based on the input and // credential, a non-nil error should be returned. VerifyOperation(tx, op, cred interface{}, utxos []interface{}) error }
Fx is the interface a feature extension must implement to support the AVM.
type FxOperation ¶
type FxOperation interface { verify.Verifiable Outs() []verify.State }
FxOperation ...
type Genesis ¶
type Genesis struct {
Txs []*GenesisAsset `serialize:"true"`
}
Genesis ...
func (*Genesis) IsSortedAndUnique ¶
IsSortedAndUnique ...
type GenesisAsset ¶
type GenesisAsset struct { Alias string `serialize:"true"` CreateAssetTx `serialize:"true"` }
GenesisAsset ...
type GetAllBalancesArgs ¶ added in v1.1.4
type GetAllBalancesArgs struct { api.JSONAddress IncludePartial bool `json:"includePartial"` }
GetAllBalancesArgs ...
type GetAllBalancesReply ¶ added in v0.8.0
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.0.0
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 ¶
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 ImportTx ¶
type ImportTx struct { BaseTx `serialize:"true"` // Which chain to consume the funds from SourceChain ids.ID `serialize:"true" json:"sourceChain"` // The inputs to this transaction ImportedIns []*avax.TransferableInput `serialize:"true" json:"importedInputs"` }
ImportTx is a transaction that imports an asset from another blockchain.
func (*ImportTx) ConsumedAssetIDs ¶ added in v0.8.0
ConsumedAssetIDs returns the IDs of the assets this transaction consumes
func (*ImportTx) ExecuteWithSideEffects ¶
ExecuteWithSideEffects writes the batch with any additional side effects
func (*ImportTx) InputUTXOs ¶
InputUTXOs track which UTXOs this transaction is consuming.
func (*ImportTx) NumCredentials ¶
NumCredentials returns the number of expected credentials
func (*ImportTx) SemanticVerify ¶
func (t *ImportTx) SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error
SemanticVerify that this transaction is well-formed.
type InitialState ¶
type InitialState struct { FxID uint32 `serialize:"true" json:"fxID"` Outs []verify.State `serialize:"true" json:"outputs"` }
InitialState ...
type MintArgs ¶ added in v0.8.0
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 v0.8.0
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 Operation ¶
type Operation struct { avax.Asset `serialize:"true"` UTXOIDs []*avax.UTXOID `serialize:"true" json:"inputIDs"` Op FxOperation `serialize:"true" json:"operation"` }
Operation ...
type OperationTx ¶
type OperationTx struct { BaseTx `serialize:"true"` Ops []*Operation `serialize:"true" json:"operations"` }
OperationTx is a transaction with no credentials.
func (*OperationTx) AssetIDs ¶
func (t *OperationTx) AssetIDs() ids.Set
AssetIDs returns the IDs of the assets this transaction depends on
func (*OperationTx) ConsumedAssetIDs ¶ added in v0.8.0
func (t *OperationTx) ConsumedAssetIDs() ids.Set
ConsumedAssetIDs returns the IDs of the assets this transaction consumes
func (*OperationTx) InputUTXOs ¶
func (t *OperationTx) InputUTXOs() []*avax.UTXOID
InputUTXOs track which UTXOs this transaction is consuming.
func (*OperationTx) NumCredentials ¶
func (t *OperationTx) NumCredentials() int
NumCredentials returns the number of expected credentials
func (*OperationTx) Operations ¶
func (t *OperationTx) Operations() []*Operation
Operations track which ops this transaction is performing. The returned array should not be modified.
func (*OperationTx) SemanticVerify ¶
func (t *OperationTx) SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error
SemanticVerify that this transaction is well-formed.
func (*OperationTx) SyntacticVerify ¶
func (t *OperationTx) SyntacticVerify( ctx *snow.Context, c codec.Manager, txFeeAssetID ids.ID, txFee uint64, _ uint64, numFxs int, ) error
SyntacticVerify that this transaction is well-formed.
func (*OperationTx) UTXOs ¶
func (t *OperationTx) UTXOs() []*avax.UTXO
UTXOs returns the UTXOs transaction is producing.
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.0.1
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 v0.8.0
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.0.1
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 ¶
func (service *Service) CreateAddress(r *http.Request, args *api.UserPass, reply *api.JSONAddress) error
CreateAddress creates an address for the user [args.Username]
func (*Service) CreateAsset ¶ added in v1.0.6
func (service *Service) CreateAsset(r *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
CreateAsset returns ID of the newly created asset
func (*Service) CreateFixedCapAsset ¶
func (service *Service) CreateFixedCapAsset(r *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
CreateFixedCapAsset returns ID of the newly created asset
func (*Service) CreateNFTAsset ¶ added in v0.8.0
func (service *Service) CreateNFTAsset(r *http.Request, args *CreateNFTAssetArgs, reply *AssetIDChangeAddr) error
CreateNFTAsset returns ID of the newly created asset
func (*Service) CreateVariableCapAsset ¶
func (service *Service) CreateVariableCapAsset(r *http.Request, args *CreateAssetArgs, reply *AssetIDChangeAddr) error
CreateVariableCapAsset returns ID of the newly created asset
func (*Service) Export ¶ added in v1.0.0
func (service *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) ExportAVAX ¶ added in v0.8.0
func (service *Service) ExportAVAX(_ *http.Request, args *ExportAVAXArgs, reply *api.JSONTxIDChangeAddr) error
ExportAVAX sends AVAX from this chain to the address specified by [to]. [to] specifies which chain to export funds to. 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 (service *Service) ExportKey(r *http.Request, args *ExportKeyArgs, reply *ExportKeyReply) error
ExportKey returns a private key from the provided user
func (*Service) GetAllBalances ¶ added in v0.8.0
func (service *Service) GetAllBalances(r *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 (service *Service) GetAssetDescription(_ *http.Request, args *GetAssetDescriptionArgs, reply *GetAssetDescriptionReply) error
GetAssetDescription creates an empty account with the name passed in
func (*Service) GetBalance ¶
func (service *Service) GetBalance(r *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 ¶
func (service *Service) GetTxStatus(r *http.Request, args *api.JSONTxID, reply *GetTxStatusReply) error
GetTxStatus returns the status of the specified transaction
func (*Service) GetUTXOs ¶
func (service *Service) GetUTXOs(r *http.Request, args *api.GetUTXOsArgs, reply *api.GetUTXOsReply) error
GetUTXOs gets all utxos for passed in addresses
func (*Service) Import ¶ added in v1.0.0
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) ImportAVAX ¶ added in v0.8.0
ImportAVAX is a deprecated name for Import.
func (*Service) ImportKey ¶
func (service *Service) ImportKey(r *http.Request, args *ImportKeyArgs, reply *api.JSONAddress) error
ImportKey adds a private key to the provided user
func (*Service) ListAddresses ¶ added in v0.8.0
func (service *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 v0.8.0
func (service *Service) MintNFT(r *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.0.1
func (service *Service) SendMultiple(r *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
SendMultiple sends a transaction with multiple outputs.
func (*Service) SendNFT ¶ added in v0.8.0
func (service *Service) SendNFT(r *http.Request, args *SendNFTArgs, reply *api.JSONTxIDChangeAddr) error
SendNFT sends an NFT
type StaticService ¶
type StaticService struct{}
StaticService defines the base service for the asset vm
func CreateStaticService ¶ added in v1.0.3
func CreateStaticService() *StaticService
CreateStaticService ...
func (*StaticService) BuildGenesis ¶
func (ss *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 Tx ¶
type Tx struct { UnsignedTx `serialize:"true" json:"unsignedTx"` Creds []verify.Verifiable `serialize:"true" json:"credentials"` // The credentials of this transaction }
Tx is the core operation that can be performed. The tx uses the UTXO model. Specifically, a txs inputs will consume previous txs outputs. A tx will be valid if the inputs have the authority to consume the outputs they are attempting to consume and the inputs consume sufficient state to produce the outputs.
func (*Tx) Credentials ¶
func (t *Tx) Credentials() []verify.Verifiable
Credentials describes the authorization that allows the Inputs to consume the specified UTXOs. The returned array should not be modified.
func (*Tx) SemanticVerify ¶
func (t *Tx) SemanticVerify(vm *VM, tx UnsignedTx) error
SemanticVerify verifies that this transaction is well-formed.
func (*Tx) SignSECP256K1Fx ¶ added in v0.8.0
SignSECP256K1Fx ...
type UniqueTx ¶
type UniqueTx struct { *TxState // 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) 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
type UnsignedTx ¶
type UnsignedTx interface { Initialize(unsignedBytes, bytes []byte) ID() ids.ID UnsignedBytes() []byte Bytes() []byte ConsumedAssetIDs() ids.Set AssetIDs() ids.Set NumCredentials() int InputUTXOs() []*avax.UTXOID UTXOs() []*avax.UTXO SyntacticVerify( ctx *snow.Context, c codec.Manager, txFeeAssetID ids.ID, txFee uint64, creationTxFee uint64, numFxs int, ) error SemanticVerify(vm *VM, tx UnsignedTx, creds []verify.Verifiable) error ExecuteWithSideEffects(vm *VM, batch database.Batch) error }
UnsignedTx ...
type VM ¶
VM implements the avalanche.DAGVM interface
func (*VM) Bootstrapped ¶ added in v0.8.0
Bootstrapped is called by the consensus engine when it is done bootstrapping this chain
func (*VM) Bootstrapping ¶ added in v0.8.0
Bootstrapping is called by the consensus engine when it starts bootstrapping this chain
func (*VM) CodecRegistry ¶ added in v1.0.6
CodecRegistry returns a reference to the internal codec registry of this VM
func (*VM) CreateHandlers ¶
func (vm *VM) CreateHandlers() (map[string]*common.HTTPHandler, error)
CreateHandlers implements the avalanche.DAGVM interface
func (*VM) CreateStaticHandlers ¶
func (vm *VM) CreateStaticHandlers() (map[string]*common.HTTPHandler, error)
CreateStaticHandlers implements the common.StaticVM interface
func (*VM) FormatAddress ¶ added in v0.8.0
FormatAddress takes in a chainID and a raw address and produces the formatted address
func (*VM) FormatLocalAddress ¶ added in v0.8.0
FormatLocalAddress takes in a raw address and produces the formatted address
func (*VM) GetAtomicUTXOs ¶
func (vm *VM) GetAtomicUTXOs( chainID ids.ID, addrs ids.ShortSet, startAddr ids.ShortID, startUTXOID ids.ID, limit int, ) ([]*avax.UTXO, ids.ShortID, ids.ID, error)
GetAtomicUTXOs returns imported/exports UTXOs such that at least one of the addresses in [addrs] is referenced. Returns at most [limit] UTXOs. If [limit] <= 0 or [limit] > maxUTXOsToFetch, it is set to [maxUTXOsToFetch]. Returns: * The fetched UTXOs * true if all there are no more UTXOs in this range to fetch * The address associated with the last UTXO fetched * The ID of the last UTXO fetched
func (*VM) GetUTXOs ¶
func (vm *VM) GetUTXOs( addrs ids.ShortSet, startAddr ids.ShortID, startUTXOID ids.ID, limit int, paginate bool, ) ([]*avax.UTXO, ids.ShortID, ids.ID, error)
GetUTXOs returns UTXOs such that at least one of the addresses in [addrs] is referenced. Returns at most [limit] UTXOs. If [limit] <= 0 or [limit] > maxUTXOsToFetch, it is set to [maxUTXOsToFetch]. Only returns UTXOs associated with addresses >= [startAddr]. For address [startAddr], only returns UTXOs whose IDs are greater than [startUTXOID]. Given a ![paginate] input all utxos will be fetched Returns: * The fetched UTXOs * The address associated with the last UTXO fetched * The ID of the last UTXO fetched
func (*VM) HealthCheck ¶ added in v1.2.1
Health implements the common.VM interface TODO add health checks
func (*VM) Initialize ¶
func (vm *VM) Initialize( ctx *snow.Context, db database.Database, genesisBytes []byte, toEngine chan<- common.Message, fxs []*common.Fx, ) error
Initialize implements the avalanche.DAGVM interface
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 v0.8.0
func (vm *VM) LoadUser( username string, password string, addrsToUse ids.ShortSet, ) ( []*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) Mint ¶ added in v0.8.0
func (vm *VM) Mint( utxos []*avax.UTXO, kc *secp256k1fx.Keychain, amounts map[ids.ID]uint64, to ids.ShortID, ) ( []*Operation, [][]*crypto.PrivateKeySECP256K1R, error, )
Mint ...
func (*VM) MintNFT ¶ added in v0.8.0
func (vm *VM) MintNFT( utxos []*avax.UTXO, kc *secp256k1fx.Keychain, assetID ids.ID, payload []byte, to ids.ShortID, ) ( []*Operation, [][]*crypto.PrivateKeySECP256K1R, error, )
MintNFT ...
func (*VM) ParseAddress ¶ added in v0.8.0
ParseAddress takes in an address and produces the ID of the chain it's for the ID of the address
func (*VM) ParseLocalAddress ¶ added in v0.8.0
ParseLocalAddress takes in an address for this chain and produces the ID
func (*VM) PendingTxs ¶
Pending implements the avalanche.DAGVM interface
func (*VM) Spend ¶ added in v0.8.0
func (vm *VM) Spend( utxos []*avax.UTXO, kc *secp256k1fx.Keychain, amounts map[ids.ID]uint64, ) ( map[ids.ID]uint64, []*avax.TransferableInput, [][]*crypto.PrivateKeySECP256K1R, error, )
Spend ...
func (*VM) SpendAll ¶ added in v0.8.0
func (vm *VM) SpendAll( utxos []*avax.UTXO, kc *secp256k1fx.Keychain, ) ( map[ids.ID]uint64, []*avax.TransferableInput, [][]*crypto.PrivateKeySECP256K1R, error, )
SpendAll ...
type WalletClient ¶ added in v1.1.2
type WalletClient struct {
// contains filtered or unexported fields
}
WalletClient ...
func NewWalletClient ¶ added in v1.1.2
func NewWalletClient(uri, chain string, requestTimeout time.Duration) *WalletClient
NewWalletClient returns an AVM wallet client for interacting with avm managed wallet on [chain]
func (*WalletClient) IssueTx ¶ added in v1.1.2
func (c *WalletClient) IssueTx(txBytes []byte) (ids.ID, error)
IssueTx issues a transaction to a node and returns the TxID
func (*WalletClient) Send ¶ added in v1.1.2
func (c *WalletClient) Send( user api.UserPass, from []string, changeAddr string, amount uint64, assetID, to, memo string, ) (ids.ID, error)
Send [amount] of [assetID] to address [to]
func (*WalletClient) SendMultiple ¶ added in v1.1.2
func (c *WalletClient) SendMultiple( user api.UserPass, from []string, changeAddr string, outputs []SendOutput, memo string, ) (ids.ID, error)
SendMultiple sends a transaction from [user] funding all [outputs]
type WalletService ¶ added in v1.0.3
type WalletService struct {
// contains filtered or unexported fields
}
WalletService ...
func (*WalletService) IssueTx ¶ added in v1.0.3
func (w *WalletService) IssueTx(r *http.Request, args *api.FormattedTx, reply *api.JSONTxID) error
IssueTx attempts to issue a transaction into consensus
func (*WalletService) Send ¶ added in v1.0.3
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.0.3
func (w *WalletService) SendMultiple(r *http.Request, args *SendMultipleArgs, reply *api.JSONTxIDChangeAddr) error
SendMultiple sends a transaction with multiple outputs.
Source Files ¶
- base_tx.go
- client.go
- codec_registry.go
- create_asset_tx.go
- export_tx.go
- factory.go
- fx.go
- genesis.go
- health.go
- import_tx.go
- initial_state.go
- metrics.go
- operation.go
- operation_tx.go
- prefixed_state.go
- pubsub_filterer.go
- service.go
- state.go
- static_service.go
- tx.go
- unique_tx.go
- user_state.go
- vm.go
- wallet_client.go
- wallet_service.go