Skip to content

Commit

Permalink
Merge #636: have peg-in witness creation strip witness for space savings
Browse files Browse the repository at this point in the history
7737d29 have peg-in witness creation strip witness for space savings (Gregory Sanders)

Pull request description:

  Cheaper peg-in witness for those with segwit transactions in Bitcoin.

  resolves #628

Tree-SHA512: defc4f38b2456c6f45cf2ebd48a3d5f9e39544bd048606257ef6cf90623595c159f61e3df56845fb7a37a44b5019614e692663978a9664dd9b4d01b77bedeb86
  • Loading branch information
stevenroose committed Jun 5, 2019
2 parents a6beb25 + 7737d29 commit 1b78b9f
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/wallet/rpcwallet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5417,14 +5417,19 @@ static UniValue createrawpegin(const JSONRPCRequest& request, T_tx_ref& txBTCRef
mtx.vout.push_back(CTxOut(Params().GetConsensus().pegged_asset, value, GetScriptForDestination(wpkhash)));
mtx.vout.push_back(CTxOut(Params().GetConsensus().pegged_asset, 0, CScript()));

// Strip witness data for proof inclusion since only TXID-covered fields matters
CDataStream ssTxBack(SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS);
ssTxBack << txBTC;
std::vector<unsigned char> tx_data_stripped(ssTxBack.begin(), ssTxBack.end());

// Construct pegin proof
CScriptWitness pegin_witness;
std::vector<std::vector<unsigned char> >& stack = pegin_witness.stack;
stack.push_back(value_bytes);
stack.push_back(std::vector<unsigned char>(Params().GetConsensus().pegged_asset.begin(), Params().GetConsensus().pegged_asset.end()));
stack.push_back(std::vector<unsigned char>(genesisBlockHash.begin(), genesisBlockHash.end()));
stack.push_back(std::vector<unsigned char>(witness_script.begin(), witness_script.end()));
stack.push_back(txData);
stack.push_back(tx_data_stripped);
stack.push_back(txOutProofData);

// Peg-in witness isn't valid, even though the block header is(without depth check)
Expand Down

0 comments on commit 1b78b9f

Please sign in to comment.