README ¶
Payload
An Avalanche Unsigned Warp Message already includes a networkID
, sourceChainID
, and payload
field. The payload
field can be parsed into one of the types included in this package to be further handled by the VM.
Hash
Hash:
+-----------------+----------+-----------+
| codecID : uint16 | 2 bytes |
+-----------------+----------+-----------+
| typeID : uint32 | 4 bytes |
+-----------------+----------+-----------+
| hash : [32]byte | 32 bytes |
+-----------------+----------+-----------+
| 38 bytes |
+-----------+
codecID
is the codec version used to serialize the payload and is hardcoded to0x0000
typeID
is the payload type identifier and is0x00000000
forHash
hash
is a hash from thesourceChainID
. The format of the expected preimage is chain specific. Some examples for valid hash values are:- root of a merkle tree
- accepted block hash on the source chain
- accepted transaction hash on the source chain
AddressedCall
AddressedCall:
+---------------------+--------+----------------------------------+
| codecID : uint16 | 2 bytes |
+---------------------+--------+----------------------------------+
| typeID : uint32 | 4 bytes |
+---------------------+--------+----------------------------------+
| sourceAddress : []byte | 4 + len(address) |
+---------------------+--------+----------------------------------+
| payload : []byte | 4 + len(payload) |
+---------------------+--------+----------------------------------+
| 14 + len(payload) + len(address) |
+----------------------------------+
codecID
is the codec version used to serialize the payload and is hardcoded to0x0000
typeID
is the payload type identifier and is0x00000001
forAddressedCall
sourceAddress
is the address that sent this message from the source chainpayload
is an arbitrary byte array payload
Documentation ¶
Index ¶
Constants ¶
const ( CodecVersion = 0 MaxMessageSize = 24 * units.KiB )
Variables ¶
var Codec codec.Manager
Functions ¶
This section is empty.
Types ¶
type AddressedCall ¶
type AddressedCall struct { SourceAddress []byte `serialize:"true"` Payload []byte `serialize:"true"` // contains filtered or unexported fields }
AddressedCall defines the format for delivering a call across VMs including a source address and a payload.
Note: If a destination address is expected, it should be encoded in the payload.
func NewAddressedCall ¶
func NewAddressedCall(sourceAddress []byte, payload []byte) (*AddressedCall, error)
NewAddressedCall creates a new *AddressedCall and initializes it.
func ParseAddressedCall ¶
func ParseAddressedCall(b []byte) (*AddressedCall, error)
ParseAddressedCall converts a slice of bytes into an initialized AddressedCall.
func (*AddressedCall) Bytes ¶
func (a *AddressedCall) Bytes() []byte
Bytes returns the binary representation of this payload. It assumes that the payload is initialized from either NewAddressedCall or Parse.