diff --git a/modules/utxo-lib/src/testutil/mock.ts b/modules/utxo-lib/src/testutil/mock.ts index 21ac8e5491..9f27700cde 100644 --- a/modules/utxo-lib/src/testutil/mock.ts +++ b/modules/utxo-lib/src/testutil/mock.ts @@ -1,10 +1,11 @@ import { ok as assert } from 'assert'; import { BIP32Interface } from '@bitgo/secp256k1'; -import * as utxolib from '..'; +import { payments } from '..'; import { getMainnet, Network, networks } from '../networks'; import { ChainCode, + withUnsafeNonSegwit, createPsbtForNetwork, fromOutput, fromOutputWithPrevTx, @@ -37,7 +38,7 @@ export function mockPrevTx( const keypair = getKey('mock-prev-tx'); const pubkey = keypair.publicKey; assert(keypair.privateKey); - const payment = utxolib.payments.p2pkh({ pubkey }); + const payment = payments.p2pkh({ pubkey }); const destOutput = payment.output; if (!destOutput) throw new Error('Impossible, payment we just constructed has no output'); @@ -54,7 +55,7 @@ export function mockPrevTx( witnessUtxo: { script: destOutput, value: value * (BigInt(vout) + BigInt(1)) + BigInt(1000) }, }); // Don't require the prevTx for signing and finalizing for non-segwit input - utxolib.bitgo.withUnsafeNonSegwit(psbtFromNetwork, () => { + withUnsafeNonSegwit(psbtFromNetwork, () => { psbtFromNetwork.signInput(0, keypair); psbtFromNetwork.validateSignaturesOfAllInputs(); psbtFromNetwork.finalizeAllInputs(); diff --git a/modules/utxo-lib/src/testutil/psbt.ts b/modules/utxo-lib/src/testutil/psbt.ts index 21b4574951..00df35a01d 100644 --- a/modules/utxo-lib/src/testutil/psbt.ts +++ b/modules/utxo-lib/src/testutil/psbt.ts @@ -212,7 +212,9 @@ export function constructPsbt( return psbt; } - psbt.setAllInputsMusig2NonceHD(rootWalletKeys['user']); + /* use fixed sessionId for deterministic nonce creation */ + const sessionId = Buffer.alloc(32); + psbt.setAllInputsMusig2NonceHD(rootWalletKeys['user'], { sessionId }); psbt.setAllInputsMusig2NonceHD(rootWalletKeys['bitgo'], { deterministic }); signAllPsbtInputs(psbt, inputs, rootWalletKeys, 'halfsigned', { signers, skipNonWitnessUtxo }); diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.fullsigned.json new file mode 100644 index 0000000000..fe98f87217 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.fullsigned.json @@ -0,0 +1,433 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "304402201e79545c011e34b1b872b4b057e66262d86881da6a7f853e7e57a9a4d12c6dc102201a538b2175c7b7161c76da18394220f354ae2729fcc1c902b74c59cd79e0153101" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100dd31a25d0ebea90e67910168ef7c2b383ca26192cd5c8709f02980b7ca90472802203795c65ee0f073b80644d0c8ffa1d428457ae2af3df5b5d8117949781d10c46201" + } + ] + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600", + "partialSig": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "signature": "304402205f760c27e7598a9e80a2adaf1d925c67d2e6c24aec773e5cce56d234159ab1e502201ce97d5659681ab881e10acc9c8021587f843a15336c3a8b6fb2efc053928b8501" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "signature": "3045022100df41fbcbf3c7f77182627bcb7cd17973b8ca58c16b81de98e94c0293dcf33ac202206017171914fdfbc80f933ab3b5aae4e3d36e968757e6c0788ffbeaaebc68e21e01" + } + ] + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae", + "partialSig": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "signature": "3045022100d3b03fb77553144e14171c7b1b517a3bf33df87370b65e337f0a50844562261e0220585bc0913b56ad968161d343f321d77f5f94ff3cf62545932f1509239a15a38e01" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "signature": "304402206441089c8c71a4926b49a5ab12bfaa86c4b64abbc519b3d217d68fe71bc43bee02203e17d0752c0b411e9477c22c2f4556a62da39e60095c6e0774bf42aa8f491b4d01" + } + ] + }, + { + "type": "p2tr", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "5120394b94d061d7b778fed8a204ce05ed0b44954ec1622f934f84114e1173f33027", + "value": "1000" + }, + "sighashType": 0, + "tapLeafScript": [ + { + "controlBlock": "c0bc17ea2bbf6ff46bd5c0c3780be2a63880eb7bb782b39ed86f29b99f4882994e1b178b1b55d3c6aac7b039e3422dfdb9c9d75d4d6fc908e9743e88b651e48d83", + "script": "207373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496ad20aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5aac", + "leafVersion": 192 + } + ], + "tapBip32Derivation": [ + { + "leafHashes": [ + "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + ], + "pubkey": "7373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496", + "path": "0/0/31/3", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + ], + "pubkey": "aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5a", + "path": "0/0/31/3", + "masterFingerprint": "f65cd869" + } + ], + "tapScriptSig": [ + { + "pubkey": "7373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496", + "signature": "83b1bb7c6ce5868c8a723c4d350591894809b1335586f60cbfccc6dd4e28b8630a74637b1b242e5a389540db94f23bcbedee9c783830cb2afaff1f2763dbdb7b", + "leafHash": "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + }, + { + "pubkey": "aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5a", + "signature": "e7dab0d277ce7c41933136b44dcabef400f1d0e622a2255f9867d807bc8e0008cfd30766d36d736c8df7aa32917de59d0832b481c499f0917876134532306d45", + "leafHash": "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + } + ] + }, + { + "type": "p2trMusig2", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "512029bbfaf4385b10dc2bbe7ab4d50e89cebe8f507968727b19689e2638083cc55b", + "value": "1000" + }, + "sighashType": 0, + "tapLeafScript": [ + { + "controlBlock": "c1a107a403f7a207e7b1f552d3fd3f55f64ae40e149d0d26f4868ad7faec949eb7637e37cac6e5f22347ab68e876b559117d9597ee7b37fb983c2ab9e51023c976", + "script": "20643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478bad20035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64dac", + "leafVersion": 192 + } + ], + "tapBip32Derivation": [ + { + "leafHashes": [ + "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + ], + "pubkey": "643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478b", + "path": "0/0/41/4", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + ], + "pubkey": "035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64d", + "path": "0/0/41/4", + "masterFingerprint": "cc18ae08" + } + ], + "tapScriptSig": [ + { + "pubkey": "643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478b", + "signature": "0a1e013f6d57fb8b248b2b19b08b34c1a3cd5ff6de4acdf19dd4ce0e02d42154856dd569f4668f2abaccbb50ce81a9d2f53efdfb627c2cb14cf92c4189a35da7", + "leafHash": "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + }, + { + "pubkey": "035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64d", + "signature": "4d8e50128b5c61dd449b352a6d6f3d611e163b0794c8c2d057d25401957bb07a70420e336e18f6b255d5b869570c087091c30c1a33f0cac0a40d90d0514c69a4", + "leafHash": "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + } + ] + }, + { + "type": "taprootKeyPathSpend", + "unknownKeyVals": [ + { + "key": "fc05424954474f0115c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16eb5ad29a85aed24de2880e774caaf624f9cb1be09c67ed4aefbb9b7bc12ddf1a", + "value": "021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c53953020fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e778171" + }, + { + "key": "fc05424954474f02021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c5395315c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "03a4aaf46f3a0bc39a73855fa875b2f2f04bdb06235afbaedf857b593dddc63cb402cdb7f1a93ec526282198d834423371757e8f43932d03b9f43c3f7378300ae508" + }, + { + "key": "fc05424954474f02020fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e77817115c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "02826949740dff45d408b1f19d94c720f53411e02c525b28ab3c593b6b530fe0370374b8a0ffcaaaee6b772dac5f7c23ef33670b32ec77c6d41efb3c36df2165a094" + }, + { + "key": "fc05424954474f03021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c5395315c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "1cd8a0c0598b0d88f889fdf9a3140f8f088e2187803a2faaee3f13c0163eb76c" + }, + { + "key": "fc05424954474f03020fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e77817115c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "fbdc39c3b8ffca4e6caf3298fa1a4be546b99163c2f21bd374d2254ec5b3c0f4" + } + ], + "witnessUtxo": { + "script": "512015c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "1000" + }, + "sighashType": 0, + "tapInternalKey": "eb5ad29a85aed24de2880e774caaf624f9cb1be09c67ed4aefbb9b7bc12ddf1a", + "tapMerkleRoot": "b2a497ea4d0b52f5011ae135d0bbe0d9ebd777bb28e733cbcc13134b73106a1a", + "tapBip32Derivation": [ + { + "leafHashes": [], + "pubkey": "1d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c53953", + "path": "0/0/41/5", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [], + "pubkey": "0fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e778171", + "path": "0/0/41/5", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402202a91bae6d5c543ab51ccd0409f54469b539dd2e569f90949b8be637eabd3902802206d38f3d87b598275bef6d910e4614e4452573320ca3ddea150e4901aa3781f7c012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff07e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100d2a7abb6c0563c3000e37412a9b97f6352d17e40960456fe830d264f0474f8b6022038d5cdbe88a319de5d7b7db8f57d0a92524beb242729b46a617adb530f2fa0d001" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + }, + { + "unknownKeyVals": [], + "tapTree": { + "leaves": [ + { + "script": "2099e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40ad20a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9addac", + "leafVersion": 192, + "depth": 1 + }, + { + "script": "2099e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40ad203a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbbac", + "leafVersion": 192, + "depth": 2 + }, + { + "script": "203a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbbad20a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9addac", + "leafVersion": 192, + "depth": 2 + } + ] + }, + "tapInternalKey": "8ea58016ecabe3cf8490ec65d779141571fb9e5c12eac905d180f0e102943394", + "tapBip32Derivation": [ + { + "leafHashes": [ + "8d6609b2543534810e1219c57c1ba1fb1cc2b1a742726c0aa7f37d03d023401a", + "cf9605caec3824347bd70ad56e776095fa63f3bc6804d0430cecffe4e253d8ce" + ], + "pubkey": "99e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40", + "path": "0/0/30/3", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "cf9605caec3824347bd70ad56e776095fa63f3bc6804d0430cecffe4e253d8ce", + "bc0e3b7d952ad956bb7759de2173582c7500d8f29fe4c1ade6711b39d793581a" + ], + "pubkey": "3a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbb", + "path": "0/0/30/3", + "masterFingerprint": "cc18ae08" + }, + { + "leafHashes": [ + "8d6609b2543534810e1219c57c1ba1fb1cc2b1a742726c0aa7f37d03d023401a", + "bc0e3b7d952ad956bb7759de2173582c7500d8f29fe4c1ade6711b39d793581a" + ], + "pubkey": "a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9add", + "path": "0/0/30/3", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "unknownKeyVals": [], + "tapTree": { + "leaves": [ + { + "script": "204e8d0e8341fe95733afca3dbf1852de77695e287959797c6d8159fbfb02b48b6ad20c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499ac", + "leafVersion": 192, + "depth": 1 + }, + { + "script": "20c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499ad20683608908c8bfe95e38f099068a170140332129eeb03480b1e4806d4f4f43c2cac", + "leafVersion": 192, + "depth": 1 + } + ] + }, + "tapInternalKey": "31b5af14121c7a997e1f58dc7178f8b2589e330fe5a9dc8c16549f90cbbe9ec5", + "tapBip32Derivation": [ + { + "leafHashes": [ + "0f39500a54520faeefe84e5a4f9595943523307ef253a7ddc713189a6f5a32f0" + ], + "pubkey": "4e8d0e8341fe95733afca3dbf1852de77695e287959797c6d8159fbfb02b48b6", + "path": "0/0/40/4", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "0f39500a54520faeefe84e5a4f9595943523307ef253a7ddc713189a6f5a32f0", + "d7a356fb77b18e43bc861580e45c0044c0857e31b1bde76083d9080c33d3ffcf" + ], + "pubkey": "c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499", + "path": "0/0/40/4", + "masterFingerprint": "cc18ae08" + }, + { + "leafHashes": [ + "d7a356fb77b18e43bc861580e45c0044c0857e31b1bde76083d9080c33d3ffcf" + ], + "pubkey": "683608908c8bfe95e38f099068a170140332129eeb03480b1e4806d4f4f43c2c", + "path": "0/0/40/4", + "masterFingerprint": "f65cd869" + } + ] + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.halfsigned.json new file mode 100644 index 0000000000..1276658284 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.halfsigned.json @@ -0,0 +1,407 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "304402201e79545c011e34b1b872b4b057e66262d86881da6a7f853e7e57a9a4d12c6dc102201a538b2175c7b7161c76da18394220f354ae2729fcc1c902b74c59cd79e0153101" + } + ] + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600", + "partialSig": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "signature": "304402205f760c27e7598a9e80a2adaf1d925c67d2e6c24aec773e5cce56d234159ab1e502201ce97d5659681ab881e10acc9c8021587f843a15336c3a8b6fb2efc053928b8501" + } + ] + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae", + "partialSig": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "signature": "3045022100d3b03fb77553144e14171c7b1b517a3bf33df87370b65e337f0a50844562261e0220585bc0913b56ad968161d343f321d77f5f94ff3cf62545932f1509239a15a38e01" + } + ] + }, + { + "type": "p2tr", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "5120394b94d061d7b778fed8a204ce05ed0b44954ec1622f934f84114e1173f33027", + "value": "1000" + }, + "sighashType": 0, + "tapLeafScript": [ + { + "controlBlock": "c0bc17ea2bbf6ff46bd5c0c3780be2a63880eb7bb782b39ed86f29b99f4882994e1b178b1b55d3c6aac7b039e3422dfdb9c9d75d4d6fc908e9743e88b651e48d83", + "script": "207373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496ad20aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5aac", + "leafVersion": 192 + } + ], + "tapBip32Derivation": [ + { + "leafHashes": [ + "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + ], + "pubkey": "7373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496", + "path": "0/0/31/3", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + ], + "pubkey": "aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5a", + "path": "0/0/31/3", + "masterFingerprint": "f65cd869" + } + ], + "tapScriptSig": [ + { + "pubkey": "7373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496", + "signature": "83b1bb7c6ce5868c8a723c4d350591894809b1335586f60cbfccc6dd4e28b8630a74637b1b242e5a389540db94f23bcbedee9c783830cb2afaff1f2763dbdb7b", + "leafHash": "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + } + ] + }, + { + "type": "p2trMusig2", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "512029bbfaf4385b10dc2bbe7ab4d50e89cebe8f507968727b19689e2638083cc55b", + "value": "1000" + }, + "sighashType": 0, + "tapLeafScript": [ + { + "controlBlock": "c1a107a403f7a207e7b1f552d3fd3f55f64ae40e149d0d26f4868ad7faec949eb7637e37cac6e5f22347ab68e876b559117d9597ee7b37fb983c2ab9e51023c976", + "script": "20643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478bad20035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64dac", + "leafVersion": 192 + } + ], + "tapBip32Derivation": [ + { + "leafHashes": [ + "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + ], + "pubkey": "643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478b", + "path": "0/0/41/4", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + ], + "pubkey": "035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64d", + "path": "0/0/41/4", + "masterFingerprint": "cc18ae08" + } + ], + "tapScriptSig": [ + { + "pubkey": "643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478b", + "signature": "0a1e013f6d57fb8b248b2b19b08b34c1a3cd5ff6de4acdf19dd4ce0e02d42154856dd569f4668f2abaccbb50ce81a9d2f53efdfb627c2cb14cf92c4189a35da7", + "leafHash": "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + } + ] + }, + { + "type": "taprootKeyPathSpend", + "unknownKeyVals": [ + { + "key": "fc05424954474f0115c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16eb5ad29a85aed24de2880e774caaf624f9cb1be09c67ed4aefbb9b7bc12ddf1a", + "value": "021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c53953020fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e778171" + }, + { + "key": "fc05424954474f02021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c5395315c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "03a4aaf46f3a0bc39a73855fa875b2f2f04bdb06235afbaedf857b593dddc63cb402cdb7f1a93ec526282198d834423371757e8f43932d03b9f43c3f7378300ae508" + }, + { + "key": "fc05424954474f02020fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e77817115c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "02826949740dff45d408b1f19d94c720f53411e02c525b28ab3c593b6b530fe0370374b8a0ffcaaaee6b772dac5f7c23ef33670b32ec77c6d41efb3c36df2165a094" + }, + { + "key": "fc05424954474f03021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c5395315c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "1cd8a0c0598b0d88f889fdf9a3140f8f088e2187803a2faaee3f13c0163eb76c" + } + ], + "witnessUtxo": { + "script": "512015c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "1000" + }, + "sighashType": 0, + "tapInternalKey": "eb5ad29a85aed24de2880e774caaf624f9cb1be09c67ed4aefbb9b7bc12ddf1a", + "tapMerkleRoot": "b2a497ea4d0b52f5011ae135d0bbe0d9ebd777bb28e733cbcc13134b73106a1a", + "tapBip32Derivation": [ + { + "leafHashes": [], + "pubkey": "1d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c53953", + "path": "0/0/41/5", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [], + "pubkey": "0fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e778171", + "path": "0/0/41/5", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402202a91bae6d5c543ab51ccd0409f54469b539dd2e569f90949b8be637eabd3902802206d38f3d87b598275bef6d910e4614e4452573320ca3ddea150e4901aa3781f7c012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff07e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100d2a7abb6c0563c3000e37412a9b97f6352d17e40960456fe830d264f0474f8b6022038d5cdbe88a319de5d7b7db8f57d0a92524beb242729b46a617adb530f2fa0d001" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + }, + { + "unknownKeyVals": [], + "tapTree": { + "leaves": [ + { + "script": "2099e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40ad20a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9addac", + "leafVersion": 192, + "depth": 1 + }, + { + "script": "2099e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40ad203a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbbac", + "leafVersion": 192, + "depth": 2 + }, + { + "script": "203a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbbad20a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9addac", + "leafVersion": 192, + "depth": 2 + } + ] + }, + "tapInternalKey": "8ea58016ecabe3cf8490ec65d779141571fb9e5c12eac905d180f0e102943394", + "tapBip32Derivation": [ + { + "leafHashes": [ + "8d6609b2543534810e1219c57c1ba1fb1cc2b1a742726c0aa7f37d03d023401a", + "cf9605caec3824347bd70ad56e776095fa63f3bc6804d0430cecffe4e253d8ce" + ], + "pubkey": "99e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40", + "path": "0/0/30/3", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "cf9605caec3824347bd70ad56e776095fa63f3bc6804d0430cecffe4e253d8ce", + "bc0e3b7d952ad956bb7759de2173582c7500d8f29fe4c1ade6711b39d793581a" + ], + "pubkey": "3a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbb", + "path": "0/0/30/3", + "masterFingerprint": "cc18ae08" + }, + { + "leafHashes": [ + "8d6609b2543534810e1219c57c1ba1fb1cc2b1a742726c0aa7f37d03d023401a", + "bc0e3b7d952ad956bb7759de2173582c7500d8f29fe4c1ade6711b39d793581a" + ], + "pubkey": "a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9add", + "path": "0/0/30/3", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "unknownKeyVals": [], + "tapTree": { + "leaves": [ + { + "script": "204e8d0e8341fe95733afca3dbf1852de77695e287959797c6d8159fbfb02b48b6ad20c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499ac", + "leafVersion": 192, + "depth": 1 + }, + { + "script": "20c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499ad20683608908c8bfe95e38f099068a170140332129eeb03480b1e4806d4f4f43c2cac", + "leafVersion": 192, + "depth": 1 + } + ] + }, + "tapInternalKey": "31b5af14121c7a997e1f58dc7178f8b2589e330fe5a9dc8c16549f90cbbe9ec5", + "tapBip32Derivation": [ + { + "leafHashes": [ + "0f39500a54520faeefe84e5a4f9595943523307ef253a7ddc713189a6f5a32f0" + ], + "pubkey": "4e8d0e8341fe95733afca3dbf1852de77695e287959797c6d8159fbfb02b48b6", + "path": "0/0/40/4", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "0f39500a54520faeefe84e5a4f9595943523307ef253a7ddc713189a6f5a32f0", + "d7a356fb77b18e43bc861580e45c0044c0857e31b1bde76083d9080c33d3ffcf" + ], + "pubkey": "c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499", + "path": "0/0/40/4", + "masterFingerprint": "cc18ae08" + }, + { + "leafHashes": [ + "d7a356fb77b18e43bc861580e45c0044c0857e31b1bde76083d9080c33d3ffcf" + ], + "pubkey": "683608908c8bfe95e38f099068a170140332129eeb03480b1e4806d4f4f43c2c", + "path": "0/0/40/4", + "masterFingerprint": "f65cd869" + } + ] + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.unsigned.json new file mode 100644 index 0000000000..e27c789416 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoin.unsigned.json @@ -0,0 +1,357 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600" + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae" + }, + { + "type": "p2tr", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "5120394b94d061d7b778fed8a204ce05ed0b44954ec1622f934f84114e1173f33027", + "value": "1000" + }, + "sighashType": 0, + "tapLeafScript": [ + { + "controlBlock": "c0bc17ea2bbf6ff46bd5c0c3780be2a63880eb7bb782b39ed86f29b99f4882994e1b178b1b55d3c6aac7b039e3422dfdb9c9d75d4d6fc908e9743e88b651e48d83", + "script": "207373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496ad20aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5aac", + "leafVersion": 192 + } + ], + "tapBip32Derivation": [ + { + "leafHashes": [ + "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + ], + "pubkey": "7373d723ce0a87f8fdd66843be12dae9d51939f68188d5ad96920bef5f51f496", + "path": "0/0/31/3", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "83d7f98e9ef0f7336a06f4a0115183a9f996cbac1228e9aa7638f447f0249f30" + ], + "pubkey": "aa88ca194fda43486504b86ac9b71f10fc41de7b1713874839427f74e78c2d5a", + "path": "0/0/31/3", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "type": "p2trMusig2", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "512029bbfaf4385b10dc2bbe7ab4d50e89cebe8f507968727b19689e2638083cc55b", + "value": "1000" + }, + "sighashType": 0, + "tapLeafScript": [ + { + "controlBlock": "c1a107a403f7a207e7b1f552d3fd3f55f64ae40e149d0d26f4868ad7faec949eb7637e37cac6e5f22347ab68e876b559117d9597ee7b37fb983c2ab9e51023c976", + "script": "20643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478bad20035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64dac", + "leafVersion": 192 + } + ], + "tapBip32Derivation": [ + { + "leafHashes": [ + "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + ], + "pubkey": "643151ab03f3a97bb86d3592f12f8d25a8026d89cd47342fc1b49c5e2e63478b", + "path": "0/0/41/4", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "429069c8320ff5f1c8ac2a0b1047ff1450b8c0d325e1d12f1c52684d91a3b9fb" + ], + "pubkey": "035c9d632db2ddb8f90cf3ccfc931822bcb1f24562b23ae041abf12e54bca64d", + "path": "0/0/41/4", + "masterFingerprint": "cc18ae08" + } + ] + }, + { + "type": "taprootKeyPathSpend", + "unknownKeyVals": [ + { + "key": "fc05424954474f0115c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16eb5ad29a85aed24de2880e774caaf624f9cb1be09c67ed4aefbb9b7bc12ddf1a", + "value": "021d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c53953020fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e778171" + } + ], + "witnessUtxo": { + "script": "512015c5815026f6a54b10194fc6980f1866a02d9ec128533c7997cdb4289bf3ef16", + "value": "1000" + }, + "sighashType": 0, + "tapInternalKey": "eb5ad29a85aed24de2880e774caaf624f9cb1be09c67ed4aefbb9b7bc12ddf1a", + "tapMerkleRoot": "b2a497ea4d0b52f5011ae135d0bbe0d9ebd777bb28e733cbcc13134b73106a1a", + "tapBip32Derivation": [ + { + "leafHashes": [], + "pubkey": "1d978a17486ff9e47c82990269e531fc63981419d4ce73ee8bd2c99661c53953", + "path": "0/0/41/5", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [], + "pubkey": "0fdea69e40a3adef3cdc7fa6f3af02f4c9d9e3254503c96a6a2b4aa66e778171", + "path": "0/0/41/5", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402202a91bae6d5c543ab51ccd0409f54469b539dd2e569f90949b8be637eabd3902802206d38f3d87b598275bef6d910e4614e4452573320ca3ddea150e4901aa3781f7c012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff07e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + }, + { + "unknownKeyVals": [], + "tapTree": { + "leaves": [ + { + "script": "2099e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40ad20a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9addac", + "leafVersion": 192, + "depth": 1 + }, + { + "script": "2099e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40ad203a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbbac", + "leafVersion": 192, + "depth": 2 + }, + { + "script": "203a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbbad20a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9addac", + "leafVersion": 192, + "depth": 2 + } + ] + }, + "tapInternalKey": "8ea58016ecabe3cf8490ec65d779141571fb9e5c12eac905d180f0e102943394", + "tapBip32Derivation": [ + { + "leafHashes": [ + "8d6609b2543534810e1219c57c1ba1fb1cc2b1a742726c0aa7f37d03d023401a", + "cf9605caec3824347bd70ad56e776095fa63f3bc6804d0430cecffe4e253d8ce" + ], + "pubkey": "99e43655c2cf3d950362bb6a3a446380e80b7a1f70e52884eb576b1356dc6e40", + "path": "0/0/30/3", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "cf9605caec3824347bd70ad56e776095fa63f3bc6804d0430cecffe4e253d8ce", + "bc0e3b7d952ad956bb7759de2173582c7500d8f29fe4c1ade6711b39d793581a" + ], + "pubkey": "3a093530ea159d73c8ff93099ee0a9bb9e9aa39e0b2b84642d47b4f80d487cbb", + "path": "0/0/30/3", + "masterFingerprint": "cc18ae08" + }, + { + "leafHashes": [ + "8d6609b2543534810e1219c57c1ba1fb1cc2b1a742726c0aa7f37d03d023401a", + "bc0e3b7d952ad956bb7759de2173582c7500d8f29fe4c1ade6711b39d793581a" + ], + "pubkey": "a86d7fe67f6994113143cc16344cb1e997b8cc8e1dee23651b97c79c09af9add", + "path": "0/0/30/3", + "masterFingerprint": "f65cd869" + } + ] + }, + { + "unknownKeyVals": [], + "tapTree": { + "leaves": [ + { + "script": "204e8d0e8341fe95733afca3dbf1852de77695e287959797c6d8159fbfb02b48b6ad20c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499ac", + "leafVersion": 192, + "depth": 1 + }, + { + "script": "20c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499ad20683608908c8bfe95e38f099068a170140332129eeb03480b1e4806d4f4f43c2cac", + "leafVersion": 192, + "depth": 1 + } + ] + }, + "tapInternalKey": "31b5af14121c7a997e1f58dc7178f8b2589e330fe5a9dc8c16549f90cbbe9ec5", + "tapBip32Derivation": [ + { + "leafHashes": [ + "0f39500a54520faeefe84e5a4f9595943523307ef253a7ddc713189a6f5a32f0" + ], + "pubkey": "4e8d0e8341fe95733afca3dbf1852de77695e287959797c6d8159fbfb02b48b6", + "path": "0/0/40/4", + "masterFingerprint": "f2ef0389" + }, + { + "leafHashes": [ + "0f39500a54520faeefe84e5a4f9595943523307ef253a7ddc713189a6f5a32f0", + "d7a356fb77b18e43bc861580e45c0044c0857e31b1bde76083d9080c33d3ffcf" + ], + "pubkey": "c160c27afcc4888c593f18dee2d7985657508c03705ab6f0f635d352cbaf6499", + "path": "0/0/40/4", + "masterFingerprint": "cc18ae08" + }, + { + "leafHashes": [ + "d7a356fb77b18e43bc861580e45c0044c0857e31b1bde76083d9080c33d3ffcf" + ], + "pubkey": "683608908c8bfe95e38f099068a170140332129eeb03480b1e4806d4f4f43c2c", + "path": "0/0/40/4", + "masterFingerprint": "f65cd869" + } + ] + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.fullsigned.json new file mode 100644 index 0000000000..d999a7d59c --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.fullsigned.json @@ -0,0 +1,80 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "304502210087631f54bea97ba6fb135afc0e6aa5000f405f8c7f4075fb44624fcb100110f102203f3c26a632eef131b32c235537e8d08f0044b2ecfcf4763bbcee40a9ee04e10c41" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100cc77cb1d7cc21ef86ed84521781a6359549ba5e6d736e46b48e38181e04e11ef022044803e3cd31f6f7d7bd7911ea907bd0861598e824bdcbeb5e3b03114aafb2c7441" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a473044022014b73c08c0183770986da34a9757eaed867e62d118188a649ce11356da7f10c102202d91e5a60cf22dc2736f4fa52333a276f60ed6d6a332fb6e8ffc94deddbba444012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100864e2eb6f32fab5f80e6b321549d0b2d2a335de655be7c734bc2f89bc1f1085a02207b748db3cf0ba9cd4ce564c81da20fa9c3e01f7976cdc05a3704004ce60e921241" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.halfsigned.json new file mode 100644 index 0000000000..182359629d --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.halfsigned.json @@ -0,0 +1,76 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "304502210087631f54bea97ba6fb135afc0e6aa5000f405f8c7f4075fb44624fcb100110f102203f3c26a632eef131b32c235537e8d08f0044b2ecfcf4763bbcee40a9ee04e10c41" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a473044022014b73c08c0183770986da34a9757eaed867e62d118188a649ce11356da7f10c102202d91e5a60cf22dc2736f4fa52333a276f60ed6d6a332fb6e8ffc94deddbba444012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100864e2eb6f32fab5f80e6b321549d0b2d2a335de655be7c734bc2f89bc1f1085a02207b748db3cf0ba9cd4ce564c81da20fa9c3e01f7976cdc05a3704004ce60e921241" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.unsigned.json new file mode 100644 index 0000000000..d8477d0b38 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoincash.unsigned.json @@ -0,0 +1,64 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAHwCAAAAAlx5eyWbgnIrhOwGKs52BsAJLUxtcR60t3VnvhO0cMavAAAAAAD/////f7uvM8nANwD38dz5OjQDmJdlZkbCQouPqoi39X0dPZ8BAAAAAP////8BhAMAAAAAAAAXqRTZCUdEBMEko9BMP7/2H6pJz0PFi4cAAAAATwEEiLIeAAAAAAAAAAAAOpIuKfDI6w2ypgSEy9y2MfaxB8nKrj/9zz59LsH2vNADEhSHFfNh2raFpmnUJDHl1tP5c0BNq5yf0blQsnmtdjQEzBiuCE8BBIiyHgAAAAAAAAAAAG0dZW093ZHBlMBFZaNgNwKiEBbO0UomXziYLWJ15ntkA9O6wjE6fGshy7EbFLDRA0H5IsCkA6i9jIfw3IIPNa9uBPZc2GlPAQSIsh4AAAAAAAAAAADLBP1jqzTZD+ZGa4gOKgLM+KhjN0MSmRr4kRsaqrRDNAM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlQTy7wOJAAEAvQIAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAakcwRAIgHqWF/NB4uNG9Cdr663PVIIerF2/RZ//WCD58UnE55r4CIBonxwq68xAfzVMswOmRbYP+EmLi2xJYvm2WYaYWqmWDASEDvQw0sjc+OHV1zdsQPsA5FsMQRPJQjiYf41l6JoDsvR//////AegDAAAAAAAAF6kUVnzXtE+fOgfDE483v5hLYPu68kOHAAAAAAEDBEEAAAABBGlSIQP29AdkvV1j8gCid4iDrPdelvFQlcmYJjwIcnDQyX5+fyEDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IhA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbU64iBgNf+3q8cBWeBGn0uYmm1eF4WikEFp/wULL0aP5dPV278hTMGK4IAAAAAAAAAAABAAAAAAAAACIGA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbFPZc2GkAAAAAAAAAAAEAAAAAAAAAIgYD9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8U8u8DiQAAAAAAAAAAAQAAAAAAAAAAAQDfAgAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAABqRzBEAiAUtzwIwBg3cJhto0qXV+rthn5i0RgYimSc4RNW2n8QwQIgLZHlpgzyLcJzb0+lIzOidvYO1tajMvtuj/yU3t27pEQBIQO9DDSyNz44dXXN2xA+wDkWwxBE8lCOJh/jWXomgOy9H/////8C6AMAAAAAAAAZdqkUiDrY0a/9+Kc8va9yN7XFq57CwyaIrOgDAAAAAAAAF6kUILNwlNgqUTRR/wzNnbI6ugW8XvOHAAAAAAEDBEEAAAABBCMhAzbvIo/+m47/+6BSwy0zRmDdH4Nmz4/kSuWqZytrYpCVrAABAGlSIQLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCSEC1y/Q0NkCk0NK1fyhYPJ44DxhRJeqTkJc9FTiwTMPlqshA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxU64iAgLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCRTy7wOJAAAAAAAAAAAAAAAAAAAAACICAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arFMwYrggAAAAAAAAAAAAAAAAAAAAAIgIDRNiEE231UCAoZf+8YhjH+ciP5s45yUV5gZC62zinUvEU9lzYaQAAAAAAAAAAAAAAAAAAAAAA", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a473044022014b73c08c0183770986da34a9757eaed867e62d118188a649ce11356da7f10c102202d91e5a60cf22dc2736f4fa52333a276f60ed6d6a332fb6e8ffc94deddbba444012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.fullsigned.json new file mode 100644 index 0000000000..a7b97137d4 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.fullsigned.json @@ -0,0 +1,198 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "3045022100e0e1ba72052b3f3c4b193b1f21aff66e8bfb821131f9b7680bea781ca6d637430220285ca143f06cd4e32aeac9bff16ef92abb95df0b08649709266686ad4b180d7641" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100dd4c0b374aca63840594e44c995835b3630eae3f6111d3eea5faecb49f2e40540220384f3653dce80d9dc2879d508dce3f1ccc8d19b19153737bb23a274941c422d441" + } + ] + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600", + "partialSig": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "signature": "304402206eb6a084505d7badc1afef554e859c65df31ad5b7bdbc62a14943d5b4f95307102200cba48e9c5676562ab30d73094448a0eb35eee73bfac5311140cd944332dca9b41" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "signature": "3045022100c3ae94dbb976bcd38566308b4d9350da86ebe044c610b36b913f6476524568cd022044dfd32108f0afe46a63384f42a4990ba73b9ebaddd88801daf3e3ebd83e223c41" + } + ] + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae", + "partialSig": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "signature": "3045022100f8cc6761ff5f70b95b4bb6e50f087be6e3899794b93048f08078c7bce89d5834022011cbeb43e5bd55fc96b39be2bc46112ecd6080fd6f148153dea1dc9cb8dcc5ea41" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "signature": "3044022071c4e85d66d2ea91d771458924e674b4ca40f6dc804a31db86d80d51eefc46c5022029bb9741909af81f3205edf62c51342ba3c4444907b78f56fac41155ead0cf3b41" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220522ac04b6830004156683ec4912e0c1517f1eb80337ca6475a1425f80f248c1002200ef79b195b8f1b37ac42a89a67111e1470eba98db566f9018dd2ca0199bfd1c1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff04e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100d9fc432b5d223325c038441974d75517582a9f0e8ba10d3188b2092e97c7624e0220028e3307eb02b1916c1a0089ea6ff1a255e6d2bd0eab2c994dfb433d6eea439641" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.halfsigned.json new file mode 100644 index 0000000000..33424b4e06 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.halfsigned.json @@ -0,0 +1,186 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAP0ZAQIAAAAEXHl7JZuCciuE7AYqznYGwAktTG1xHrS3dWe+E7Rwxq8AAAAAAP////8w57CA8+oTQ5EOL6FfWb7OJVTPMKkj0zvCjx6/ugtrSQEAAAAA/////9QB0PHuoV0QUhdbprACPeye09XU48ta3KpUb+fP+syJAgAAAAD/////FExoOFOAMZV1idmrdt6ukrAf5jVo2r8aZCk+afJaeUEDAAAAAP////8DhAMAAAAAAAAXqRTZCUdEBMEko9BMP7/2H6pJz0PFi4eEAwAAAAAAABepFAVBJxIdN/MiZs2WfEhUBJdqZ63wh4QDAAAAAAAAIgAgukjj+YdEY5Q/kBkqRfGuiVt3k2KnYpr3rWqdeoNePU8AAAAATwEEiLIeAAAAAAAAAAAAOpIuKfDI6w2ypgSEy9y2MfaxB8nKrj/9zz59LsH2vNADEhSHFfNh2raFpmnUJDHl1tP5c0BNq5yf0blQsnmtdjQEzBiuCE8BBIiyHgAAAAAAAAAAAG0dZW093ZHBlMBFZaNgNwKiEBbO0UomXziYLWJ15ntkA9O6wjE6fGshy7EbFLDRA0H5IsCkA6i9jIfw3IIPNa9uBPZc2GlPAQSIsh4AAAAAAAAAAADLBP1jqzTZD+ZGa4gOKgLM+KhjN0MSmRr4kRsaqrRDNAM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlQTy7wOJAAEAvQIAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAakcwRAIgHqWF/NB4uNG9Cdr663PVIIerF2/RZ//WCD58UnE55r4CIBonxwq68xAfzVMswOmRbYP+EmLi2xJYvm2WYaYWqmWDASEDvQw0sjc+OHV1zdsQPsA5FsMQRPJQjiYf41l6JoDsvR//////AegDAAAAAAAAF6kUVnzXtE+fOgfDE483v5hLYPu68kOHAAAAACICA/b0B2S9XWPyAKJ3iIOs916W8VCVyZgmPAhycNDJfn5/SDBFAiEA4OG6cgUrPzxLGTsfIa/2bov7ghEx+bdoC+p4HKbWN0MCIChcoUPwbNTjKurJv/Fu+Sq7ld8LCGSXCSZmhq1LGA12QQEDBEEAAAABBGlSIQP29AdkvV1j8gCid4iDrPdelvFQlcmYJjwIcnDQyX5+fyEDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IhA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbU64iBgNf+3q8cBWeBGn0uYmm1eF4WikEFp/wULL0aP5dPV278hTMGK4IAAAAAAAAAAABAAAAAAAAACIGA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbFPZc2GkAAAAAAAAAAAEAAAAAAAAAIgYD9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8U8u8DiQAAAAAAAAAAAQAAAAAAAAAAAQEg6AMAAAAAAAAXqRQOJrJdDOrm+c/z7azKoNGnDadgD4ciAgKlhfP6tJte+VNG2TIiGiIb1V7BkfFVM+DycLNYJXTwNUcwRAIgbraghFBde63Br+9VToWcZd8xrVt728YqFJQ9W0+VMHECIAy6SOnFZ2ViqzDXMJREig6zXu5zv6xTERQM2UQzLcqbQQEDBEEAAAABBCIAIEbUgAoTkzMBlghTme1KFwC0wv04xSGIw6OpH3IfPJYAAQVpUiECpYXz+rSbXvlTRtkyIhoiG9VewZHxVTPg8nCzWCV08DUhAsT3hmz9WZa8EGipYxPKFenMtemEWDoHNA3drnrwFGBbIQIjRTG8kRmjanlG6VrrdJFd0IfHtE9Re47utz+JoP8amVOuIgYCI0UxvJEZo2p5Rula63SRXdCHx7RPUXuO7rc/iaD/GpkU9lzYaQAAAAAAAAAACwAAAAEAAAAiBgKlhfP6tJte+VNG2TIiGiIb1V7BkfFVM+DycLNYJXTwNRTy7wOJAAAAAAAAAAALAAAAAQAAACIGAsT3hmz9WZa8EGipYxPKFenMtemEWDoHNA3drnrwFGBbFMwYrggAAAAAAAAAAAsAAAABAAAAAAEBK+gDAAAAAAAAIgAg2wQn8YIrR3dnDmZzworwL22h1a/nGnH1yQZEcLIp+v0iAgNRnlcqtGhWDR+ND4dpnQmDCOFmkF9dyuQ5DwYPqo8c40gwRQIhAPjMZ2H/X3C5W0u25Q8Ie+bjiZeUuTBI8IB4x7zonVg0AiARy+tD5b1V/Jazm+K8RhEuzWCA/W8UgVPeodycuNzF6kEBAwRBAAAAAQVpUiEDUZ5XKrRoVg0fjQ+HaZ0JgwjhZpBfXcrkOQ8GD6qPHOMhA6BbwmORIh1oXhjar/NqHpXDT5lFElPBbNQmUNsninkRIQLoCgiIXDU2drggzcKQ5tgaCslaA+irv0u3ruv7cP60GFOuIgYC6AoIiFw1Nna4IM3CkObYGgrJWgPoq79Lt67r+3D+tBgU9lzYaQAAAAAAAAAAFQAAAAIAAAAiBgNRnlcqtGhWDR+ND4dpnQmDCOFmkF9dyuQ5DwYPqo8c4xTy7wOJAAAAAAAAAAAVAAAAAgAAACIGA6BbwmORIh1oXhjar/NqHpXDT5lFElPBbNQmUNsninkRFMwYrggAAAAAAAAAABUAAAACAAAAAAEA/SMBAgAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAABqRzBEAiBSKsBLaDAAQVZoPsSRLgwVF/HrgDN8pkdaFCX4DySMEAIgDvebGVuPGzesQqiaZxEeFHDrqY21ZvkBjdLKAZm/0cEBIQO9DDSyNz44dXXN2xA+wDkWwxBE8lCOJh/jWXomgOy9H/////8E6AMAAAAAAAAZdqkUiDrY0a/9+Kc8va9yN7XFq57CwyaIrOgDAAAAAAAAGXapFIg62NGv/finPL2vcje1xauewsMmiKzoAwAAAAAAABl2qRSIOtjRr/34pzy9r3I3tcWrnsLDJois6AMAAAAAAAAXqRQgs3CU2CpRNFH/DM2dsjq6Bbxe84cAAAAAIgIDNu8ij/6bjv/7oFLDLTNGYN0fg2bPj+RK5apnK2tikJVIMEUCIQDZ/EMrXSIzJcA4RBl011UXWCqfDouhDTGIsgkul8diTgIgAo4zB+sCsZFsGgCJ6m/xolXm0r0OqyyZTftDPW7qQ5ZBAQMEQQAAAAEEIyEDNu8ij/6bjv/7oFLDLTNGYN0fg2bPj+RK5apnK2tikJWsAAEAaVIhAsxND6QRysJESG+OssCOA1/3QQ9GCjWcp/iBCZG9O0IJIQLXL9DQ2QKTQ0rV/KFg8njgPGFEl6pOQlz0VOLBMw+WqyEDRNiEE231UCAoZf+8YhjH+ciP5s45yUV5gZC62zinUvFTriICAsxND6QRysJESG+OssCOA1/3QQ9GCjWcp/iBCZG9O0IJFPLvA4kAAAAAAAAAAAAAAAAAAAAAIgIC1y/Q0NkCk0NK1fyhYPJ44DxhRJeqTkJc9FTiwTMPlqsUzBiuCAAAAAAAAAAAAAAAAAAAAAAiAgNE2IQTbfVQIChl/7xiGMf5yI/mzjnJRXmBkLrbOKdS8RT2XNhpAAAAAAAAAAAAAAAAAAAAAAABACIAICkrBSNRo8b4DVG65kLMiCEYKJPb7tq8j10OlndHYCbBAQFpUiEDLhH5hVJoX+kH8x+ecmDJBujecA8MPJ8vFBBiPc39GcAhA1RXV841zx7fsTueLEovnOAKuMNr7hK8ojN85YP9KK7IIQKjz7ZmX+RPdSC2obTeGk1GZDs4XrH9Hgq3DvuWVCl1VFOuIgICo8+2Zl/kT3UgtqG03hpNRmQ7OF6x/R4Ktw77llQpdVQU9lzYaQAAAAAAAAAACgAAAAEAAAAiAgMuEfmFUmhf6QfzH55yYMkG6N5wDww8ny8UEGI9zf0ZwBTy7wOJAAAAAAAAAAAKAAAAAQAAACICA1RXV841zx7fsTueLEovnOAKuMNr7hK8ojN85YP9KK7IFMwYrggAAAAAAAAAAAoAAAABAAAAAAEBaVIhAtbRFAvSwPkUyzDJkqovzSg/RxqSgc7snsbFvESOaGkAIQO4Vah1jtpoY2SERanTz7lTiKyhdGIa2Y8JmhxPkyb+xyEClfe1J9LqU3pNQoMEEKv0NAcxv5sg5UlyABkzuaojU2xTriICApX3tSfS6lN6TUKDBBCr9DQHMb+bIOVJcgAZM7mqI1NsFPZc2GkAAAAAAAAAABQAAAACAAAAIgIC1tEUC9LA+RTLMMmSqi/NKD9HGpKBzuyexsW8RI5oaQAU8u8DiQAAAAAAAAAAFAAAAAIAAAAiAgO4Vah1jtpoY2SERanTz7lTiKyhdGIa2Y8JmhxPkyb+xxTMGK4IAAAAAAAAAAAUAAAAAgAAAAA=", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "3045022100e0e1ba72052b3f3c4b193b1f21aff66e8bfb821131f9b7680bea781ca6d637430220285ca143f06cd4e32aeac9bff16ef92abb95df0b08649709266686ad4b180d7641" + } + ] + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600", + "partialSig": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "signature": "304402206eb6a084505d7badc1afef554e859c65df31ad5b7bdbc62a14943d5b4f95307102200cba48e9c5676562ab30d73094448a0eb35eee73bfac5311140cd944332dca9b41" + } + ] + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae", + "partialSig": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "signature": "3045022100f8cc6761ff5f70b95b4bb6e50f087be6e3899794b93048f08078c7bce89d5834022011cbeb43e5bd55fc96b39be2bc46112ecd6080fd6f148153dea1dc9cb8dcc5ea41" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220522ac04b6830004156683ec4912e0c1517f1eb80337ca6475a1425f80f248c1002200ef79b195b8f1b37ac42a89a67111e1470eba98db566f9018dd2ca0199bfd1c1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff04e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100d9fc432b5d223325c038441974d75517582a9f0e8ba10d3188b2092e97c7624e0220028e3307eb02b1916c1a0089ea6ff1a255e6d2bd0eab2c994dfb433d6eea439641" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.unsigned.json new file mode 100644 index 0000000000..8142032dfe --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.bitcoingold.unsigned.json @@ -0,0 +1,162 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600" + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220522ac04b6830004156683ec4912e0c1517f1eb80337ca6475a1425f80f248c1002200ef79b195b8f1b37ac42a89a67111e1470eba98db566f9018dd2ca0199bfd1c1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff04e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.fullsigned.json new file mode 100644 index 0000000000..6a8b97a31a --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.fullsigned.json @@ -0,0 +1,80 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "30450221008efa965c7055588939c15bc3e6336bad8b0d3ccc6804287ee5b6fb72d00bfefc02207c685a7d7145c742ce89c62798babf3f8b414feb0d60a75531f1e43e9b29e8d101" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100bfb1edb5d009f56cdd188c5654cddc8dddcc8f45d03c8a73c208e810f971b1e0022004e8a330bcd62c7e4d34871de3414151fa9c62be678453f35f14dadb82d35dea01" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220691753a27fe3a3baff26ddc6b3c9cdb2046909cab0e220463f9a0a58d5e1d23e02200c3d4ac45187c47deea2ac437eb415d6543bbbe8870e4a52f2b4c671f14d8317012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100bb1445d743db3c846b926dc47ae3c18abc8010f7ba55f385c7cd7094b6d2bdb2022019fab8b02d4a0100ac2ed9a6f3e56912faa4b660d52618f93ccd2a287a6e5b6801" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.halfsigned.json new file mode 100644 index 0000000000..e536f5126a --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.halfsigned.json @@ -0,0 +1,76 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "30450221008efa965c7055588939c15bc3e6336bad8b0d3ccc6804287ee5b6fb72d00bfefc02207c685a7d7145c742ce89c62798babf3f8b414feb0d60a75531f1e43e9b29e8d101" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220691753a27fe3a3baff26ddc6b3c9cdb2046909cab0e220463f9a0a58d5e1d23e02200c3d4ac45187c47deea2ac437eb415d6543bbbe8870e4a52f2b4c671f14d8317012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100bb1445d743db3c846b926dc47ae3c18abc8010f7ba55f385c7cd7094b6d2bdb2022019fab8b02d4a0100ac2ed9a6f3e56912faa4b660d52618f93ccd2a287a6e5b6801" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.unsigned.json new file mode 100644 index 0000000000..e38bf99feb --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dash.unsigned.json @@ -0,0 +1,64 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAHwBAAAAAtme+uGZ/E1U5YJajjNoo5Xp6zKZFc+12I3DEVB9GEg2AAAAAAD/////J50715OdJjBhFagFjUqI0QUVoLZ1/IpfiTEcLoYp/sYBAAAAAP////8BhAMAAAAAAAAXqRTZCUdEBMEko9BMP7/2H6pJz0PFi4cAAAAATwEEiLIeAAAAAAAAAAAAOpIuKfDI6w2ypgSEy9y2MfaxB8nKrj/9zz59LsH2vNADEhSHFfNh2raFpmnUJDHl1tP5c0BNq5yf0blQsnmtdjQEzBiuCE8BBIiyHgAAAAAAAAAAAG0dZW093ZHBlMBFZaNgNwKiEBbO0UomXziYLWJ15ntkA9O6wjE6fGshy7EbFLDRA0H5IsCkA6i9jIfw3IIPNa9uBPZc2GlPAQSIsh4AAAAAAAAAAADLBP1jqzTZD+ZGa4gOKgLM+KhjN0MSmRr4kRsaqrRDNAM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlQTy7wOJAAEAvgEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAa0gwRQIhAI16Jw55P9M2/KELZhKcZMAIFd2dPEVGsS1pmrM1IAcwAiB9bF3Ub1ycZcCP0pXptOfbRTd5kox2USgDljSwjtRnoQEhA70MNLI3Pjh1dc3bED7AORbDEETyUI4mH+NZeiaA7L0f/////wHoAwAAAAAAABepFFZ817RPnzoHwxOPN7+YS2D7uvJDhwAAAAABAwQBAAAAAQRpUiED9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8hA1/7erxwFZ4EafS5iabV4XhaKQQWn/BQsvRo/l09XbvyIQPhUk1/b8V6s+rLtlm3hxBngKR10dtIOVLCMQt+mjiXW1OuIgYDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IUzBiuCAAAAAAAAAAAAQAAAAAAAAAiBgPhUk1/b8V6s+rLtlm3hxBngKR10dtIOVLCMQt+mjiXWxT2XNhpAAAAAAAAAAABAAAAAAAAACIGA/b0B2S9XWPyAKJ3iIOs916W8VCVyZgmPAhycNDJfn5/FPLvA4kAAAAAAAAAAAEAAAAAAAAAAAEA3wEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAakcwRAIgaRdTon/jo7r/Jt3Gs8nNsgRpCcqw4iBGP5oKWNXh0j4CIAw9SsRRh8R97qKsQ360FdZUO7vohw5KUvK0xnHxTYMXASEDvQw0sjc+OHV1zdsQPsA5FsMQRPJQjiYf41l6JoDsvR//////AugDAAAAAAAAGXapFIg62NGv/finPL2vcje1xauewsMmiKzoAwAAAAAAABepFCCzcJTYKlE0Uf8MzZ2yOroFvF7zhwAAAAABAwQBAAAAAQQjIQM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlawAAQBpUiECzE0PpBHKwkRIb46ywI4DX/dBD0YKNZyn+IEJkb07QgkhAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arIQNE2IQTbfVQIChl/7xiGMf5yI/mzjnJRXmBkLrbOKdS8VOuIgICzE0PpBHKwkRIb46ywI4DX/dBD0YKNZyn+IEJkb07QgkU8u8DiQAAAAAAAAAAAAAAAAAAAAAiAgLXL9DQ2QKTQ0rV/KFg8njgPGFEl6pOQlz0VOLBMw+WqxTMGK4IAAAAAAAAAAAAAAAAAAAAACICA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxFPZc2GkAAAAAAAAAAAAAAAAAAAAAAA==", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220691753a27fe3a3baff26ddc6b3c9cdb2046909cab0e220463f9a0a58d5e1d23e02200c3d4ac45187c47deea2ac437eb415d6543bbbe8870e4a52f2b4c671f14d8317012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.fullsigned.json new file mode 100644 index 0000000000..6a8b97a31a --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.fullsigned.json @@ -0,0 +1,80 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "30450221008efa965c7055588939c15bc3e6336bad8b0d3ccc6804287ee5b6fb72d00bfefc02207c685a7d7145c742ce89c62798babf3f8b414feb0d60a75531f1e43e9b29e8d101" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100bfb1edb5d009f56cdd188c5654cddc8dddcc8f45d03c8a73c208e810f971b1e0022004e8a330bcd62c7e4d34871de3414151fa9c62be678453f35f14dadb82d35dea01" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220691753a27fe3a3baff26ddc6b3c9cdb2046909cab0e220463f9a0a58d5e1d23e02200c3d4ac45187c47deea2ac437eb415d6543bbbe8870e4a52f2b4c671f14d8317012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100bb1445d743db3c846b926dc47ae3c18abc8010f7ba55f385c7cd7094b6d2bdb2022019fab8b02d4a0100ac2ed9a6f3e56912faa4b660d52618f93ccd2a287a6e5b6801" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.halfsigned.json new file mode 100644 index 0000000000..e536f5126a --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.halfsigned.json @@ -0,0 +1,76 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "30450221008efa965c7055588939c15bc3e6336bad8b0d3ccc6804287ee5b6fb72d00bfefc02207c685a7d7145c742ce89c62798babf3f8b414feb0d60a75531f1e43e9b29e8d101" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220691753a27fe3a3baff26ddc6b3c9cdb2046909cab0e220463f9a0a58d5e1d23e02200c3d4ac45187c47deea2ac437eb415d6543bbbe8870e4a52f2b4c671f14d8317012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100bb1445d743db3c846b926dc47ae3c18abc8010f7ba55f385c7cd7094b6d2bdb2022019fab8b02d4a0100ac2ed9a6f3e56912faa4b660d52618f93ccd2a287a6e5b6801" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.unsigned.json new file mode 100644 index 0000000000..e38bf99feb --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.dogecoin.unsigned.json @@ -0,0 +1,64 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAHwBAAAAAtme+uGZ/E1U5YJajjNoo5Xp6zKZFc+12I3DEVB9GEg2AAAAAAD/////J50715OdJjBhFagFjUqI0QUVoLZ1/IpfiTEcLoYp/sYBAAAAAP////8BhAMAAAAAAAAXqRTZCUdEBMEko9BMP7/2H6pJz0PFi4cAAAAATwEEiLIeAAAAAAAAAAAAOpIuKfDI6w2ypgSEy9y2MfaxB8nKrj/9zz59LsH2vNADEhSHFfNh2raFpmnUJDHl1tP5c0BNq5yf0blQsnmtdjQEzBiuCE8BBIiyHgAAAAAAAAAAAG0dZW093ZHBlMBFZaNgNwKiEBbO0UomXziYLWJ15ntkA9O6wjE6fGshy7EbFLDRA0H5IsCkA6i9jIfw3IIPNa9uBPZc2GlPAQSIsh4AAAAAAAAAAADLBP1jqzTZD+ZGa4gOKgLM+KhjN0MSmRr4kRsaqrRDNAM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlQTy7wOJAAEAvgEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAa0gwRQIhAI16Jw55P9M2/KELZhKcZMAIFd2dPEVGsS1pmrM1IAcwAiB9bF3Ub1ycZcCP0pXptOfbRTd5kox2USgDljSwjtRnoQEhA70MNLI3Pjh1dc3bED7AORbDEETyUI4mH+NZeiaA7L0f/////wHoAwAAAAAAABepFFZ817RPnzoHwxOPN7+YS2D7uvJDhwAAAAABAwQBAAAAAQRpUiED9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8hA1/7erxwFZ4EafS5iabV4XhaKQQWn/BQsvRo/l09XbvyIQPhUk1/b8V6s+rLtlm3hxBngKR10dtIOVLCMQt+mjiXW1OuIgYDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IUzBiuCAAAAAAAAAAAAQAAAAAAAAAiBgPhUk1/b8V6s+rLtlm3hxBngKR10dtIOVLCMQt+mjiXWxT2XNhpAAAAAAAAAAABAAAAAAAAACIGA/b0B2S9XWPyAKJ3iIOs916W8VCVyZgmPAhycNDJfn5/FPLvA4kAAAAAAAAAAAEAAAAAAAAAAAEA3wEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAakcwRAIgaRdTon/jo7r/Jt3Gs8nNsgRpCcqw4iBGP5oKWNXh0j4CIAw9SsRRh8R97qKsQ360FdZUO7vohw5KUvK0xnHxTYMXASEDvQw0sjc+OHV1zdsQPsA5FsMQRPJQjiYf41l6JoDsvR//////AugDAAAAAAAAGXapFIg62NGv/finPL2vcje1xauewsMmiKzoAwAAAAAAABepFCCzcJTYKlE0Uf8MzZ2yOroFvF7zhwAAAAABAwQBAAAAAQQjIQM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlawAAQBpUiECzE0PpBHKwkRIb46ywI4DX/dBD0YKNZyn+IEJkb07QgkhAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arIQNE2IQTbfVQIChl/7xiGMf5yI/mzjnJRXmBkLrbOKdS8VOuIgICzE0PpBHKwkRIb46ywI4DX/dBD0YKNZyn+IEJkb07QgkU8u8DiQAAAAAAAAAAAAAAAAAAAAAiAgLXL9DQ2QKTQ0rV/KFg8njgPGFEl6pOQlz0VOLBMw+WqxTMGK4IAAAAAAAAAAAAAAAAAAAAACICA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxFPZc2GkAAAAAAAAAAAAAAAAAAAAAAA==", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006a4730440220691753a27fe3a3baff26ddc6b3c9cdb2046909cab0e220463f9a0a58d5e1d23e02200c3d4ac45187c47deea2ac437eb415d6543bbbe8870e4a52f2b4c671f14d8317012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.fullsigned.json new file mode 100644 index 0000000000..d999a7d59c --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.fullsigned.json @@ -0,0 +1,80 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "304502210087631f54bea97ba6fb135afc0e6aa5000f405f8c7f4075fb44624fcb100110f102203f3c26a632eef131b32c235537e8d08f0044b2ecfcf4763bbcee40a9ee04e10c41" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100cc77cb1d7cc21ef86ed84521781a6359549ba5e6d736e46b48e38181e04e11ef022044803e3cd31f6f7d7bd7911ea907bd0861598e824bdcbeb5e3b03114aafb2c7441" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a473044022014b73c08c0183770986da34a9757eaed867e62d118188a649ce11356da7f10c102202d91e5a60cf22dc2736f4fa52333a276f60ed6d6a332fb6e8ffc94deddbba444012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100864e2eb6f32fab5f80e6b321549d0b2d2a335de655be7c734bc2f89bc1f1085a02207b748db3cf0ba9cd4ce564c81da20fa9c3e01f7976cdc05a3704004ce60e921241" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.halfsigned.json new file mode 100644 index 0000000000..182359629d --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.halfsigned.json @@ -0,0 +1,76 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "304502210087631f54bea97ba6fb135afc0e6aa5000f405f8c7f4075fb44624fcb100110f102203f3c26a632eef131b32c235537e8d08f0044b2ecfcf4763bbcee40a9ee04e10c41" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a473044022014b73c08c0183770986da34a9757eaed867e62d118188a649ce11356da7f10c102202d91e5a60cf22dc2736f4fa52333a276f60ed6d6a332fb6e8ffc94deddbba444012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100864e2eb6f32fab5f80e6b321549d0b2d2a335de655be7c734bc2f89bc1f1085a02207b748db3cf0ba9cd4ce564c81da20fa9c3e01f7976cdc05a3704004ce60e921241" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.unsigned.json new file mode 100644 index 0000000000..d8477d0b38 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.ecash.unsigned.json @@ -0,0 +1,64 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAHwCAAAAAlx5eyWbgnIrhOwGKs52BsAJLUxtcR60t3VnvhO0cMavAAAAAAD/////f7uvM8nANwD38dz5OjQDmJdlZkbCQouPqoi39X0dPZ8BAAAAAP////8BhAMAAAAAAAAXqRTZCUdEBMEko9BMP7/2H6pJz0PFi4cAAAAATwEEiLIeAAAAAAAAAAAAOpIuKfDI6w2ypgSEy9y2MfaxB8nKrj/9zz59LsH2vNADEhSHFfNh2raFpmnUJDHl1tP5c0BNq5yf0blQsnmtdjQEzBiuCE8BBIiyHgAAAAAAAAAAAG0dZW093ZHBlMBFZaNgNwKiEBbO0UomXziYLWJ15ntkA9O6wjE6fGshy7EbFLDRA0H5IsCkA6i9jIfw3IIPNa9uBPZc2GlPAQSIsh4AAAAAAAAAAADLBP1jqzTZD+ZGa4gOKgLM+KhjN0MSmRr4kRsaqrRDNAM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlQTy7wOJAAEAvQIAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAakcwRAIgHqWF/NB4uNG9Cdr663PVIIerF2/RZ//WCD58UnE55r4CIBonxwq68xAfzVMswOmRbYP+EmLi2xJYvm2WYaYWqmWDASEDvQw0sjc+OHV1zdsQPsA5FsMQRPJQjiYf41l6JoDsvR//////AegDAAAAAAAAF6kUVnzXtE+fOgfDE483v5hLYPu68kOHAAAAAAEDBEEAAAABBGlSIQP29AdkvV1j8gCid4iDrPdelvFQlcmYJjwIcnDQyX5+fyEDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IhA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbU64iBgNf+3q8cBWeBGn0uYmm1eF4WikEFp/wULL0aP5dPV278hTMGK4IAAAAAAAAAAABAAAAAAAAACIGA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbFPZc2GkAAAAAAAAAAAEAAAAAAAAAIgYD9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8U8u8DiQAAAAAAAAAAAQAAAAAAAAAAAQDfAgAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAABqRzBEAiAUtzwIwBg3cJhto0qXV+rthn5i0RgYimSc4RNW2n8QwQIgLZHlpgzyLcJzb0+lIzOidvYO1tajMvtuj/yU3t27pEQBIQO9DDSyNz44dXXN2xA+wDkWwxBE8lCOJh/jWXomgOy9H/////8C6AMAAAAAAAAZdqkUiDrY0a/9+Kc8va9yN7XFq57CwyaIrOgDAAAAAAAAF6kUILNwlNgqUTRR/wzNnbI6ugW8XvOHAAAAAAEDBEEAAAABBCMhAzbvIo/+m47/+6BSwy0zRmDdH4Nmz4/kSuWqZytrYpCVrAABAGlSIQLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCSEC1y/Q0NkCk0NK1fyhYPJ44DxhRJeqTkJc9FTiwTMPlqshA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxU64iAgLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCRTy7wOJAAAAAAAAAAAAAAAAAAAAACICAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arFMwYrggAAAAAAAAAAAAAAAAAAAAAIgIDRNiEE231UCAoZf+8YhjH+ciP5s45yUV5gZC62zinUvEU9lzYaQAAAAAAAAAAAAAAAAAAAAAA", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a47304402201ea585fcd078b8d1bd09dafaeb73d52087ab176fd167ffd6083e7c527139e6be02201a27c70abaf3101fcd532cc0e9916d83fe1262e2db1258be6d9661a616aa6583012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 65, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "02000000010101010101010101010101010101010101010101010101010101010101010101000000006a473044022014b73c08c0183770986da34a9757eaed867e62d118188a649ce11356da7f10c102202d91e5a60cf22dc2736f4fa52333a276f60ed6d6a332fb6e8ffc94deddbba444012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff02e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 65 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.fullsigned.json new file mode 100644 index 0000000000..27215929d1 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.fullsigned.json @@ -0,0 +1,198 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "3045022100e9f193db9830d516af5598045b9404d096e89c7a192f77ad220fa3a487308b0002205dea2fd75f700b3beec6e77a4bdd21a6ac9b9a355c1ea958a6864305e203d9fe01" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3044022025cd881a29cca29960c0361d18f741681bdb0d8c0f55c1f8d78daf03757ce8af02205d93f55191a736ab373b05cfeb099440234d99a2720188c3ac13150cb6e0ac4c01" + } + ] + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600", + "partialSig": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "signature": "3045022100a4bfba654b915a5ca895c5339ce5edab81bd67b65c805997cad9762840d3c7060220021f8ffb89ebea032cb339ecbd8494c84f955ed894963992b4f31e91e8df0a7401" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "signature": "3044022050f1e19eaec828c7856135b98b6e1af9c600229241ec8507d50dae85ff71823902207c084363fe89081b49d929851b62fa9b9d44c70ec3931e8bb473c8d84e35b2e401" + } + ] + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae", + "partialSig": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "signature": "304402204db56669993c9644b84a54892958b7c15d4897829d19a673f7a337bdfab834c202203c6aca862b8ab1a2a3b570689836f09a191b97bcee9ddd8e19271e7a53f6a80401" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "signature": "3044022021df7a10ad4a6838c6553897cd6779fa232e89a600058f946a0c4e86a871bb21022049919108dcbda4b4318fb87d5b1c5f929bd9a82f9ef49fadd7b3445a9cf3207001" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b483045022100ae347b03f4709e3d255f6dbfde83db5ffecd51574db382e366ad1c5357465025022050bad0e6959c77bebaa90e298de536f401278064dbc0f14c2dea64281e82ee12012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff04e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100e5bcb83e8f66f30bf6ea886184ef607557cb166ca1d3de3253c293e1865c775202205577e3e2acd1fd7ea93b1e624169db1d52e97030680bc062095cf7ac667d4eca01" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.halfsigned.json new file mode 100644 index 0000000000..3f80a18d44 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.halfsigned.json @@ -0,0 +1,186 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "3045022100e9f193db9830d516af5598045b9404d096e89c7a192f77ad220fa3a487308b0002205dea2fd75f700b3beec6e77a4bdd21a6ac9b9a355c1ea958a6864305e203d9fe01" + } + ] + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600", + "partialSig": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "signature": "3045022100a4bfba654b915a5ca895c5339ce5edab81bd67b65c805997cad9762840d3c7060220021f8ffb89ebea032cb339ecbd8494c84f955ed894963992b4f31e91e8df0a7401" + } + ] + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae", + "partialSig": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "signature": "304402204db56669993c9644b84a54892958b7c15d4897829d19a673f7a337bdfab834c202203c6aca862b8ab1a2a3b570689836f09a191b97bcee9ddd8e19271e7a53f6a80401" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b483045022100ae347b03f4709e3d255f6dbfde83db5ffecd51574db382e366ad1c5357465025022050bad0e6959c77bebaa90e298de536f401278064dbc0f14c2dea64281e82ee12012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff04e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3045022100e5bcb83e8f66f30bf6ea886184ef607557cb166ca1d3de3253c293e1865c775202205577e3e2acd1fd7ea93b1e624169db1d52e97030680bc062095cf7ac667d4eca01" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.unsigned.json new file mode 100644 index 0000000000..daf5e041a7 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.litecoin.unsigned.json @@ -0,0 +1,162 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "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", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b4830450221008d7a270e793fd336fca10b66129c64c00815dd9d3c4546b12d699ab33520073002207d6c5dd46f5c9c65c08fd295e9b4e7db453779928c765128039634b08ed467a1012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff01e80300000000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf2438700000000", + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a9140e26b25d0ceae6f9cff3edaccaa0d1a70da7600f87", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "02a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f035", + "path": "0/0/11/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b", + "path": "0/0/11/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a99", + "path": "0/0/11/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102a585f3fab49b5ef95346d932221a221bd55ec191f15533e0f270b3582574f0352102c4f7866cfd5996bc1068a96313ca15e9ccb5e984583a07340dddae7af014605b2102234531bc9119a36a7946e95aeb74915dd087c7b44f517b8eeeb73f89a0ff1a9953ae", + "redeemScript": "002046d4800a1393330196085399ed4a1700b4c2fd38c52188c3a3a91f721f3c9600" + }, + { + "type": "p2wsh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "0020db0427f1822b4777670e6673c28af02f6da1d5afe71a71f5c9064470b229fafd", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce3", + "path": "0/0/21/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a7911", + "path": "0/0/21/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb418", + "path": "0/0/21/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522103519e572ab468560d1f8d0f87699d098308e166905f5dcae4390f060faa8f1ce32103a05bc26391221d685e18daaff36a1e95c34f99451253c16cd42650db278a79112102e80a08885c353676b820cdc290e6d81a0ac95a03e8abbf4bb7aeebfb70feb41853ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "nonWitnessUtxo": "01000000010101010101010101010101010101010101010101010101010101010101010101000000006b483045022100ae347b03f4709e3d255f6dbfde83db5ffecd51574db382e366ad1c5357465025022050bad0e6959c77bebaa90e298de536f401278064dbc0f14c2dea64281e82ee12012103bd0c34b2373e387575cddb103ec03916c31044f2508e261fe3597a2680ecbd1fffffffff04e8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace8030000000000001976a914883ad8d1affdf8a73cbdaf7237b5c5ab9ec2c32688ace80300000000000017a91420b37094d82a513451ff0ccd9db23aba05bc5ef38700000000", + "sighashType": 1 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c0", + "path": "0/0/10/1", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec8", + "path": "0/0/10/1", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "02a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb9654297554", + "path": "0/0/10/1", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "5221032e11f98552685fe907f31f9e7260c906e8de700f0c3c9f2f1410623dcdfd19c02103545757ce35cf1edfb13b9e2c4a2f9ce00ab8c36bee12bca2337ce583fd28aec82102a3cfb6665fe44f7520b6a1b4de1a4d46643b385eb1fd1e0ab70efb965429755453ae", + "redeemScript": "0020292b052351a3c6f80d51bae642cc8821182893dbeedabc8f5d0e9677476026c1" + }, + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e686900", + "path": "0/0/20/2", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "03b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7", + "path": "0/0/20/2", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c", + "path": "0/0/20/2", + "masterFingerprint": "f65cd869" + } + ], + "witnessScript": "522102d6d1140bd2c0f914cb30c992aa2fcd283f471a9281ceec9ec6c5bc448e6869002103b855a8758eda6863648445a9d3cfb95388aca174621ad98f099a1c4f9326fec7210295f7b527d2ea537a4d42830410abf4340731bf9b20e54972001933b9aa23536c53ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.fullsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.fullsigned.json new file mode 100644 index 0000000000..c4ee67621e --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.fullsigned.json @@ -0,0 +1,86 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAI8EAACAhSAviQIBB9zNCDF0dfUWO8QpQQ9z3Z/LZm/Irya0Dt4Kb9gTWgAAAAAA/////9zG/5Z7pfP2yyTWKwtgO9K9CnmeqYqTLnAuKoKMdoA/AQAAAAD/////AYQDAAAAAAAAF6kU2QlHRATBJKPQTD+/9h+qSc9DxYuHAAAAAAAAAAAAAAAAAAAAAAAAAE8BBIiyHgAAAAAAAAAAADqSLinwyOsNsqYEhMvctjH2sQfJyq4//c8+fS7B9rzQAxIUhxXzYdq2haZp1CQx5dbT+XNATaucn9G5ULJ5rXY0BMwYrghPAQSIsh4AAAAAAAAAAABtHWVtPd2RwZTARWWjYDcCohAWztFKJl84mC1ideZ7ZAPTusIxOnxrIcuxGxSw0QNB+SLApAOovYyH8NyCDzWvbgT2XNhpTwEEiLIeAAAAAAAAAAAAywT9Y6s02Q/mRmuIDioCzPioYzdDEpka+JEbGqq0QzQDNu8ij/6bjv/7oFLDLTNGYN0fg2bPj+RK5apnK2tikJUE8u8DiQABASDoAwAAAAAAABepFFZ817RPnzoHwxOPN7+YS2D7uvJDhyICA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbSDBFAiEA8l0JX7fFIXphnq7n0jeMaonq7+IaCkkWGyXZcMl1l+QCIGwvnm1sL3/AX21b6v/D/UpaG00ASf1wJVHvUBnH3faaASICA/b0B2S9XWPyAKJ3iIOs916W8VCVyZgmPAhycNDJfn5/SDBFAiEAkWXvn88VxZjdoK4DsAzGWAuhgPHNtxoH3B9UqDNMLk8CIBM5f78LkenZ/50WfxWuRaTjQ24Unoeq/jKB62Ued7Q2AQEDBAEAAAABBGlSIQP29AdkvV1j8gCid4iDrPdelvFQlcmYJjwIcnDQyX5+fyEDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IhA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbU64iBgNf+3q8cBWeBGn0uYmm1eF4WikEFp/wULL0aP5dPV278hTMGK4IAAAAAAAAAAABAAAAAAAAACIGA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbFPZc2GkAAAAAAAAAAAEAAAAAAAAAIgYD9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8U8u8DiQAAAAAAAAAAAQAAAAAAAAAAAQEg6AMAAAAAAAAXqRQgs3CU2CpRNFH/DM2dsjq6Bbxe84ciAgM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlUcwRAIgWeyxOotIYmnQMgWSTaHh35lPjBfHJU7uuRkTJ+3NwyACIAlB/co5zrBlVD8thq3Jiz59SIZzMgkf+SC+HMAg49L1AQEDBAEAAAABBCMhAzbvIo/+m47/+6BSwy0zRmDdH4Nmz4/kSuWqZytrYpCVrAABAGlSIQLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCSEC1y/Q0NkCk0NK1fyhYPJ44DxhRJeqTkJc9FTiwTMPlqshA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxU64iAgLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCRTy7wOJAAAAAAAAAAAAAAAAAAAAACICAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arFMwYrggAAAAAAAAAAAAAAAAAAAAAIgIDRNiEE231UCAoZf+8YhjH+ciP5s45yUV5gZC62zinUvEU9lzYaQAAAAAAAAAAAAAAAAAAAAAA", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "30450221009165ef9fcf15c598dda0ae03b00cc6580ba180f1cdb71a07dc1f54a8334c2e4f022013397fbf0b91e9d9ff9d167f15ae45a4e3436e149e87aafe3281eb651e77b43601" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "signature": "3045022100f25d095fb7c5217a619eaee7d2378c6a89eaefe21a0a49161b25d970c97597e402206c2f9e6d6c2f7fc05f6d5beaffc3fd4a5a1b4d0049fd702551ef5019c7ddf69a01" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "witnessUtxo": { + "script": "a91420b37094d82a513451ff0ccd9db23aba05bc5ef387", + "value": "1000" + }, + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3044022059ecb13a8b486269d03205924da1e1df994f8c17c7254eeeb9191327edcdc32002200941fdca39ceb065543f2d86adc98b3e7d48867332091ff920be1cc020e3d2f501" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.halfsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.halfsigned.json new file mode 100644 index 0000000000..076450f4fc --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.halfsigned.json @@ -0,0 +1,82 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAI8EAACAhSAviQIBB9zNCDF0dfUWO8QpQQ9z3Z/LZm/Irya0Dt4Kb9gTWgAAAAAA/////9zG/5Z7pfP2yyTWKwtgO9K9CnmeqYqTLnAuKoKMdoA/AQAAAAD/////AYQDAAAAAAAAF6kU2QlHRATBJKPQTD+/9h+qSc9DxYuHAAAAAAAAAAAAAAAAAAAAAAAAAE8BBIiyHgAAAAAAAAAAADqSLinwyOsNsqYEhMvctjH2sQfJyq4//c8+fS7B9rzQAxIUhxXzYdq2haZp1CQx5dbT+XNATaucn9G5ULJ5rXY0BMwYrghPAQSIsh4AAAAAAAAAAABtHWVtPd2RwZTARWWjYDcCohAWztFKJl84mC1ideZ7ZAPTusIxOnxrIcuxGxSw0QNB+SLApAOovYyH8NyCDzWvbgT2XNhpTwEEiLIeAAAAAAAAAAAAywT9Y6s02Q/mRmuIDioCzPioYzdDEpka+JEbGqq0QzQDNu8ij/6bjv/7oFLDLTNGYN0fg2bPj+RK5apnK2tikJUE8u8DiQABASDoAwAAAAAAABepFFZ817RPnzoHwxOPN7+YS2D7uvJDhyICA/b0B2S9XWPyAKJ3iIOs916W8VCVyZgmPAhycNDJfn5/SDBFAiEAkWXvn88VxZjdoK4DsAzGWAuhgPHNtxoH3B9UqDNMLk8CIBM5f78LkenZ/50WfxWuRaTjQ24Unoeq/jKB62Ued7Q2AQEDBAEAAAABBGlSIQP29AdkvV1j8gCid4iDrPdelvFQlcmYJjwIcnDQyX5+fyEDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IhA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbU64iBgNf+3q8cBWeBGn0uYmm1eF4WikEFp/wULL0aP5dPV278hTMGK4IAAAAAAAAAAABAAAAAAAAACIGA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbFPZc2GkAAAAAAAAAAAEAAAAAAAAAIgYD9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8U8u8DiQAAAAAAAAAAAQAAAAAAAAAAAQEg6AMAAAAAAAAXqRQgs3CU2CpRNFH/DM2dsjq6Bbxe84ciAgM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlUcwRAIgWeyxOotIYmnQMgWSTaHh35lPjBfHJU7uuRkTJ+3NwyACIAlB/co5zrBlVD8thq3Jiz59SIZzMgkf+SC+HMAg49L1AQEDBAEAAAABBCMhAzbvIo/+m47/+6BSwy0zRmDdH4Nmz4/kSuWqZytrYpCVrAABAGlSIQLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCSEC1y/Q0NkCk0NK1fyhYPJ44DxhRJeqTkJc9FTiwTMPlqshA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxU64iAgLMTQ+kEcrCREhvjrLAjgNf90EPRgo1nKf4gQmRvTtCCRTy7wOJAAAAAAAAAAAAAAAAAAAAACICAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arFMwYrggAAAAAAAAAAAAAAAAAAAAAIgIDRNiEE231UCAoZf+8YhjH+ciP5s45yUV5gZC62zinUvEU9lzYaQAAAAAAAAAAAAAAAAAAAAAA", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae", + "partialSig": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "signature": "30450221009165ef9fcf15c598dda0ae03b00cc6580ba180f1cdb71a07dc1f54a8334c2e4f022013397fbf0b91e9d9ff9d167f15ae45a4e3436e149e87aafe3281eb651e77b43601" + } + ] + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "witnessUtxo": { + "script": "a91420b37094d82a513451ff0ccd9db23aba05bc5ef387", + "value": "1000" + }, + "sighashType": 1, + "partialSig": [ + { + "pubkey": "0336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095", + "signature": "3044022059ecb13a8b486269d03205924da1e1df994f8c17c7254eeeb9191327edcdc32002200941fdca39ceb065543f2d86adc98b3e7d48867332091ff920be1cc020e3d2f501" + } + ] + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.unsigned.json b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.unsigned.json new file mode 100644 index 0000000000..69085a6d11 --- /dev/null +++ b/modules/utxo-lib/test/bitgo/fixtures/psbt/psbt.zcash.unsigned.json @@ -0,0 +1,70 @@ +{ + "walletKeys": [ + "xprv9s21ZrQH143K45bDYc9c3aEaGiTK9aPtjgtHg6wBdkryBjix1KKXRCszxPcFPejLT9tdLgNe8E8AuQXK2fy8KhNPeLAZsGoX8w9KS2PkacL", + "xprv9s21ZrQH143K2eBLSVNk4zhjDzqzqM29aS9cjr4CcoNrKLYwLHtwgTURSk7RPV3cH9zNZQeR1zGw3MEwSjvARSfWEGpxfaBmduhW3TKsH5g", + "xprv9s21ZrQH143K39N9shF9hAsTwh1FvQuBk8UVsZVwr4XtpqF7stCu2LH358NLuqkkK6pu1Af7TJHr5FZERQoLLtnC7wkoM9sdFo1HuP7dWuv" + ], + "psbtBase64": "cHNidP8BAI8EAACAhSAviQIBB9zNCDF0dfUWO8QpQQ9z3Z/LZm/Irya0Dt4Kb9gTWgAAAAAA/////9zG/5Z7pfP2yyTWKwtgO9K9CnmeqYqTLnAuKoKMdoA/AQAAAAD/////AYQDAAAAAAAAF6kU2QlHRATBJKPQTD+/9h+qSc9DxYuHAAAAAAAAAAAAAAAAAAAAAAAAAE8BBIiyHgAAAAAAAAAAADqSLinwyOsNsqYEhMvctjH2sQfJyq4//c8+fS7B9rzQAxIUhxXzYdq2haZp1CQx5dbT+XNATaucn9G5ULJ5rXY0BMwYrghPAQSIsh4AAAAAAAAAAABtHWVtPd2RwZTARWWjYDcCohAWztFKJl84mC1ideZ7ZAPTusIxOnxrIcuxGxSw0QNB+SLApAOovYyH8NyCDzWvbgT2XNhpTwEEiLIeAAAAAAAAAAAAywT9Y6s02Q/mRmuIDioCzPioYzdDEpka+JEbGqq0QzQDNu8ij/6bjv/7oFLDLTNGYN0fg2bPj+RK5apnK2tikJUE8u8DiQABASDoAwAAAAAAABepFFZ817RPnzoHwxOPN7+YS2D7uvJDhwEDBAEAAAABBGlSIQP29AdkvV1j8gCid4iDrPdelvFQlcmYJjwIcnDQyX5+fyEDX/t6vHAVngRp9LmJptXheFopBBaf8FCy9Gj+XT1du/IhA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbU64iBgNf+3q8cBWeBGn0uYmm1eF4WikEFp/wULL0aP5dPV278hTMGK4IAAAAAAAAAAABAAAAAAAAACIGA+FSTX9vxXqz6su2WbeHEGeApHXR20g5UsIxC36aOJdbFPZc2GkAAAAAAAAAAAEAAAAAAAAAIgYD9vQHZL1dY/IAoneIg6z3XpbxUJXJmCY8CHJw0Ml+fn8U8u8DiQAAAAAAAAAAAQAAAAAAAAAAAQEg6AMAAAAAAAAXqRQgs3CU2CpRNFH/DM2dsjq6Bbxe84cBAwQBAAAAAQQjIQM27yKP/puO//ugUsMtM0Zg3R+DZs+P5Erlqmcra2KQlawAAQBpUiECzE0PpBHKwkRIb46ywI4DX/dBD0YKNZyn+IEJkb07QgkhAtcv0NDZApNDStX8oWDyeOA8YUSXqk5CXPRU4sEzD5arIQNE2IQTbfVQIChl/7xiGMf5yI/mzjnJRXmBkLrbOKdS8VOuIgICzE0PpBHKwkRIb46ywI4DX/dBD0YKNZyn+IEJkb07QgkU8u8DiQAAAAAAAAAAAAAAAAAAAAAiAgLXL9DQ2QKTQ0rV/KFg8njgPGFEl6pOQlz0VOLBMw+WqxTMGK4IAAAAAAAAAAAAAAAAAAAAACICA0TYhBNt9VAgKGX/vGIYx/nIj+bOOclFeYGQuts4p1LxFPZc2GkAAAAAAAAAAAAAAAAAAAAAAA==", + "inputs": [ + { + "type": "p2sh", + "unknownKeyVals": [], + "witnessUtxo": { + "script": "a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387", + "value": "1000" + }, + "sighashType": 1, + "bip32Derivation": [ + { + "pubkey": "03f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f", + "path": "0/0/1/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf2", + "path": "0/0/1/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "03e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b", + "path": "0/0/1/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae" + }, + { + "type": "p2shP2pk", + "unknownKeyVals": [], + "redeemScript": "210336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b629095ac", + "witnessUtxo": { + "script": "a91420b37094d82a513451ff0ccd9db23aba05bc5ef387", + "value": "1000" + }, + "sighashType": 1 + } + ], + "outputs": [ + { + "unknownKeyVals": [], + "bip32Derivation": [ + { + "pubkey": "02cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b4209", + "path": "0/0/0/0", + "masterFingerprint": "f2ef0389" + }, + { + "pubkey": "02d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab", + "path": "0/0/0/0", + "masterFingerprint": "cc18ae08" + }, + { + "pubkey": "0344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f1", + "path": "0/0/0/0", + "masterFingerprint": "f65cd869" + } + ], + "redeemScript": "522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae" + } + ] +} diff --git a/modules/utxo-lib/test/bitgo/psbt/SignVerifyPsbtAndTx.ts b/modules/utxo-lib/test/bitgo/psbt/SignVerifyPsbtAndTx.ts index 6234202a42..1e2818da87 100644 --- a/modules/utxo-lib/test/bitgo/psbt/SignVerifyPsbtAndTx.ts +++ b/modules/utxo-lib/test/bitgo/psbt/SignVerifyPsbtAndTx.ts @@ -6,8 +6,11 @@ import { getSignatureValidationArrayPsbt, getStrictSignatureCount, getStrictSignatureCounts, + PsbtInput, + PsbtOutput, RootWalletKeys, Triple, + UtxoPsbt, UtxoTransaction, } from '../../../src/bitgo'; import { BIP32Interface } from '@bitgo/secp256k1'; @@ -15,10 +18,10 @@ import { constructPsbt, constructTxnBuilder, getDefaultWalletKeys, - Input, + Input as TestUtilInput, InputScriptType, inputScriptTypes, - Output, + Output as TestUtilOutput, outputScriptTypes, TxnInput, txnInputScriptTypes, @@ -28,11 +31,12 @@ import { import { getNetworkList, getNetworkName, isMainnet, Network, networks } from '../../../src'; import { isSupportedScriptType } from '../../../src/bitgo/outputScripts'; import { SignatureTargetType } from './Psbt'; +import { getFixture } from '../../fixture.util'; const rootWalletKeys = getDefaultWalletKeys(); const signs = ['unsigned', 'halfsigned', 'fullsigned'] as const; -const neutratedRootWalletKeys = new RootWalletKeys( +const rootWalletKeysXpubs = new RootWalletKeys( rootWalletKeys.triple.map((bip32) => bip32.neutered()) as Triple, rootWalletKeys.derivationPrefixes ); @@ -57,14 +61,50 @@ function signCount(sign: SignatureTargetType) { return sign === 'unsigned' ? 0 : sign === 'halfsigned' ? 1 : 2; } -function runPsbt(network: Network, sign: SignatureTargetType, inputs: Input[], outputs: Output[]) { +// normalize buffers to hex +function toFixture(obj: unknown) { + if (obj === null || obj === undefined) { + return obj; + } + if (typeof obj === 'bigint') { + return obj.toString(); + } + if (Buffer.isBuffer(obj)) { + return obj.toString('hex'); + } + if (Array.isArray(obj)) { + return obj.map(toFixture); + } + if (typeof obj === 'object') { + return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, toFixture(value)])); + } + return obj; +} + +function getFixturePsbtInputs(psbt: UtxoPsbt, inputs: TestUtilInput[]) { + if (inputs.length !== psbt.data.inputs.length) { + throw new Error('inputs length mismatch'); + } + return psbt.data.inputs.map((input: PsbtInput, index: number) => + toFixture({ type: inputs[index].scriptType, ...input }) + ); +} + +function getFixturePsbtOutputs(psbt: UtxoPsbt) { + return psbt.data.outputs.map((output: PsbtOutput) => toFixture(output)); +} + +function runPsbt(network: Network, sign: SignatureTargetType, inputs: TestUtilInput[], outputs: TestUtilOutput[]) { const coin = getNetworkName(network); const signatureCount = signCount(sign); + const inputTypes = inputs.map((input) => input.scriptType); + + describe(`psbt build, sign and verify for ${coin} ${inputTypes.join('-')} ${sign}`, function () { + let psbt: UtxoPsbt; - describe(`psbt build, sign and verify for ${coin} ${sign}`, function () { it(`getSignatureValidationArray with globalXpub ${coin} ${sign}`, function () { - const psbt = constructPsbt(inputs, outputs, network, rootWalletKeys, sign); - addXpubsToPsbt(psbt, neutratedRootWalletKeys); + psbt = constructPsbt(inputs, outputs, network, rootWalletKeys, sign, { deterministic: true }); + addXpubsToPsbt(psbt, rootWalletKeysXpubs); psbt.data.inputs.forEach((input, inputIndex) => { const isP2shP2pk = inputs[inputIndex].scriptType === 'p2shP2pk'; const expectedSigValid = getSigValidArray(inputs[inputIndex].scriptType, sign); @@ -78,13 +118,24 @@ function runPsbt(network: Network, sign: SignatureTargetType, inputs: Input[], o }); }); + it('matches fixture', async function () { + const fixture = { + walletKeys: rootWalletKeys.triple.map((xpub) => xpub.toBase58()), + psbtBase64: psbt.toBase64(), + inputs: getFixturePsbtInputs(psbt, inputs), + outputs: getFixturePsbtOutputs(psbt), + }; + const filename = [`psbt`, coin, sign, 'json'].join('.'); + assert.deepStrictEqual(fixture, await getFixture(`${__dirname}/../fixtures/psbt/${filename}`, fixture)); + }); + it(`getSignatureValidationArray with rootNodes ${coin} ${sign}`, function () { const psbt = constructPsbt(inputs, outputs, network, rootWalletKeys, sign); - addXpubsToPsbt(psbt, neutratedRootWalletKeys); + addXpubsToPsbt(psbt, rootWalletKeysXpubs); psbt.data.inputs.forEach((input, inputIndex) => { const isP2shP2pk = inputs[inputIndex].scriptType === 'p2shP2pk'; const expectedSigValid = getSigValidArray(inputs[inputIndex].scriptType, sign); - psbt.getSignatureValidationArray(inputIndex, { rootNodes: neutratedRootWalletKeys.triple }).forEach((sv, i) => { + psbt.getSignatureValidationArray(inputIndex, { rootNodes: rootWalletKeysXpubs.triple }).forEach((sv, i) => { if (isP2shP2pk && sign !== 'unsigned' && i === 0) { assert.strictEqual(sv, true); } else { @@ -96,7 +147,7 @@ function runPsbt(network: Network, sign: SignatureTargetType, inputs: Input[], o it(`getSignatureValidationArrayPsbt ${coin} ${sign}`, function () { const psbt = constructPsbt(inputs, outputs, network, rootWalletKeys, sign); - const sigValidations = getSignatureValidationArrayPsbt(psbt, neutratedRootWalletKeys); + const sigValidations = getSignatureValidationArrayPsbt(psbt, rootWalletKeysXpubs); psbt.data.inputs.forEach((input, inputIndex) => { const expectedSigValid = getSigValidArray(inputs[inputIndex].scriptType, sign); const sigValid = sigValidations.find((sv) => sv[0] === inputIndex); diff --git a/modules/utxo-lib/test/fixture.util.ts b/modules/utxo-lib/test/fixture.util.ts index f9773d207b..67574e9468 100644 --- a/modules/utxo-lib/test/fixture.util.ts +++ b/modules/utxo-lib/test/fixture.util.ts @@ -1,6 +1,6 @@ import * as assert from 'assert'; +import * as fs from 'fs'; import * as mpath from 'path'; -import * as fs from 'fs-extra'; function bufferAsHex(v: unknown): unknown { // You would think that you could use `Buffer.isBuffer(v)` here but you would be mistaken @@ -21,16 +21,16 @@ export async function readFixture(path: string, defaultValue: T): Promise path = path.replace('bitcoinTestnet4', 'bitcoinPublicSignet'); try { - await fs.access(mpath.dirname(path)); + await fs.promises.access(mpath.dirname(path)); } catch (e) { - await fs.mkdirp(mpath.dirname(path)); + await fs.promises.mkdir(mpath.dirname(path), { recursive: true }); } try { - return JSON.parse(await fs.readFile(path, 'utf8')) as T; + return JSON.parse(await fs.promises.readFile(path, 'utf8')) as T; } catch (e) { if (e.code === 'ENOENT') { - await fs.writeFile(path, toPrettyJSON(defaultValue)); + await fs.promises.writeFile(path, toPrettyJSON(defaultValue)); throw new Error(`wrote defaults, please check contents and re-run tests`); } @@ -46,3 +46,96 @@ export async function readFixture(path: string, defaultValue: T): Promise export function assertEqualJSON(a: T, b: T): void { assert.deepStrictEqual(JSON.parse(toPrettyJSON(a)), JSON.parse(toPrettyJSON(b))); } + +type FixtureEncoding = 'json' | 'hex' | 'txt'; + +function isNodeJsError(e: unknown): e is NodeJS.ErrnoException { + return e instanceof Error && typeof (e as NodeJS.ErrnoException).code === 'string'; +} + +function fixtureEncoding(path: string): FixtureEncoding { + if (path.endsWith('.json')) { + return 'json'; + } + if (path.endsWith('.hex')) { + return 'hex'; + } + if (path.endsWith('.txt')) { + return 'txt'; + } + throw new Error(`unknown fixture encoding for ${path}`); +} + +function decodeFixture(raw: string, encoding: FixtureEncoding): unknown { + switch (encoding) { + case 'json': + return JSON.parse(raw); + case 'hex': + return Buffer.from(raw, 'hex'); + case 'txt': + return raw; + } +} + +function encodeFixture(value: unknown, encoding: FixtureEncoding): string { + switch (encoding) { + case 'json': + return JSON.stringify(value, null, 2) + '\n'; + case 'hex': + if (!Buffer.isBuffer(value)) { + throw new Error(`expected Buffer, got ${typeof value}`); + } + return value.toString('hex'); + case 'txt': + if (typeof value !== 'string') { + throw new Error(`expected string, got ${typeof value}`); + } + return value; + } +} + +/** + * Return fixture described in `path`. + * + * If file does not exist and `defaultValue` is provided, writes defaultValue to `path` and throws an error. + * + * @param path + * @param defaultValue + * @return T - fixture content + */ +export async function getFixture(path: string, defaultValue?: T | (() => Promise)): Promise { + try { + await fs.promises.stat(mpath.dirname(path)); + } catch (e) { + if (isNodeJsError(e) && e.code === 'ENOENT') { + throw new Error(`fixture directory ${mpath.dirname(path)} not found, please create it first`); + } + throw e; + } + + const encoding = fixtureEncoding(path); + + try { + return decodeFixture(await fs.promises.readFile(path, 'utf8'), encoding) as T; + } catch (e) { + if (isNodeJsError(e) && e.code === 'ENOENT') { + if (process.env.WRITE_FIXTURES === '0') { + throw new Error(`fixture ${path} not found, WRITE_FIXTURES=0`); + } + if (defaultValue === undefined) { + throw new Error(`fixture ${path} not found and no default value given`); + } + if (typeof defaultValue === 'function') { + defaultValue = await (defaultValue as () => Promise)(); + } + await fs.promises.writeFile(path, encodeFixture(defaultValue, encoding)); + throw new Error(`wrote default value for ${path}, please inspect and restart test`); + } + + throw e; + } +} + +export function jsonNormalize(v: T): T { + return JSON.parse(JSON.stringify(v)) as T; +}