Skip to content

Inconsistent behaviour when handling zero-amount transfers across implementations #925

Description

@johnsaigle

Currently, different runtimes handle the amount == 0 case differently.

  • EVM rejects
  • XRPL rejects
  • SVM allows
  • Sui allows

There are good arguments either way.

Accept case:

  • Conceptually, transferring a value of zero is fine
  • At least one integrator has used the zero-value case to mean that a data-only message is being sent

Reject case:

  • More clear that value is expected to be transferred in the normal case
  • Prevents degenerate empty-data cases from being processed downstream

In any case, we haven't felt strongly enough to promote this as an invariant or to make a decision that makes this canonical one way or the other. At the moment, this issue serves just to show that we're aware of the behaviour and to let integrators know about the inconsistency.

Related: #725

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions