blocktrail-sdk-nodejs icon indicating copy to clipboard operation
blocktrail-sdk-nodejs copied to clipboard

Tests for remainder of SizeEstimation cases

Open afk11 opened this issue 6 years ago • 0 comments

We test multisig in a few forms, but we should support size estimation of any of the following:

  • [ ] p2wpkh, and P2SH(p2wpkh)
  • [x] multisig, and P2SH(multisig), and P2WSH(multisig), and P2SH(P2WSH(multisig))
  • [ ] p2pk, and P2SH(p2pk), and P2WSH(p2pk), and P2SH(P2WSH(p2pk))
  • [ ] p2pkh, and P2SH(p2pkh), and P2WSH(p2pkh), and P2SH(P2WSH(p2pkh))

The test cases are organized into stack tests, which only need to know the p2pkh, p2pk, or multisig part (no p2sh or p2wsh knowledge is required for these) https://github.com/blocktrail/blocktrail-sdk-nodejs/blob/3347f946ec5ac6f85410ffcf33c3c13e6fed3f7d/test/size_estimation.test.js#L40

The next part is testing every possible representation of the three basic supported types. This means testing it by itself, as P2SH, along with P2WSH & and P2SH(P2WSH()) if it's allowed (P2WPKH can't be wrapped in P2WSH). This tests the estimation of the full scriptSig and witness. https://github.com/blocktrail/blocktrail-sdk-nodejs/blob/3347f946ec5ac6f85410ffcf33c3c13e6fed3f7d/test/size_estimation.test.js#L40

Not the best illustrative example, but finally there are tests of estimating the size of a utxo object. https://github.com/blocktrail/blocktrail-sdk-nodejs/blob/3347f946ec5ac6f85410ffcf33c3c13e6fed3f7d/test/size_estimation.test.js#L237

The last two could probably be unified a bit, but though for now it shows what we need :)

afk11 avatar Nov 07 '17 17:11 afk11