blocktrail-sdk-nodejs
blocktrail-sdk-nodejs copied to clipboard
Tests for remainder of SizeEstimation cases
We test multisig in a few forms, but we should support size estimation of any of the following:
- [ ]
p2wpkh
, andP2SH(p2wpkh)
- [x]
multisig
, andP2SH(multisig)
, andP2WSH(multisig)
, andP2SH(P2WSH(multisig))
- [ ]
p2pk
, andP2SH(p2pk)
, andP2WSH(p2pk)
, andP2SH(P2WSH(p2pk))
- [ ]
p2pkh
, andP2SH(p2pkh)
, andP2WSH(p2pkh)
, andP2SH(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 :)