From 90466d6cde6f3afc89b1f51aae075af332133d13 Mon Sep 17 00:00:00 2001 From: Scott Schurr Date: Thu, 17 Dec 2015 09:57:19 -0800 Subject: [PATCH] Use addWithoutSigningFields in jtx::sign --- src/ripple/test/jtx/impl/Env_test.cpp | 19 +++++++++++++++++++ src/ripple/test/jtx/impl/utility.cpp | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/ripple/test/jtx/impl/Env_test.cpp b/src/ripple/test/jtx/impl/Env_test.cpp index 8c8127d30..1db9e0583 100644 --- a/src/ripple/test/jtx/impl/Env_test.cpp +++ b/src/ripple/test/jtx/impl/Env_test.cpp @@ -561,6 +561,24 @@ public: ); } + // Test that jtx can re-sign a transaction that's already been signed. + void testResignSigned() + { + using namespace jtx; + Env env(*this); + + env.fund(XRP(10000), "alice"); + auto const baseFee = env.open()->fees().base; + std::uint32_t const aliceSeq = env.seq ("alice"); + + // Sign jsonNoop. + Json::Value jsonNoop = env.json ( + noop ("alice"), fee(baseFee), seq(aliceSeq), sig("alice")); + // Re-sign jsonNoop. + JTx jt = env.jt (jsonNoop); + env (jt); + } + void run() { @@ -580,6 +598,7 @@ public: testAdvance(); testClose(); testPath(); + testResignSigned(); } }; diff --git a/src/ripple/test/jtx/impl/utility.cpp b/src/ripple/test/jtx/impl/utility.cpp index e55af792e..a998f9f36 100644 --- a/src/ripple/test/jtx/impl/utility.cpp +++ b/src/ripple/test/jtx/impl/utility.cpp @@ -50,7 +50,7 @@ sign (Json::Value& jv, strHex(account.pk().slice()); Serializer ss; ss.add32 (HashPrefix::txSign); - parse(jv).add(ss); + parse(jv).addWithoutSigningFields(ss); auto const sig = ripple::sign( *publicKeyType(account.pk().slice()), account.sk(), ss.slice());