diff --git a/src/cpp/ripple/PaymentTransactor.cpp b/src/cpp/ripple/PaymentTransactor.cpp index 6fa282eb79..50e48501c7 100644 --- a/src/cpp/ripple/PaymentTransactor.cpp +++ b/src/cpp/ripple/PaymentTransactor.cpp @@ -77,18 +77,18 @@ TER PaymentTransactor::doApply() if (!saDstAmount.isNative()) { - // This restriction could be relaxed. - Log(lsINFO) << "doPayment: Malformed transaction: Create account may only fund XRP."; + Log(lsINFO) << "doPayment: Delay transaction: Destination account does not exist."; - return temCREATEXRP; + // Another transaction could create the account and then this transaction would succeed. + return terNO_DST; } else if (isSetBit(mParams, tapOPEN_LEDGER) // Ledger is not final, we can vote. && saDstAmount.getNValue() < theConfig.FEE_ACCOUNT_RESERVE) // Reserve is not scaled by fee. { - Log(lsINFO) << "doPayment: Delay transaction: Destination account does not exist insufficent payment to create account."; + Log(lsINFO) << "doPayment: Delay transaction: Destination account does not exist. Insufficent payment to create account."; - // Not a local failure. Another transaction could create account and then this transaction would succeed. - return terNO_DST; + // Another transaction could create the account and then this transaction would succeed. + return terNO_DST_INSUF_XRP; } // Create the account. diff --git a/src/cpp/ripple/TransactionErr.cpp b/src/cpp/ripple/TransactionErr.cpp index 3615a56d89..863b4956e7 100644 --- a/src/cpp/ripple/TransactionErr.cpp +++ b/src/cpp/ripple/TransactionErr.cpp @@ -34,7 +34,6 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman) { temBAD_TRANSFER_RATE, "temBAD_TRANSFER_RATE", "Malformed: Transfer rate must be >= 1.0" }, { temBAD_SET_ID, "temBAD_SET_ID", "Malformed." }, { temBAD_SEQUENCE, "temBAD_SEQUENCE", "Malformed: Sequence in not in the past." }, - { temCREATEXRP, "temCREATEXRP", "Can not specify non XRP for Create." }, { temDST_IS_SRC, "temDST_IS_SRC", "Destination may not be source." }, { temDST_NEEDED, "temDST_NEEDED", "Destination not specified." }, { temINSUF_FEE_P, "temINSUF_FEE_P", "Fee not allowed." }, @@ -52,7 +51,8 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman) { terFUNDS_SPENT, "terFUNDS_SPENT", "Can't set password, password set funds already spent." }, { terINSUF_FEE_B, "terINSUF_FEE_B", "Account balance can't pay fee." }, { terNO_ACCOUNT, "terNO_ACCOUNT", "The source account does not exist." }, - { terNO_DST, "terNO_DST", "The destination does not exist." }, + { terNO_DST, "terNO_DST", "Destination does not exist. Send XRP to create it." }, + { terNO_DST_INSUF_XRP, "terNO_DST_INSUF_XRP", "Destination does not exist. Too little XRP sent to create it." }, { terNO_LINE, "terNO_LINE", "No such line." }, { terNO_LINE_NO_ZERO, "terNO_LINE_NO_ZERO", "Can't zero non-existant line, destination might make it." }, { terPRE_SEQ, "terPRE_SEQ", "Missing/inapplicable prior transaction." }, diff --git a/src/cpp/ripple/TransactionErr.h b/src/cpp/ripple/TransactionErr.h index 5b7fcf664f..8292dd3aaa 100644 --- a/src/cpp/ripple/TransactionErr.h +++ b/src/cpp/ripple/TransactionErr.h @@ -36,7 +36,6 @@ enum TER // aka TransactionEngineResult temBAD_TRANSFER_RATE, temBAD_SEQUENCE, temBAD_SET_ID, - temCREATEXRP, temDST_IS_SRC, temDST_NEEDED, temINSUF_FEE_P, @@ -83,6 +82,7 @@ enum TER // aka TransactionEngineResult terINSUF_FEE_B, terNO_ACCOUNT, terNO_DST, + terNO_DST_INSUF_XRP, terNO_LINE, terNO_LINE_NO_ZERO, terPRE_SEQ,