Documentation
¶
Index ¶
- Constants
- Variables
- func ImportedAssetID(assetID ids.ID, sourceChainID ids.ID) ids.ID
- func ImportedAssetMetadata(assetID ids.ID, sourceChainID ids.ID) []byte
- func UnmarshalBurnAsset(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func UnmarshalCreateAsset(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func UnmarshalExportAsset(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func UnmarshalImportAsset(p *codec.Packer, wm *warp.Message) (chain.Action, error)
- func UnmarshalMintAsset(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func UnmarshalModifyAsset(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func UnmarshalSequencerMsg(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func UnmarshalTransfer(p *codec.Packer, _ *warp.Message) (chain.Action, error)
- func ValidSwapParams(value uint64, swapIn uint64, assetOut ids.ID, swapOut uint64, swapExpiry int64) bool
- type BurnAsset
- func (b *BurnAsset) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (b *BurnAsset) Marshal(p *codec.Packer)
- func (*BurnAsset) MaxUnits(chain.Rules) uint64
- func (b *BurnAsset) StateKeys(rauth chain.Auth, _ ids.ID) [][]byte
- func (*BurnAsset) ValidRange(chain.Rules) (int64, int64)
- type CreateAsset
- func (c *CreateAsset) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (c *CreateAsset) Marshal(p *codec.Packer)
- func (c *CreateAsset) MaxUnits(chain.Rules) uint64
- func (*CreateAsset) StateKeys(_ chain.Auth, txID ids.ID) [][]byte
- func (*CreateAsset) ValidRange(chain.Rules) (int64, int64)
- type ExportAsset
- func (e *ExportAsset) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (e *ExportAsset) Marshal(p *codec.Packer)
- func (*ExportAsset) MaxUnits(chain.Rules) uint64
- func (e *ExportAsset) StateKeys(rauth chain.Auth, _ ids.ID) [][]byte
- func (*ExportAsset) ValidRange(chain.Rules) (int64, int64)
- type ImportAsset
- func (i *ImportAsset) Execute(ctx context.Context, r chain.Rules, db chain.Database, t int64, ...) (*chain.Result, error)
- func (i *ImportAsset) Marshal(p *codec.Packer)
- func (i *ImportAsset) MaxUnits(chain.Rules) uint64
- func (i *ImportAsset) StateKeys(rauth chain.Auth, _ ids.ID) [][]byte
- func (*ImportAsset) ValidRange(chain.Rules) (int64, int64)
- type MintAsset
- func (m *MintAsset) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (m *MintAsset) Marshal(p *codec.Packer)
- func (*MintAsset) MaxUnits(chain.Rules) uint64
- func (m *MintAsset) StateKeys(chain.Auth, ids.ID) [][]byte
- func (*MintAsset) ValidRange(chain.Rules) (int64, int64)
- type ModifyAsset
- func (m *ModifyAsset) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (m *ModifyAsset) Marshal(p *codec.Packer)
- func (m *ModifyAsset) MaxUnits(chain.Rules) uint64
- func (m *ModifyAsset) StateKeys(chain.Auth, ids.ID) [][]byte
- func (*ModifyAsset) ValidRange(chain.Rules) (int64, int64)
- type SequencerMsg
- func (t *SequencerMsg) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (t *SequencerMsg) Marshal(p *codec.Packer)
- func (*SequencerMsg) MaxUnits(chain.Rules) uint64
- func (t *SequencerMsg) StateKeys(rauth chain.Auth, _ ids.ID) [][]byte
- func (*SequencerMsg) ValidRange(chain.Rules) (int64, int64)
- type Transfer
- func (t *Transfer) Execute(ctx context.Context, r chain.Rules, db chain.Database, _ int64, ...) (*chain.Result, error)
- func (t *Transfer) Marshal(p *codec.Packer)
- func (*Transfer) MaxUnits(chain.Rules) uint64
- func (t *Transfer) StateKeys(rauth chain.Auth, _ ids.ID) [][]byte
- func (*Transfer) ValidRange(chain.Rules) (int64, int64)
- type WarpTransfer
Constants ¶
View Source
const MaxMetadataSize = 256
Variables ¶
View Source
var ( OutputValueZero = []byte("value is zero") OutputAssetIsNative = []byte("cannot mint native asset") OutputAssetAlreadyExists = []byte("asset already exists") OutputAssetMissing = []byte("asset missing") OutputInTickZero = []byte("in rate is zero") OutputOutTickZero = []byte("out rate is zero") OutputSupplyZero = []byte("supply is zero") OutputSupplyMisaligned = []byte("supply is misaligned") OutputOrderMissing = []byte("order is missing") OutputWrongIn = []byte("wrong in asset") OutputWrongOut = []byte("wrong out asset") OutputWrongOwner = []byte("wrong owner") OutputInsufficientInput = []byte("insufficient input") OutputInsufficientOutput = []byte("insufficient output") OutputValueMisaligned = []byte("value is misaligned") OutputMetadataTooLarge = []byte("metadata is too large") OutputSameInOut = []byte("same asset used for in and out") OutputConflictingAsset = []byte("warp has same asset as another") OutputAnycast = []byte("anycast output") OutputNotWarpAsset = []byte("not warp asset") OutputWarpAsset = []byte("warp asset") OutputWrongDestination = []byte("wrong destination") OutputMustFill = []byte("must fill request") OutputWarpVerificationFailed = []byte("warp verification failed") )
View Source
var ErrNoSwapToFill = errors.New("no swap to fill")
Functions ¶
func ImportedAssetMetadata ¶
func UnmarshalBurnAsset ¶
func UnmarshalCreateAsset ¶
func UnmarshalExportAsset ¶
func UnmarshalImportAsset ¶
func UnmarshalMintAsset ¶
func UnmarshalModifyAsset ¶
func UnmarshalSequencerMsg ¶
func UnmarshalTransfer ¶
Types ¶
type BurnAsset ¶
type BurnAsset struct {
// Asset is the [TxID] that created the asset.
Asset ids.ID `json:"asset"`
// Number of assets to mint to [To].
Value uint64 `json:"value"`
}
type CreateAsset ¶
type CreateAsset struct {
// Metadata is creator-specified information about the asset. This can be
// modified using the [ModifyAsset] action.
Metadata []byte `json:"metadata"`
}
func (*CreateAsset) Marshal ¶
func (c *CreateAsset) Marshal(p *codec.Packer)
func (*CreateAsset) ValidRange ¶
func (*CreateAsset) ValidRange(chain.Rules) (int64, int64)
type ExportAsset ¶
type ExportAsset struct {
To crypto.PublicKey `json:"to"`
Asset ids.ID `json:"asset"`
Value uint64 `json:"value"`
Return bool `json:"return"`
Reward uint64 `json:"reward"`
SwapIn uint64 `json:"swapIn"`
AssetOut ids.ID `json:"assetOut"`
SwapOut uint64 `json:"swapOut"`
SwapExpiry int64 `json:"swapExpiry"`
Destination ids.ID `json:"destination"`
}
func (*ExportAsset) Marshal ¶
func (e *ExportAsset) Marshal(p *codec.Packer)
func (*ExportAsset) ValidRange ¶
func (*ExportAsset) ValidRange(chain.Rules) (int64, int64)
type ImportAsset ¶
type ImportAsset struct {
// Fill indicates if the actor wishes to fill the order request in the warp
// message. This must be true if the warp message is in a block with
// a timestamp < [SwapExpiry].
Fill bool `json:"fill"`
// contains filtered or unexported fields
}
func (*ImportAsset) Marshal ¶
func (i *ImportAsset) Marshal(p *codec.Packer)
All we encode that is action specific for now is the type byte from the registry.
func (*ImportAsset) ValidRange ¶
func (*ImportAsset) ValidRange(chain.Rules) (int64, int64)
type MintAsset ¶
type MintAsset struct {
// To is the recipient of the [Value].
To crypto.PublicKey `json:"to"`
// Asset is the [TxID] that created the asset.
Asset ids.ID `json:"asset"`
// Number of assets to mint to [To].
Value uint64 `json:"value"`
}
type ModifyAsset ¶
type ModifyAsset struct {
// Asset is the [TxID] that created the asset.
Asset ids.ID
// Owner will be the new owner of the [Asset].
//
// If you want to retain ownership, set this to the signer. If you want to
// revoke ownership, set this to another key or the empty public key.
Owner crypto.PublicKey `json:"owner"`
// Metadata is the new metadata of the [Asset].
//
// If you want this to stay the same, you must set it to be the same value.
Metadata []byte `json:"metadata"`
}
func (*ModifyAsset) Marshal ¶
func (m *ModifyAsset) Marshal(p *codec.Packer)
func (*ModifyAsset) ValidRange ¶
func (*ModifyAsset) ValidRange(chain.Rules) (int64, int64)
type SequencerMsg ¶
type SequencerMsg struct {
//TODO might need to add this back in at some point but rn it should be fine
ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
FromAddress crypto.PublicKey `json:"from_address"`
}
func (*SequencerMsg) Marshal ¶
func (t *SequencerMsg) Marshal(p *codec.Packer)
func (*SequencerMsg) ValidRange ¶
func (*SequencerMsg) ValidRange(chain.Rules) (int64, int64)
type Transfer ¶
type Transfer struct {
// To is the recipient of the [Value].
To crypto.PublicKey `json:"to"`
// Asset to transfer to [To].
Asset ids.ID
// Amount are transferred to [To].
Value uint64 `json:"value"`
}
type WarpTransfer ¶
type WarpTransfer struct {
To crypto.PublicKey `json:"to"`
Asset ids.ID `json:"asset"`
Value uint64 `json:"value"`
// Return is set to true when a warp message is sending funds back to the
// chain where they were created.
Return bool `json:"return"`
// Reward is the amount of [Asset] to send the [Actor] that submits this
// transaction.
Reward uint64 `json:"reward"`
// SwapIn is the amount of [Asset] we are willing to swap for [AssetOut].
SwapIn uint64 `json:"swapIn"`
// AssetOut is the asset we are seeking to get for [SwapIn].
AssetOut ids.ID `json:"assetOut"`
// SwapOut is the amount of [AssetOut] we are seeking.
SwapOut uint64 `json:"swapOut"`
// SwapExpiry is the unix timestamp at which the swap becomes invalid (and
// the message can be processed without a swap.
SwapExpiry int64 `json:"swapExpiry"`
// TxID is the transaction that created this message. This is used to ensure
// there is WarpID uniqueness.
TxID ids.ID `json:"txID"`
}
func UnmarshalWarpTransfer ¶
func UnmarshalWarpTransfer(b []byte) (*WarpTransfer, error)
func (*WarpTransfer) Marshal ¶
func (w *WarpTransfer) Marshal() ([]byte, error)
Click to show internal directories.
Click to hide internal directories.