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
Currently, different runtimes handle the
amount == 0case differently.There are good arguments either way.
Accept case:
Reject case:
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