Skip to content

More explicit support for getVerifiedWarpMessage as Anycast vs. Explicit Destination #868

Closed
@aaronbuchwald

Description

@aaronbuchwald

The Warp precompile currently supports getVerifiedWarpMessage, which will verify that a warp message was signed by a threshold of the source blockchainID's validator set. The address-to-address payload type specifies a destinationChainID as well, and the current implementation does not require that the destinationChainID matches the actual blockchainID of the blockchain receiving this message.

The motivation for this was to support Anycast messages in a lightweight way and defer verification of the destinationChainID to the caller.

This ticket is a feature request to support a more explicit "safe" version of getVerifiedWarpMessage that does this check for you and separates the Anycast and explicit destination handler functions.

Specifically, this proposes that we break it down into two functions:

  • getVerifiedWarpMessage which verifies the destinationChainID matches the receiving chain's blockchainID
  • getAnyCastVerifiedWarpMessage which verifies the destinationChainID is exactly the AnycastChainID defined in AvalancheGo (or alternatively keeps the current behavior of deferring to the caller to allow any blockchainID is specified for the destinationChainID

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions