Integrating Warp Payload Types into AvalancheGo for Cross-VM Compatibility #2050
Replies: 2 comments 1 reply
-
Given that Teleporter (https://github.com/ava-labs/teleporter) is using Nick's method to deploy and ensure that it is always talking to another instance of Teleporter on a different chain by checking the For example, we could remove the curious what you think about moving this out of Warp @michaelkaplan13 |
Beta Was this translation helpful? Give feedback.
-
For the |
Beta Was this translation helpful? Give feedback.
-
Subnet-EVM has defined two payload types for exchanging Avalanche Warp Messages, which were developed targeting the EVM: https://github.com/ava-labs/subnet-evm/tree/v0.5.6/warp/payload that I'd propose we migrate into AvalancheGo as a standard and so that they can be imported more easily instead of requiring Coreth or Subnet-EVM as an extra dependency.
The current payload types are a
BlockHashPayload
which includes only aBlockHash
that is considered accepted by the source chain that signed the Avalanche Warp Message.The second payload type is an
AddressedPayload
, which was designed to enable a verifiable address-to-address call across different chains. TheAddressedPayload
type includes a sourceChain, sourceAddress, destinationChain, destinationAddress, and an arbitrary byte array payload.The sourceChain and destinationChain are the 32 byte blockchainIDs of the source and destination chains, which are the txID of the transactions that created those blockchains on the P-Chain, so they are not specific to Subnet-EVM.
The payload is an arbitrary byte payload, which is not EVM specific (although it will initially be used to transmit ABI encoded function arguments).
The sourceAddress and destinationAddress fields contain 20 byte addresses, which is the only EVM specific choice. Addresses in the EVM are 20 bytes, whereas other VMs may not use 20 byte addresses
If we are going to move this into AvalancheGo, then I'd propose switching from using a 20 byte address to a variable length address, so that it is compatible with VMs using a different address length.
Beta Was this translation helpful? Give feedback.
All reactions