Description
The following operation results indicate that an operation failed because the issuer of an asset does not exist: PAYMENT_NO_ISSUER
, PATH_PAYMENT_STRICT_RECEIVE_NO_ISSUER
, PATH_PAYMENT_STRICT_SEND_NO_ISSUER
, MANAGE_SELL_OFFER_SELL_NO_ISSUER
, MANAGE_SELL_OFFER_BUY_NO_ISSUER
, MANAGE_BUY_OFFER_SELL_NO_ISSUER
, MANAGE_BUY_OFFER_BUY_NO_ISSUER
, and CHANGE_TRUST_NO_ISSUER
. Each of the operations that can produce these results other than ChangeTrustOp
does not otherwise depend on the existence of the issuer. As for ChangeTrustOp
, the situation is more complicated because the result does actually depend on the state of the issuer account (specifically, the flags such as AUTH_REQUIRED
). But any account is able to create the issuer account if it does not exist, even if they do not know the underlying private key. Therefore it is sensible to set the behavior of ChangeTrustOp
to default to no flags if the account does not exist, since any account is able to force this behavior anyway. Analogously, any account can avoid this result in the other operations by first creating the issuer account.
Given the above, I propose to remove all NO_ISSUER
results. This is related to the development of CAP-0023 (Two-Part Payments) because otherwise we may want to return NO_ISSUER
results there as well.
Activity