@ledgerhq/device-signer-kit-bitcoin 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";var T=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(n,t)=>{for(var a in t)T(n,a,{get:t[a],enumerable:!0})},E=(n,t,a,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of P(t))!U.call(n,u)&&u!==a&&T(n,u,{get:()=>t[u],enumerable:!(d=B(t,u))||d.enumerable});return n};var _=n=>E(T({},"__esModule",{value:!0}),n);var b={};V(b,{ExtractTransactionTask:()=>h});module.exports=_(b);var s=require("@ledgerhq/device-management-kit"),r=require("../../psbt/model/Psbt"),i=require("../../utils/Varint");class h{constructor(t,a){this._args=t;this._valueParser=a}run(){const{psbt:t}=this._args,a=new s.ByteArrayBuilder,d=t.getGlobalValue(r.PsbtGlobal.VERSION).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);a.add32BitUIntToData(d,!1);const u=t.getInputValue(0,r.PsbtIn.WITNESS_UTXO).isJust();u&&a.addBufferToData(Uint8Array.from([0,1]));const p=t.getGlobalValue(r.PsbtGlobal.INPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,i.encodeVarint)(p).extract());const I=new s.ByteArrayBuilder;for(let e=0;e<p;e++){a.addBufferToData(t.getInputValue(e,r.PsbtIn.PREVIOUS_TXID).mapOrDefault(o=>o.data,Buffer.from([])));const c=t.getInputValue(e,r.PsbtIn.OUTPUT_INDEX).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);a.add32BitUIntToData(c,!1);const l=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTSIG).mapOrDefault(o=>o.data,Uint8Array.from([]));a.addBufferToData((0,i.encodeVarint)(l.length).extract()),a.addBufferToData(l);const f=t.getInputValue(e,r.PsbtIn.SEQUENCE).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);if(a.add32BitUIntToData(f,!1),u){const o=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTWITNESS).mapOrDefault(m=>m.data,Uint8Array.from([]));I.addBufferToData(o)}}const g=t.getGlobalValue(r.PsbtGlobal.OUTPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,i.encodeVarint)(g).extract());for(let e=0;e<g;e++){const c=t.getOutputValue(e,r.PsbtOut.AMOUNT).chain(f=>this._valueParser.getInt64LE(f.data)).orDefault(0n),l=t.getOutputValue(e,r.PsbtOut.SCRIPT).mapOrDefault(f=>f.data,Buffer.from([]));a.add64BitIntToData(c,!1),a.addBufferToData((0,i.encodeVarint)(l.length).extract()),a.addBufferToData(l)}a.addBufferToData(I.build());const D=t.getGlobalValue(r.PsbtGlobal.FALLBACK_LOCKTIME).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);return a.add32BitUIntToData(D,!1),(0,s.CommandResultFactory)({data:(0,s.bufferToHexaString)(a.build())})}}0&&(module.exports={ExtractTransactionTask});
1
+ "use strict";var T=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var V=(n,t)=>{for(var a in t)T(n,a,{get:t[a],enumerable:!0})},E=(n,t,a,f)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of P(t))!B.call(n,s)&&s!==a&&T(n,s,{get:()=>t[s],enumerable:!(f=U(t,s))||f.enumerable});return n};var _=n=>E(T({},"__esModule",{value:!0}),n);var b={};V(b,{ExtractTransactionTask:()=>h});module.exports=_(b);var u=require("@ledgerhq/device-management-kit"),r=require("../../psbt/model/Psbt"),d=require("../../utils/Varint");class h{constructor(t,a){this._args=t;this._valueParser=a}run(){const{psbt:t}=this._args,a=new u.ByteArrayBuilder,f=t.getGlobalValue(r.PsbtGlobal.VERSION).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);a.add32BitUIntToData(f,!1);const s=t.getInputValue(0,r.PsbtIn.WITNESS_UTXO).isJust();s&&a.addBufferToData(Uint8Array.from([0,1]));const p=t.getGlobalValue(r.PsbtGlobal.INPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,d.encodeVarint)(p).extract());const I=new u.ByteArrayBuilder;for(let e=0;e<p;e++){a.addBufferToData(t.getInputValue(e,r.PsbtIn.PREVIOUS_TXID).mapOrDefault(o=>o.data,new Uint8Array));const c=t.getInputValue(e,r.PsbtIn.OUTPUT_INDEX).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);a.add32BitUIntToData(c,!1);const l=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTSIG).mapOrDefault(o=>o.data,Uint8Array.from([]));a.addBufferToData((0,d.encodeVarint)(l.length).extract()),a.addBufferToData(l);const i=t.getInputValue(e,r.PsbtIn.SEQUENCE).chain(o=>this._valueParser.getUInt32LE(o.data)).orDefault(0);if(a.add32BitUIntToData(i,!1),s){const o=t.getInputValue(e,r.PsbtIn.FINAL_SCRIPTWITNESS).mapOrDefault(m=>m.data,Uint8Array.from([]));I.addBufferToData(o)}}const g=t.getGlobalValue(r.PsbtGlobal.OUTPUT_COUNT).chain(e=>this._valueParser.getVarint(e.data)).orDefault(0);a.addBufferToData((0,d.encodeVarint)(g).extract());for(let e=0;e<g;e++){const c=t.getOutputValue(e,r.PsbtOut.AMOUNT).chain(i=>this._valueParser.getInt64LE(i.data)).orDefault(0n),l=t.getOutputValue(e,r.PsbtOut.SCRIPT).mapOrDefault(i=>i.data,new Uint8Array);a.add64BitIntToData(c,!1),a.addBufferToData((0,d.encodeVarint)(l.length).extract()),a.addBufferToData(l)}a.addBufferToData(I.build());const D=t.getGlobalValue(r.PsbtGlobal.FALLBACK_LOCKTIME).chain(e=>this._valueParser.getUInt32LE(e.data)).orDefault(0);return a.add32BitUIntToData(D,!1),(0,u.CommandResultFactory)({data:(0,u.bufferToHexaString)(a.build())})}}0&&(module.exports={ExtractTransactionTask});
2
2
  //# sourceMappingURL=ExtractTransactionTask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/ExtractTransactionTask.ts"],
4
- "sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n type Psbt,\n PsbtGlobal,\n PsbtIn,\n PsbtOut,\n} from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\ntype ExtractTransactionTaskArgs = {\n psbt: Psbt;\n};\n\nexport class ExtractTransactionTask {\n constructor(\n private readonly _args: ExtractTransactionTaskArgs,\n private readonly _valueParser: ValueParser,\n ) {}\n\n /**\n * Processes a PSBT (Partially Signed Bitcoin Transaction) and constructs a finalized Bitcoin transaction.\n *\n * @return {CommandResult<HexaString, BtcErrorCodes>} A `CommandResult` object containing the resulting serialized transaction\n * as a hexadecimal string (without the \"0x\" prefix) on success, or an error code (`BtcErrorCodes`) on failure.\n */\n run(): CommandResult<HexaString, BtcErrorCodes> {\n const { psbt } = this._args;\n const transaction = new ByteArrayBuilder();\n const psbtVersion = psbt\n .getGlobalValue(PsbtGlobal.VERSION)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(psbtVersion, false);\n const isSegwit = psbt.getInputValue(0, PsbtIn.WITNESS_UTXO).isJust();\n if (isSegwit) {\n transaction.addBufferToData(Uint8Array.from([0, 0x01]));\n }\n const inputCount = psbt\n .getGlobalValue(PsbtGlobal.INPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n\n transaction.addBufferToData(encodeVarint(inputCount).extract()!);\n const witnessBuffer = new ByteArrayBuilder();\n for (let i = 0; i < inputCount; i++) {\n transaction.addBufferToData(\n psbt\n .getInputValue(i, PsbtIn.PREVIOUS_TXID)\n .mapOrDefault((v) => v.data, Buffer.from([])),\n );\n const outputIndex = psbt\n .getInputValue(i, PsbtIn.OUTPUT_INDEX)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(outputIndex, false);\n const scriptSig = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTSIG)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n transaction.addBufferToData(encodeVarint(scriptSig.length).extract()!);\n transaction.addBufferToData(scriptSig);\n const sequence = psbt\n .getInputValue(i, PsbtIn.SEQUENCE)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(sequence, false);\n if (isSegwit) {\n const witness = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTWITNESS)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n witnessBuffer.addBufferToData(witness);\n }\n }\n const outputCount = psbt\n .getGlobalValue(PsbtGlobal.OUTPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n transaction.addBufferToData(encodeVarint(outputCount).extract()!);\n for (let o = 0; o < outputCount; o++) {\n const amount = psbt\n .getOutputValue(o, PsbtOut.AMOUNT)\n .chain((value) => this._valueParser.getInt64LE(value.data))\n .orDefault(0n);\n const script = psbt\n .getOutputValue(o, PsbtOut.SCRIPT)\n .mapOrDefault((v) => v.data, Buffer.from([]));\n transaction.add64BitIntToData(amount, false);\n transaction.addBufferToData(encodeVarint(script.length).extract()!);\n transaction.addBufferToData(script);\n }\n transaction.addBufferToData(witnessBuffer.build());\n const locktime = psbt\n .getGlobalValue(PsbtGlobal.FALLBACK_LOCKTIME)\n .chain((v) => this._valueParser.getUInt32LE(v.data))\n .orDefault(0);\n transaction.add32BitUIntToData(locktime, false);\n return CommandResultFactory({\n data: bufferToHexaString(transaction.build()),\n });\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n type Psbt,\n PsbtGlobal,\n PsbtIn,\n PsbtOut,\n} from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\ntype ExtractTransactionTaskArgs = {\n psbt: Psbt;\n};\n\nexport class ExtractTransactionTask {\n constructor(\n private readonly _args: ExtractTransactionTaskArgs,\n private readonly _valueParser: ValueParser,\n ) {}\n\n /**\n * Processes a PSBT (Partially Signed Bitcoin Transaction) and constructs a finalized Bitcoin transaction.\n *\n * @return {CommandResult<HexaString, BtcErrorCodes>} A `CommandResult` object containing the resulting serialized transaction\n * as a hexadecimal string (without the \"0x\" prefix) on success, or an error code (`BtcErrorCodes`) on failure.\n */\n run(): CommandResult<HexaString, BtcErrorCodes> {\n const { psbt } = this._args;\n const transaction = new ByteArrayBuilder();\n const psbtVersion = psbt\n .getGlobalValue(PsbtGlobal.VERSION)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(psbtVersion, false);\n const isSegwit = psbt.getInputValue(0, PsbtIn.WITNESS_UTXO).isJust();\n if (isSegwit) {\n transaction.addBufferToData(Uint8Array.from([0, 0x01]));\n }\n const inputCount = psbt\n .getGlobalValue(PsbtGlobal.INPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n\n transaction.addBufferToData(encodeVarint(inputCount).extract()!);\n const witnessBuffer = new ByteArrayBuilder();\n for (let i = 0; i < inputCount; i++) {\n transaction.addBufferToData(\n psbt\n .getInputValue(i, PsbtIn.PREVIOUS_TXID)\n .mapOrDefault((v) => v.data, new Uint8Array()),\n );\n const outputIndex = psbt\n .getInputValue(i, PsbtIn.OUTPUT_INDEX)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(outputIndex, false);\n const scriptSig = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTSIG)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n transaction.addBufferToData(encodeVarint(scriptSig.length).extract()!);\n transaction.addBufferToData(scriptSig);\n const sequence = psbt\n .getInputValue(i, PsbtIn.SEQUENCE)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(sequence, false);\n if (isSegwit) {\n const witness = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTWITNESS)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n witnessBuffer.addBufferToData(witness);\n }\n }\n const outputCount = psbt\n .getGlobalValue(PsbtGlobal.OUTPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n transaction.addBufferToData(encodeVarint(outputCount).extract()!);\n for (let o = 0; o < outputCount; o++) {\n const amount = psbt\n .getOutputValue(o, PsbtOut.AMOUNT)\n .chain((value) => this._valueParser.getInt64LE(value.data))\n .orDefault(0n);\n const script = psbt\n .getOutputValue(o, PsbtOut.SCRIPT)\n .mapOrDefault((v) => v.data, new Uint8Array());\n transaction.add64BitIntToData(amount, false);\n transaction.addBufferToData(encodeVarint(script.length).extract()!);\n transaction.addBufferToData(script);\n }\n transaction.addBufferToData(witnessBuffer.build());\n const locktime = psbt\n .getGlobalValue(PsbtGlobal.FALLBACK_LOCKTIME)\n .chain((v) => this._valueParser.getUInt32LE(v.data))\n .orDefault(0);\n transaction.add32BitUIntToData(locktime, false);\n return CommandResultFactory({\n data: bufferToHexaString(transaction.build()),\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAMO,2CAGPC,EAKO,qCAEPC,EAA6B,kCAMtB,MAAMJ,CAAuB,CAClC,YACmBK,EACAC,EACjB,CAFiB,WAAAD,EACA,kBAAAC,CAChB,CAQH,KAAgD,CAC9C,KAAM,CAAE,KAAAC,CAAK,EAAI,KAAK,MAChBC,EAAc,IAAI,mBAClBC,EAAcF,EACjB,eAAe,aAAW,OAAO,EACjC,MAAOG,GAAU,KAAK,aAAa,YAAYA,EAAM,IAAI,CAAC,EAC1D,UAAU,CAAC,EACdF,EAAY,mBAAmBC,EAAa,EAAK,EACjD,MAAME,EAAWJ,EAAK,cAAc,EAAG,SAAO,YAAY,EAAE,OAAO,EAC/DI,GACFH,EAAY,gBAAgB,WAAW,KAAK,CAAC,EAAG,CAAI,CAAC,CAAC,EAExD,MAAMI,EAAaL,EAChB,eAAe,aAAW,WAAW,EACrC,MAAOG,GAAU,KAAK,aAAa,UAAUA,EAAM,IAAI,CAAC,EACxD,UAAU,CAAC,EAEdF,EAAY,mBAAgB,gBAAaI,CAAU,EAAE,QAAQ,CAAE,EAC/D,MAAMC,EAAgB,IAAI,mBAC1B,QAASC,EAAI,EAAGA,EAAIF,EAAYE,IAAK,CACnCN,EAAY,gBACVD,EACG,cAAcO,EAAG,SAAO,aAAa,EACrC,aAAcC,GAAMA,EAAE,KAAM,IAAI,UAAY,CACjD,EACA,MAAMC,EAAcT,EACjB,cAAcO,EAAG,SAAO,YAAY,EACpC,MAAOJ,GAAU,KAAK,aAAa,YAAYA,EAAM,IAAI,CAAC,EAC1D,UAAU,CAAC,EACdF,EAAY,mBAAmBQ,EAAa,EAAK,EACjD,MAAMC,EAAYV,EACf,cAAcO,EAAG,SAAO,eAAe,EACvC,aAAcC,GAAMA,EAAE,KAAM,WAAW,KAAK,CAAC,CAAC,CAAC,EAClDP,EAAY,mBAAgB,gBAAaS,EAAU,MAAM,EAAE,QAAQ,CAAE,EACrET,EAAY,gBAAgBS,CAAS,EACrC,MAAMC,EAAWX,EACd,cAAcO,EAAG,SAAO,QAAQ,EAChC,MAAOJ,GAAU,KAAK,aAAa,YAAYA,EAAM,IAAI,CAAC,EAC1D,UAAU,CAAC,EAEd,GADAF,EAAY,mBAAmBU,EAAU,EAAK,EAC1CP,EAAU,CACZ,MAAMQ,EAAUZ,EACb,cAAcO,EAAG,SAAO,mBAAmB,EAC3C,aAAcC,GAAMA,EAAE,KAAM,WAAW,KAAK,CAAC,CAAC,CAAC,EAClDF,EAAc,gBAAgBM,CAAO,CACvC,CACF,CACA,MAAMC,EAAcb,EACjB,eAAe,aAAW,YAAY,EACtC,MAAOG,GAAU,KAAK,aAAa,UAAUA,EAAM,IAAI,CAAC,EACxD,UAAU,CAAC,EACdF,EAAY,mBAAgB,gBAAaY,CAAW,EAAE,QAAQ,CAAE,EAChE,QAASC,EAAI,EAAGA,EAAID,EAAaC,IAAK,CACpC,MAAMC,EAASf,EACZ,eAAec,EAAG,UAAQ,MAAM,EAChC,MAAOX,GAAU,KAAK,aAAa,WAAWA,EAAM,IAAI,CAAC,EACzD,UAAU,EAAE,EACTa,EAAShB,EACZ,eAAec,EAAG,UAAQ,MAAM,EAChC,aAAcN,GAAMA,EAAE,KAAM,IAAI,UAAY,EAC/CP,EAAY,kBAAkBc,EAAQ,EAAK,EAC3Cd,EAAY,mBAAgB,gBAAae,EAAO,MAAM,EAAE,QAAQ,CAAE,EAClEf,EAAY,gBAAgBe,CAAM,CACpC,CACAf,EAAY,gBAAgBK,EAAc,MAAM,CAAC,EACjD,MAAMW,EAAWjB,EACd,eAAe,aAAW,iBAAiB,EAC3C,MAAOQ,GAAM,KAAK,aAAa,YAAYA,EAAE,IAAI,CAAC,EAClD,UAAU,CAAC,EACd,OAAAP,EAAY,mBAAmBgB,EAAU,EAAK,KACvC,wBAAqB,CAC1B,QAAM,sBAAmBhB,EAAY,MAAM,CAAC,CAC9C,CAAC,CACH,CACF",
6
6
  "names": ["ExtractTransactionTask_exports", "__export", "ExtractTransactionTask", "__toCommonJS", "import_device_management_kit", "import_Psbt", "import_Varint", "_args", "_valueParser", "psbt", "transaction", "psbtVersion", "value", "isSegwit", "inputCount", "witnessBuffer", "i", "v", "outputIndex", "scriptSig", "sequence", "witness", "outputCount", "o", "amount", "script", "locktime"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var P=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var h=(o,s,c,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of k(s))!R.call(o,n)&&n!==c&&l(o,n,{get:()=>s[n],enumerable:!(a=x(s,n))||a.enumerable});return o};var S=(o,s,c)=>(c=o!=null?P(B(o)):{},h(s||!o||!o.__esModule?l(c,"default",{value:o,enumerable:!0}):c,o));var m=require("@ledgerhq/device-management-kit"),E=S(require("bitcoinjs-lib")),t=require("purify-ts"),u=require("../../../psbt/model/Psbt"),b=require("./DefaultPsbtMapper");describe("DefaultPsbtMapper tests",()=>{const o="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",s="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",c=(0,m.hexaStringToBuffer)(o),a=vi.fn(),n={deserialize:a},A=vi.fn(),d={normalize:A},f=()=>new u.Psbt;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(o);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map base64 string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(s);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map bjs transaction",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(E.Psbt.fromHex(o));expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map byte array",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map invalid string",()=>{const e=f(),r=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map("some random string");expect(p.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=f();a.mockReturnValueOnce((0,t.Left)(new Error)),A.mockReturnValueOnce((0,t.Right)(e));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(i.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=f();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Left)(new Error));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(i.isRight()).toStrictEqual(!1)})});
1
+ "use strict";var P=Object.create;var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var B=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var h=(o,f,c,a)=>{if(f&&typeof f=="object"||typeof f=="function")for(let n of k(f))!R.call(o,n)&&n!==c&&l(o,n,{get:()=>f[n],enumerable:!(a=x(f,n))||a.enumerable});return o};var S=(o,f,c)=>(c=o!=null?P(B(o)):{},h(f||!o||!o.__esModule?l(c,"default",{value:o,enumerable:!0}):c,o));var m=require("@ledgerhq/device-management-kit"),E=S(require("bitcoinjs-lib")),t=require("purify-ts"),u=require("../../../psbt/model/Psbt"),b=require("./DefaultPsbtMapper");describe("DefaultPsbtMapper tests",()=>{const o="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",f="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",c=(0,m.hexaStringToBuffer)(o),a=vi.fn(),n={deserialize:a},A=vi.fn(),d={normalize:A},s=()=>new u.Psbt;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(o);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map base64 string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(f);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map bjs transaction",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(E.Psbt.fromHex(o));expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map byte array",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!0),expect(p.unsafeCoerce()).toStrictEqual(r)}),it("Map invalid string",()=>{const e=s(),r=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Right)(r));const p=new b.DefaultPsbtMapper(n,d).map("some non base64 string!");expect(p.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=s();a.mockReturnValueOnce((0,t.Left)(new Error)),A.mockReturnValueOnce((0,t.Right)(e));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(i.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=s();a.mockReturnValueOnce((0,t.Right)(e)),A.mockReturnValueOnce((0,t.Left)(new Error));const i=new b.DefaultPsbtMapper(n,d).map(c);expect(a).toHaveBeenCalledWith(c),expect(A).toHaveBeenCalledWith(e),expect(i.isRight()).toStrictEqual(!1)})});
2
2
  //# sourceMappingURL=DefaultPsbtMapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/psbt/service/psbt/DefaultPsbtMapper.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some random string\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some non base64 string!\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "bjs", "import_purify_ts", "import_Psbt", "import_DefaultPsbtMapper", "SERIALIZED_PSBT_V0_HEX", "SERIALIZED_PSBT_V0_BASE64", "SERIALIZED_PSBT_V0", "mockDeserialize", "mockSerializer", "mockNormalize", "mockNormalizer", "createPsbt", "parsedPsbt", "normalizedPsbt", "mapped"]
7
7
  }
@@ -63,5 +63,5 @@
63
63
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
64
64
  },
65
65
  "types": "lib/cjs/index.d.ts",
66
- "version": "1.3.1"
66
+ "version": "1.3.2"
67
67
  }
@@ -1,2 +1,2 @@
1
- import{bufferToHexaString as B,ByteArrayBuilder as p,CommandResultFactory as P}from"@ledgerhq/device-management-kit";import{PsbtGlobal as s,PsbtIn as o,PsbtOut as I}from"../../psbt/model/Psbt";import{encodeVarint as l}from"../../utils/Varint";class h{constructor(e,a){this._args=e;this._valueParser=a}run(){const{psbt:e}=this._args,a=new p,g=e.getGlobalValue(s.VERSION).chain(t=>this._valueParser.getUInt32LE(t.data)).orDefault(0);a.add32BitUIntToData(g,!1);const i=e.getInputValue(0,o.WITNESS_UTXO).isJust();i&&a.addBufferToData(Uint8Array.from([0,1]));const d=e.getGlobalValue(s.INPUT_COUNT).chain(t=>this._valueParser.getVarint(t.data)).orDefault(0);a.addBufferToData(l(d).extract());const c=new p;for(let t=0;t<d;t++){a.addBufferToData(e.getInputValue(t,o.PREVIOUS_TXID).mapOrDefault(r=>r.data,Buffer.from([])));const f=e.getInputValue(t,o.OUTPUT_INDEX).chain(r=>this._valueParser.getUInt32LE(r.data)).orDefault(0);a.add32BitUIntToData(f,!1);const n=e.getInputValue(t,o.FINAL_SCRIPTSIG).mapOrDefault(r=>r.data,Uint8Array.from([]));a.addBufferToData(l(n.length).extract()),a.addBufferToData(n);const u=e.getInputValue(t,o.SEQUENCE).chain(r=>this._valueParser.getUInt32LE(r.data)).orDefault(0);if(a.add32BitUIntToData(u,!1),i){const r=e.getInputValue(t,o.FINAL_SCRIPTWITNESS).mapOrDefault(m=>m.data,Uint8Array.from([]));c.addBufferToData(r)}}const T=e.getGlobalValue(s.OUTPUT_COUNT).chain(t=>this._valueParser.getVarint(t.data)).orDefault(0);a.addBufferToData(l(T).extract());for(let t=0;t<T;t++){const f=e.getOutputValue(t,I.AMOUNT).chain(u=>this._valueParser.getInt64LE(u.data)).orDefault(0n),n=e.getOutputValue(t,I.SCRIPT).mapOrDefault(u=>u.data,Buffer.from([]));a.add64BitIntToData(f,!1),a.addBufferToData(l(n.length).extract()),a.addBufferToData(n)}a.addBufferToData(c.build());const D=e.getGlobalValue(s.FALLBACK_LOCKTIME).chain(t=>this._valueParser.getUInt32LE(t.data)).orDefault(0);return a.add32BitUIntToData(D,!1),P({data:B(a.build())})}}export{h as ExtractTransactionTask};
1
+ import{bufferToHexaString as U,ByteArrayBuilder as p,CommandResultFactory as P}from"@ledgerhq/device-management-kit";import{PsbtGlobal as u,PsbtIn as o,PsbtOut as I}from"../../psbt/model/Psbt";import{encodeVarint as l}from"../../utils/Varint";class h{constructor(e,a){this._args=e;this._valueParser=a}run(){const{psbt:e}=this._args,a=new p,g=e.getGlobalValue(u.VERSION).chain(t=>this._valueParser.getUInt32LE(t.data)).orDefault(0);a.add32BitUIntToData(g,!1);const d=e.getInputValue(0,o.WITNESS_UTXO).isJust();d&&a.addBufferToData(Uint8Array.from([0,1]));const f=e.getGlobalValue(u.INPUT_COUNT).chain(t=>this._valueParser.getVarint(t.data)).orDefault(0);a.addBufferToData(l(f).extract());const c=new p;for(let t=0;t<f;t++){a.addBufferToData(e.getInputValue(t,o.PREVIOUS_TXID).mapOrDefault(r=>r.data,new Uint8Array));const i=e.getInputValue(t,o.OUTPUT_INDEX).chain(r=>this._valueParser.getUInt32LE(r.data)).orDefault(0);a.add32BitUIntToData(i,!1);const n=e.getInputValue(t,o.FINAL_SCRIPTSIG).mapOrDefault(r=>r.data,Uint8Array.from([]));a.addBufferToData(l(n.length).extract()),a.addBufferToData(n);const s=e.getInputValue(t,o.SEQUENCE).chain(r=>this._valueParser.getUInt32LE(r.data)).orDefault(0);if(a.add32BitUIntToData(s,!1),d){const r=e.getInputValue(t,o.FINAL_SCRIPTWITNESS).mapOrDefault(m=>m.data,Uint8Array.from([]));c.addBufferToData(r)}}const T=e.getGlobalValue(u.OUTPUT_COUNT).chain(t=>this._valueParser.getVarint(t.data)).orDefault(0);a.addBufferToData(l(T).extract());for(let t=0;t<T;t++){const i=e.getOutputValue(t,I.AMOUNT).chain(s=>this._valueParser.getInt64LE(s.data)).orDefault(0n),n=e.getOutputValue(t,I.SCRIPT).mapOrDefault(s=>s.data,new Uint8Array);a.add64BitIntToData(i,!1),a.addBufferToData(l(n.length).extract()),a.addBufferToData(n)}a.addBufferToData(c.build());const D=e.getGlobalValue(u.FALLBACK_LOCKTIME).chain(t=>this._valueParser.getUInt32LE(t.data)).orDefault(0);return a.add32BitUIntToData(D,!1),P({data:U(a.build())})}}export{h as ExtractTransactionTask};
2
2
  //# sourceMappingURL=ExtractTransactionTask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/ExtractTransactionTask.ts"],
4
- "sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n type Psbt,\n PsbtGlobal,\n PsbtIn,\n PsbtOut,\n} from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\ntype ExtractTransactionTaskArgs = {\n psbt: Psbt;\n};\n\nexport class ExtractTransactionTask {\n constructor(\n private readonly _args: ExtractTransactionTaskArgs,\n private readonly _valueParser: ValueParser,\n ) {}\n\n /**\n * Processes a PSBT (Partially Signed Bitcoin Transaction) and constructs a finalized Bitcoin transaction.\n *\n * @return {CommandResult<HexaString, BtcErrorCodes>} A `CommandResult` object containing the resulting serialized transaction\n * as a hexadecimal string (without the \"0x\" prefix) on success, or an error code (`BtcErrorCodes`) on failure.\n */\n run(): CommandResult<HexaString, BtcErrorCodes> {\n const { psbt } = this._args;\n const transaction = new ByteArrayBuilder();\n const psbtVersion = psbt\n .getGlobalValue(PsbtGlobal.VERSION)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(psbtVersion, false);\n const isSegwit = psbt.getInputValue(0, PsbtIn.WITNESS_UTXO).isJust();\n if (isSegwit) {\n transaction.addBufferToData(Uint8Array.from([0, 0x01]));\n }\n const inputCount = psbt\n .getGlobalValue(PsbtGlobal.INPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n\n transaction.addBufferToData(encodeVarint(inputCount).extract()!);\n const witnessBuffer = new ByteArrayBuilder();\n for (let i = 0; i < inputCount; i++) {\n transaction.addBufferToData(\n psbt\n .getInputValue(i, PsbtIn.PREVIOUS_TXID)\n .mapOrDefault((v) => v.data, Buffer.from([])),\n );\n const outputIndex = psbt\n .getInputValue(i, PsbtIn.OUTPUT_INDEX)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(outputIndex, false);\n const scriptSig = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTSIG)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n transaction.addBufferToData(encodeVarint(scriptSig.length).extract()!);\n transaction.addBufferToData(scriptSig);\n const sequence = psbt\n .getInputValue(i, PsbtIn.SEQUENCE)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(sequence, false);\n if (isSegwit) {\n const witness = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTWITNESS)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n witnessBuffer.addBufferToData(witness);\n }\n }\n const outputCount = psbt\n .getGlobalValue(PsbtGlobal.OUTPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n transaction.addBufferToData(encodeVarint(outputCount).extract()!);\n for (let o = 0; o < outputCount; o++) {\n const amount = psbt\n .getOutputValue(o, PsbtOut.AMOUNT)\n .chain((value) => this._valueParser.getInt64LE(value.data))\n .orDefault(0n);\n const script = psbt\n .getOutputValue(o, PsbtOut.SCRIPT)\n .mapOrDefault((v) => v.data, Buffer.from([]));\n transaction.add64BitIntToData(amount, false);\n transaction.addBufferToData(encodeVarint(script.length).extract()!);\n transaction.addBufferToData(script);\n }\n transaction.addBufferToData(witnessBuffer.build());\n const locktime = psbt\n .getGlobalValue(PsbtGlobal.FALLBACK_LOCKTIME)\n .chain((v) => this._valueParser.getUInt32LE(v.data))\n .orDefault(0);\n transaction.add32BitUIntToData(locktime, false);\n return CommandResultFactory({\n data: bufferToHexaString(transaction.build()),\n });\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n bufferToHexaString,\n ByteArrayBuilder,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n type Psbt,\n PsbtGlobal,\n PsbtIn,\n PsbtOut,\n} from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { encodeVarint } from \"@internal/utils/Varint\";\n\ntype ExtractTransactionTaskArgs = {\n psbt: Psbt;\n};\n\nexport class ExtractTransactionTask {\n constructor(\n private readonly _args: ExtractTransactionTaskArgs,\n private readonly _valueParser: ValueParser,\n ) {}\n\n /**\n * Processes a PSBT (Partially Signed Bitcoin Transaction) and constructs a finalized Bitcoin transaction.\n *\n * @return {CommandResult<HexaString, BtcErrorCodes>} A `CommandResult` object containing the resulting serialized transaction\n * as a hexadecimal string (without the \"0x\" prefix) on success, or an error code (`BtcErrorCodes`) on failure.\n */\n run(): CommandResult<HexaString, BtcErrorCodes> {\n const { psbt } = this._args;\n const transaction = new ByteArrayBuilder();\n const psbtVersion = psbt\n .getGlobalValue(PsbtGlobal.VERSION)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(psbtVersion, false);\n const isSegwit = psbt.getInputValue(0, PsbtIn.WITNESS_UTXO).isJust();\n if (isSegwit) {\n transaction.addBufferToData(Uint8Array.from([0, 0x01]));\n }\n const inputCount = psbt\n .getGlobalValue(PsbtGlobal.INPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n\n transaction.addBufferToData(encodeVarint(inputCount).extract()!);\n const witnessBuffer = new ByteArrayBuilder();\n for (let i = 0; i < inputCount; i++) {\n transaction.addBufferToData(\n psbt\n .getInputValue(i, PsbtIn.PREVIOUS_TXID)\n .mapOrDefault((v) => v.data, new Uint8Array()),\n );\n const outputIndex = psbt\n .getInputValue(i, PsbtIn.OUTPUT_INDEX)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(outputIndex, false);\n const scriptSig = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTSIG)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n transaction.addBufferToData(encodeVarint(scriptSig.length).extract()!);\n transaction.addBufferToData(scriptSig);\n const sequence = psbt\n .getInputValue(i, PsbtIn.SEQUENCE)\n .chain((value) => this._valueParser.getUInt32LE(value.data))\n .orDefault(0);\n transaction.add32BitUIntToData(sequence, false);\n if (isSegwit) {\n const witness = psbt\n .getInputValue(i, PsbtIn.FINAL_SCRIPTWITNESS)\n .mapOrDefault((v) => v.data, Uint8Array.from([]));\n witnessBuffer.addBufferToData(witness);\n }\n }\n const outputCount = psbt\n .getGlobalValue(PsbtGlobal.OUTPUT_COUNT)\n .chain((value) => this._valueParser.getVarint(value.data))\n .orDefault(0);\n transaction.addBufferToData(encodeVarint(outputCount).extract()!);\n for (let o = 0; o < outputCount; o++) {\n const amount = psbt\n .getOutputValue(o, PsbtOut.AMOUNT)\n .chain((value) => this._valueParser.getInt64LE(value.data))\n .orDefault(0n);\n const script = psbt\n .getOutputValue(o, PsbtOut.SCRIPT)\n .mapOrDefault((v) => v.data, new Uint8Array());\n transaction.add64BitIntToData(amount, false);\n transaction.addBufferToData(encodeVarint(script.length).extract()!);\n transaction.addBufferToData(script);\n }\n transaction.addBufferToData(witnessBuffer.build());\n const locktime = psbt\n .getGlobalValue(PsbtGlobal.FALLBACK_LOCKTIME)\n .chain((v) => this._valueParser.getUInt32LE(v.data))\n .orDefault(0);\n transaction.add32BitUIntToData(locktime, false);\n return CommandResultFactory({\n data: bufferToHexaString(transaction.build()),\n });\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["bufferToHexaString", "ByteArrayBuilder", "CommandResultFactory", "PsbtGlobal", "PsbtIn", "PsbtOut", "encodeVarint", "ExtractTransactionTask", "_args", "_valueParser", "psbt", "transaction", "psbtVersion", "value", "isSegwit", "inputCount", "witnessBuffer", "i", "v", "outputIndex", "scriptSig", "sequence", "witness", "outputCount", "o", "amount", "script", "locktime"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import*as u from"bitcoinjs-lib";import{Left as d,Right as n}from"purify-ts";import{Psbt as P}from"../../../psbt/model/Psbt";import{DefaultPsbtMapper as i}from"./DefaultPsbtMapper";describe("DefaultPsbtMapper tests",()=>{const b="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",l="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",A=m(b),t=vi.fn(),f={deserialize:t},c=vi.fn(),s={normalize:c},o=()=>new P;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(b);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map base64 string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(l);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map bjs transaction",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(u.Psbt.fromHex(b));expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map byte array",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map invalid string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(f,s).map("some random string");expect(r.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=o();t.mockReturnValueOnce(d(new Error)),c.mockReturnValueOnce(n(e));const p=new i(f,s).map(A);expect(t).toHaveBeenCalledWith(A),expect(p.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(d(new Error));const p=new i(f,s).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!1)})});
1
+ import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import*as u from"bitcoinjs-lib";import{Left as d,Right as n}from"purify-ts";import{Psbt as P}from"../../../psbt/model/Psbt";import{DefaultPsbtMapper as i}from"./DefaultPsbtMapper";describe("DefaultPsbtMapper tests",()=>{const b="70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000",l="cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=",A=m(b),t=vi.fn(),s={deserialize:t},c=vi.fn(),f={normalize:c},o=()=>new P;beforeEach(()=>{vi.resetAllMocks()}),it("Map hex string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(b);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map base64 string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(l);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map bjs transaction",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(u.Psbt.fromHex(b));expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map byte array",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(r.isRight()).toStrictEqual(!0),expect(r.unsafeCoerce()).toStrictEqual(a)}),it("Map invalid string",()=>{const e=o(),a=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(n(a));const r=new i(s,f).map("some non base64 string!");expect(r.isRight()).toStrictEqual(!1)}),it("Parser failure",()=>{const e=o();t.mockReturnValueOnce(d(new Error)),c.mockReturnValueOnce(n(e));const p=new i(s,f).map(A);expect(t).toHaveBeenCalledWith(A),expect(p.isRight()).toStrictEqual(!1)}),it("Normalizer failure",()=>{const e=o();t.mockReturnValueOnce(n(e)),c.mockReturnValueOnce(d(new Error));const p=new i(s,f).map(A);expect(t).toHaveBeenCalledWith(A),expect(c).toHaveBeenCalledWith(e),expect(p.isRight()).toStrictEqual(!1)})});
2
2
  //# sourceMappingURL=DefaultPsbtMapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/psbt/service/psbt/DefaultPsbtMapper.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some random string\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport * as bjs from \"bitcoinjs-lib\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { Psbt } from \"@internal/psbt/model/Psbt\";\n\nimport { DefaultPsbtMapper } from \"./DefaultPsbtMapper\";\nimport { type DefaultPsbtSerializer } from \"./DefaultPsbtSerializer\";\nimport { type DefaultPsbtV2Normalizer } from \"./DefaultPsbtV2Normalizer\";\n\ndescribe(\"DefaultPsbtMapper tests\", () => {\n // Test case from https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#user-content-Test_Vectors\n const SERIALIZED_PSBT_V0_HEX =\n \"70736274ff0100a00200000002ab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40000000000feffffffab0949a08c5af7c49b8212f417e2f15ab3f5c33dcf153821a8139f877a5b7be40100000000feffffff02603bea0b000000001976a914768a40bbd740cbe81d988e71de2a4d5c71396b1d88ac8e240000000000001976a9146f4620b553fa095e721b9ee0efe9fa039cca459788ac00000000000100df0200000001268171371edff285e937adeea4b37b78000c0566cbb3ad64641713ca42171bf6000000006a473044022070b2245123e6bf474d60c5b50c043d4c691a5d2435f09a34a7662a9dc251790a022001329ca9dacf280bdf30740ec0390422422c81cb45839457aeb76fc12edd95b3012102657d118d3357b8e0f4c2cd46db7b39f6d9c38d9a70abcb9b2de5dc8dbfe4ce31feffffff02d3dff505000000001976a914d0c59903c5bac2868760e90fd521a4665aa7652088ac00e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787b32e13000001012000e1f5050000000017a9143545e6e33b832c47050f24d3eeb93c9c03948bc787010416001485d13537f2e265405a34dbafa9e3dda01fb8230800220202ead596687ca806043edc3de116cdf29d5e9257c196cd055cf698c8d02bf24e9910b4a6ba670000008000000080020000800022020394f62be9df19952c5587768aeb7698061ad2c4a25c894f47d8c162b4d7213d0510b4a6ba6700000080010000800200008000\";\n const SERIALIZED_PSBT_V0_BASE64 =\n \"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=\";\n const SERIALIZED_PSBT_V0 = hexaStringToBuffer(SERIALIZED_PSBT_V0_HEX)!;\n\n // Mock PsbtSerializer\n const mockDeserialize = vi.fn();\n const mockSerializer: DefaultPsbtSerializer = {\n deserialize: mockDeserialize,\n } as unknown as DefaultPsbtSerializer;\n\n // Mock PsbtV2Normalizer\n const mockNormalize = vi.fn();\n const mockNormalizer: DefaultPsbtV2Normalizer = {\n normalize: mockNormalize,\n } as unknown as DefaultPsbtV2Normalizer;\n\n // Mocked psbt\n const createPsbt = () => new Psbt();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"Map hex string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_HEX);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map base64 string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0_BASE64);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map bjs transaction\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(bjs.Psbt.fromHex(SERIALIZED_PSBT_V0_HEX));\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map byte array\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(true);\n expect(mapped.unsafeCoerce()).toStrictEqual(normalizedPsbt);\n });\n\n it(\"Map invalid string\", () => {\n // Given\n const parsedPsbt = createPsbt();\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(\"some non base64 string!\");\n\n // Then\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Parser failure\", () => {\n // Given\n const normalizedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Left(new Error()));\n mockNormalize.mockReturnValueOnce(Right(normalizedPsbt));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n\n it(\"Normalizer failure\", () => {\n // Given\n const parsedPsbt = createPsbt();\n mockDeserialize.mockReturnValueOnce(Right(parsedPsbt));\n mockNormalize.mockReturnValueOnce(Left(new Error()));\n const mapper = new DefaultPsbtMapper(mockSerializer, mockNormalizer);\n\n // When\n const mapped = mapper.map(SERIALIZED_PSBT_V0);\n\n // Then\n expect(mockDeserialize).toHaveBeenCalledWith(SERIALIZED_PSBT_V0);\n expect(mockNormalize).toHaveBeenCalledWith(parsedPsbt);\n expect(mapped.isRight()).toStrictEqual(false);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCACnC,UAAYC,MAAS,gBACrB,OAAS,QAAAC,EAAM,SAAAC,MAAa,YAE5B,OAAS,QAAAC,MAAY,4BAErB,OAAS,qBAAAC,MAAyB,sBAIlC,SAAS,0BAA2B,IAAM,CAExC,MAAMC,EACJ,ymCACIC,EACJ,mvBACIC,EAAqBR,EAAmBM,CAAsB,EAG9DG,EAAkB,GAAG,GAAG,EACxBC,EAAwC,CAC5C,YAAaD,CACf,EAGME,EAAgB,GAAG,GAAG,EACtBC,EAA0C,CAC9C,UAAWD,CACb,EAGME,EAAa,IAAM,IAAIT,EAE7B,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,iBAAkB,IAAM,CAEzB,MAAMU,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,oBAAoBN,EAAMW,CAAU,CAAC,EACrDH,EAAc,oBAAoBR,EAAMY,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAIN,CAAsB,EAGhD,OAAOG,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,oBAAqB,IAAM,CAE5B,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,oBAAoBN,EAAMW,CAAU,CAAC,EACrDH,EAAc,oBAAoBR,EAAMY,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAIL,CAAyB,EAGnD,OAAOE,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,sBAAuB,IAAM,CAE9B,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,oBAAoBN,EAAMW,CAAU,CAAC,EACrDH,EAAc,oBAAoBR,EAAMY,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAIX,EAAI,KAAK,QAAQK,CAAsB,CAAC,EAGlE,OAAOG,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,iBAAkB,IAAM,CAEzB,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,oBAAoBN,EAAMW,CAAU,CAAC,EACrDH,EAAc,oBAAoBR,EAAMY,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAIJ,CAAkB,EAG5C,OAAOC,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAI,EAC3C,OAAOA,EAAO,aAAa,CAAC,EAAE,cAAcD,CAAc,CAC5D,CAAC,EAED,GAAG,qBAAsB,IAAM,CAE7B,MAAMD,EAAaD,EAAW,EACxBE,EAAiBF,EAAW,EAClCJ,EAAgB,oBAAoBN,EAAMW,CAAU,CAAC,EACrDH,EAAc,oBAAoBR,EAAMY,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAI,yBAAyB,EAGnD,OAAOI,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAK,CAC9C,CAAC,EAED,GAAG,iBAAkB,IAAM,CAEzB,MAAMD,EAAiBF,EAAW,EAClCJ,EAAgB,oBAAoBP,EAAK,IAAI,KAAO,CAAC,EACrDS,EAAc,oBAAoBR,EAAMY,CAAc,CAAC,EAIvD,MAAMC,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAIJ,CAAkB,EAG5C,OAAOC,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOQ,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAK,CAC9C,CAAC,EAED,GAAG,qBAAsB,IAAM,CAE7B,MAAMF,EAAaD,EAAW,EAC9BJ,EAAgB,oBAAoBN,EAAMW,CAAU,CAAC,EACrDH,EAAc,oBAAoBT,EAAK,IAAI,KAAO,CAAC,EAInD,MAAMc,EAHS,IAAIX,EAAkBK,EAAgBE,CAAc,EAG7C,IAAIJ,CAAkB,EAG5C,OAAOC,CAAe,EAAE,qBAAqBD,CAAkB,EAC/D,OAAOG,CAAa,EAAE,qBAAqBG,CAAU,EACrD,OAAOE,EAAO,QAAQ,CAAC,EAAE,cAAc,EAAK,CAC9C,CAAC,CACH,CAAC",
6
6
  "names": ["hexaStringToBuffer", "bjs", "Left", "Right", "Psbt", "DefaultPsbtMapper", "SERIALIZED_PSBT_V0_HEX", "SERIALIZED_PSBT_V0_BASE64", "SERIALIZED_PSBT_V0", "mockDeserialize", "mockSerializer", "mockNormalize", "mockNormalizer", "createPsbt", "parsedPsbt", "normalizedPsbt", "mapped"]
7
7
  }
@@ -63,5 +63,5 @@
63
63
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
64
64
  },
65
65
  "types": "lib/cjs/index.d.ts",
66
- "version": "1.3.1"
66
+ "version": "1.3.2"
67
67
  }