@vultisig/core-mpc 1.0.2 → 1.1.0

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/keysign/cosigner.js +1 -1
  3. package/dist/keysign/cosigner.js.map +1 -1
  4. package/dist/keysign/index.js +8 -6
  5. package/dist/keysign/index.js.map +1 -1
  6. package/dist/keysign/refine/utxo.d.ts.map +1 -1
  7. package/dist/keysign/refine/utxo.js +5 -6
  8. package/dist/keysign/refine/utxo.js.map +1 -1
  9. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.d.ts +28 -0
  10. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.d.ts.map +1 -0
  11. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.js +147 -0
  12. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.js.map +1 -0
  13. package/dist/keysign/swap/build.d.ts +1 -1
  14. package/dist/keysign/swap/build.d.ts.map +1 -1
  15. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +1 -1
  16. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +7 -0
  17. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +1 -1
  18. package/dist/tx/compile/compileSignBitcoinTx.d.ts +20 -0
  19. package/dist/tx/compile/compileSignBitcoinTx.d.ts.map +1 -0
  20. package/dist/tx/compile/compileSignBitcoinTx.js +101 -0
  21. package/dist/tx/compile/compileSignBitcoinTx.js.map +1 -0
  22. package/dist/tx/compile/compileTx.d.ts +3 -1
  23. package/dist/tx/compile/compileTx.d.ts.map +1 -1
  24. package/dist/tx/compile/compileTx.js +14 -5
  25. package/dist/tx/compile/compileTx.js.map +1 -1
  26. package/dist/tx/preSigningHashes/index.d.ts +3 -1
  27. package/dist/tx/preSigningHashes/index.d.ts.map +1 -1
  28. package/dist/tx/preSigningHashes/index.js +10 -5
  29. package/dist/tx/preSigningHashes/index.js.map +1 -1
  30. package/dist/types/utils/commVault.d.ts.map +1 -1
  31. package/dist/types/utils/commVault.js +1 -4
  32. package/dist/types/utils/commVault.js.map +1 -1
  33. package/dist/types/utils/libType.d.ts +3 -7
  34. package/dist/types/utils/libType.d.ts.map +1 -1
  35. package/dist/types/utils/libType.js +4 -20
  36. package/dist/types/utils/libType.js.map +1 -1
  37. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.d.ts +5 -5
  38. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.d.ts.map +1 -1
  39. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.js +5 -12
  40. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.js.map +1 -1
  41. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.d.ts +1 -1
  42. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.d.ts.map +1 -1
  43. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.js +3 -7
  44. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.js.map +1 -1
  45. package/dist/types/vultisig/keysign/v1/keysign_message_pb.d.ts +7 -1
  46. package/dist/types/vultisig/keysign/v1/keysign_message_pb.d.ts.map +1 -1
  47. package/dist/types/vultisig/keysign/v1/keysign_message_pb.js +1 -1
  48. package/dist/types/vultisig/keysign/v1/keysign_message_pb.js.map +1 -1
  49. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts +148 -0
  50. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts.map +1 -1
  51. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js +16 -1
  52. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js.map +1 -1
  53. package/dist/types/vultisig/vault/v1/vault_pb.d.ts +8 -0
  54. package/dist/types/vultisig/vault/v1/vault_pb.d.ts.map +1 -1
  55. package/dist/types/vultisig/vault/v1/vault_pb.js +1 -1
  56. package/dist/types/vultisig/vault/v1/vault_pb.js.map +1 -1
  57. package/package.json +12 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # @vultisig/core-mpc
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#235](https://github.com/vultisig/vultisig-sdk/pull/235) [`aea1c28`](https://github.com/vultisig/vultisig-sdk/commit/aea1c28051345ddef9c952108b203caa8b7fa032) Thanks [@rcoderdev](https://github.com/rcoderdev)! - ### Swap amounts (backward compatible)
8
+ - `SwapQuoteParams.amount` and `SwapTxParams.amount` now accept **`string | number`**. Call sites that already pass a **number** require no code changes.
9
+ - Human-readable swap amounts can be passed as **decimal strings** end-to-end (compound `vault.swap()`, `getSwapQuote`, `prepareSwapTx`, CLI agent), avoiding precision loss from `Number()` / `parseFloat()` on extreme magnitudes or fractional digits.
10
+ - `toChainAmount` accepts **`string | number`**; whitespace-only / empty strings throw instead of being treated as zero.
11
+
12
+ ### Send preparation (stricter validation)
13
+ - `prepareSendTx` and `estimateSendFee` reject **zero or negative** `amount` in base units. This aligns with real transfers; payloads with `toAmount: "0"` are no longer built for native/token sends.
14
+ - **Zero-value EVM contract calls** are unchanged: use `prepareContractCallTx` (or `vault.contractCall()`), which still builds via the internal path that allows `value: 0n`.
15
+
16
+ ### Other
17
+ - Swap approval sizing uses `toChainAmount` instead of float scaling for required allowance.
18
+ - `@vultisig/rujira` (source): `VultisigSignature.format` includes **`MLDSA`** to match SDK `Signature` — type-only widening, no runtime change; Rujira will pick up a **patch** version via normal dependency releases when published next.
19
+ - CLI: direct **`viem`** dependency; Solana local swap human amount via `formatUnits`; agent SSE `Transaction` typing includes optional `swap_tx` / `send_tx` / `tx`.
20
+
21
+ **Semver:** **Minor** for `@vultisig/core-chain`, `@vultisig/core-mpc`, and `@vultisig/sdk` (additive types + intentional validation tightening). **`@vultisig/cli` is linked to the SDK** in Changesets config, so it receives the same minor bump. This is **not** a SemVer **major** for integration purposes: swap inputs are only widened; `prepareSendTx({ amount: 0n })` was never a valid broadcast path.
22
+
23
+ **Release tooling note:** `yarn changeset status` may still propose a **major** version for `@vultisig/rujira` when the SDK minors, even though the only Rujira change is adding `'MLDSA'` to a string-literal union (fully backward compatible). Review the Version Packages PR and **downgrade Rujira to patch** if your policy is to reserve majors for real breaking API changes.
24
+
25
+ **`@vultisig/sdk` is 0.x:** per [SemVer](https://semver.org/#spec-item-4), minor releases on `0.y.z` may include behavior changes; consumers pinning `^0.14.0` should still accept `0.15.0` but should read changelog for validation tightening.
26
+
27
+ ### Patch Changes
28
+
29
+ - [#174](https://github.com/vultisig/vultisig-sdk/pull/174) [`c630597`](https://github.com/vultisig/vultisig-sdk/commit/c6305970d1685194f1c6c11d5e8d141e8aa6c9a1) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - fix: harden PSBT signing (SignBitcoin) - follow-up on PR [#174](https://github.com/vultisig/vultisig-sdk/issues/174)
30
+ - parameterize network in buildSignBitcoinFromPsbt (was hardcoded to mainnet)
31
+ - harden detectScriptType: full P2PKH template check, add P2WSH detection
32
+ - fail early for unsupported script types with descriptive BIP-referenced errors
33
+ - add fee snipe mitigation (cross-validate witnessUtxo vs nonWitnessUtxo)
34
+ - rename computeBip143Sighashes -> computePreSigningHashes for extensibility
35
+ - use @noble/hashes/sha256 instead of Node.js crypto (cross-platform)
36
+ - use unsigned int64 for Bitcoin amounts (writeBigUInt64LE)
37
+ - fix varint encoding for output script lengths in sighash computation
38
+ - refactor compileSignBitcoinTx to use bitcoinjs-lib Transaction class
39
+ - fix libType regression in commVault.ts for key-import vaults
40
+ - fix variable shadowing in compileTx.ts
41
+ - skip Blockaid simulation for PSBT flows (incompatible with WalletCore compiler)
42
+ - augment change detection with BIP32 derivation on outputs
43
+ - add 10 unit tests cross-validating sighash against bitcoinjs-lib v7
44
+
45
+ - Updated dependencies [[`c630597`](https://github.com/vultisig/vultisig-sdk/commit/c6305970d1685194f1c6c11d5e8d141e8aa6c9a1), [`aea1c28`](https://github.com/vultisig/vultisig-sdk/commit/aea1c28051345ddef9c952108b203caa8b7fa032)]:
46
+ - @vultisig/core-chain@1.2.0
47
+
3
48
  ## 1.0.2
4
49
 
5
50
  ### Patch Changes
@@ -152,7 +152,7 @@ async function main() {
152
152
  publicKey,
153
153
  });
154
154
  const msgs = inputs
155
- .flatMap(txInputData => getPreSigningHashes({ txInputData, walletCore, chain }).map(h => Buffer.from(h).toString('hex')))
155
+ .flatMap(txInputData => getPreSigningHashes({ txInputData, walletCore, chain, keysignPayload }).map(h => Buffer.from(h).toString('hex')))
156
156
  .sort();
157
157
  console.log(` Hashes (${msgs.length}): ${msgs.map(h => h.slice(0, 20) + '...').join(', ')}`);
158
158
  const chainKind = getChainKind(chain);
@@ -1 +1 @@
1
- {"version":3,"file":"cosigner.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/cosigner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosigner.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/cosigner.ts"],"names":[],"mappings":"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"}
@@ -118,13 +118,15 @@ export const keysign = async ({ keyShare, signatureAlgorithm, message, chainPath
118
118
  })
119
119
  : (() => {
120
120
  const [rawR, rawS] = [signature.slice(0, 32), signature.slice(32, 64)];
121
+ // Contract: each MpcEngine's signSession.finish() returns canonical
122
+ // R || S bytes — DklsEngine (ECDSA) emits big-endian (which
123
+ // encodeDERSignature consumes directly) and SchnorrEngine (Ed25519)
124
+ // emits R as a 32-byte compressed point and S as a 32-byte scalar
125
+ // little-endian (the on-the-wire ed25519-dalek format). Pass
126
+ // through here; any backend-specific byte-ordering quirks belong
127
+ // inside that backend's session wrapper, never in this loop.
121
128
  const [r, s] = [rawR, rawS]
122
- .map(value => Buffer.from(value))
123
- .map(value => match(signatureAlgorithm, {
124
- ecdsa: () => value,
125
- eddsa: () => value.reverse(),
126
- }))
127
- .map(value => value.toString('hex'));
129
+ .map(value => Buffer.from(value).toString('hex'));
128
130
  const derSignature = encodeDERSignature(rawR, rawS);
129
131
  return withoutUndefinedFields({
130
132
  msg: Buffer.from(message, 'hex').toString('base64'),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/refine/utxo.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAA;AAMnF,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAwBD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,sBAAsB,KAC5B,cAgFF,CAAA"}
1
+ {"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/refine/utxo.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAA;AAMnF,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAwBD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,sBAAsB,KAC5B,cA+EF,CAAA"}
@@ -18,12 +18,11 @@ const convertPlanUtxosToUtxoInfo = ({ utxos, walletCore, }) => utxos.map(({ outP
18
18
  });
19
19
  export const refineKeysignUtxo = (input) => {
20
20
  const utxoSpecific = getBlockchainSpecificValue(input.keysignPayload.blockchainSpecific, 'utxoSpecific');
21
- // PSBTs already have UTXOs defined - skip refinement logic
22
- // The PSBT contains all necessary UTXO selection and transaction structure
23
- // TODO: Re-enable once we work again over psbt support
24
- // if (utxoSpecific.psbt) {
25
- // return input.keysignPayload
26
- // }
21
+ // PSBTs already have UTXOs defined skip refinement.
22
+ // When signData is signBitcoin, the PSBT defines exact inputs/outputs.
23
+ if (input.keysignPayload.signData.case === 'signBitcoin') {
24
+ return input.keysignPayload;
25
+ }
27
26
  const [signingInput] = getUtxoSigningInputs(input);
28
27
  const plan = shouldBePresent(signingInput.plan, 'UTXO signing input plan');
29
28
  const planUtxos = plan.utxos;
@@ -1 +1 @@
1
- {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/refine/utxo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/refine/utxo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { SignBitcoin } from '../../../../types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js';
2
+ /** Serialize a uint32 as 4 bytes little-endian. */
3
+ export declare const writeUInt32LE: (value: number) => Buffer;
4
+ /** Serialize a uint64 as 8 bytes little-endian (Bitcoin amounts are unsigned). */
5
+ export declare const writeUInt64LE: (value: bigint) => Buffer;
6
+ /** Encode an integer as a Bitcoin varint (CompactSize). */
7
+ export declare const writeVarInt: (n: number) => Buffer;
8
+ /**
9
+ * Compute BIP-143 sighashes for all `isOurs` inputs in a SignBitcoin message.
10
+ * Returns one sighash (32 bytes) per input that has `isOurs === true`,
11
+ * in the same order they appear in `signBitcoin.inputs`.
12
+ *
13
+ * Currently supports P2WPKH and P2SH-P2WPKH script types (SIGHASH_ALL only).
14
+ *
15
+ * Follow-up work:
16
+ * - P2TR (Taproot): requires BIP-341 sighash (tagged hashes, Schnorr signatures,
17
+ * commits to ALL input amounts/scriptPubKeys). See https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki
18
+ * bitcoinjs-lib provides Transaction.hashForWitnessV1() for this.
19
+ * - P2PKH (legacy): requires legacy sighash (not BIP-143).
20
+ * bitcoinjs-lib provides Transaction.hashForSignature() for this.
21
+ * - P2WSH: requires BIP-143 with the full witnessScript as scriptCode.
22
+ * - SIGHASH_SINGLE, SIGHASH_NONE, ANYONECANPAY: require conditional
23
+ * hashPrevouts/hashSequence/hashOutputs computation per BIP-143.
24
+ *
25
+ * @see https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki
26
+ */
27
+ export declare const computePreSigningHashes: (signBitcoin: SignBitcoin) => Uint8Array[];
28
+ //# sourceMappingURL=sighash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sighash.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/bitcoin/sighash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wEAAwE,CAAA;AASpG,mDAAmD;AACnD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAI7C,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAI7C,CAAA;AAED,2DAA2D;AAC3D,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,MAiBvC,CAAA;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,GAClC,aAAa,WAAW,KACvB,UAAU,EAgGZ,CAAA"}
@@ -0,0 +1,147 @@
1
+ import { sha256 } from '@noble/hashes/sha256';
2
+ // -- Shared serialization utilities --
3
+ // See https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki
4
+ /** Double-SHA256 as used in Bitcoin consensus. */
5
+ const hash256 = (data) => Buffer.from(sha256(sha256(data)));
6
+ /** Serialize a uint32 as 4 bytes little-endian. */
7
+ export const writeUInt32LE = (value) => {
8
+ const buf = Buffer.alloc(4);
9
+ buf.writeUInt32LE(value);
10
+ return buf;
11
+ };
12
+ /** Serialize a uint64 as 8 bytes little-endian (Bitcoin amounts are unsigned). */
13
+ export const writeUInt64LE = (value) => {
14
+ const buf = Buffer.alloc(8);
15
+ buf.writeBigUInt64LE(value);
16
+ return buf;
17
+ };
18
+ /** Encode an integer as a Bitcoin varint (CompactSize). */
19
+ export const writeVarInt = (n) => {
20
+ if (n < 0 || n > 0xffffffff) {
21
+ throw new Error(`writeVarInt: value out of range: ${n}`);
22
+ }
23
+ if (n < 0xfd) {
24
+ return Buffer.from([n]);
25
+ }
26
+ if (n <= 0xffff) {
27
+ const buf = Buffer.alloc(3);
28
+ buf[0] = 0xfd;
29
+ buf.writeUInt16LE(n, 1);
30
+ return buf;
31
+ }
32
+ const buf = Buffer.alloc(5);
33
+ buf[0] = 0xfe;
34
+ buf.writeUInt32LE(n, 1);
35
+ return buf;
36
+ };
37
+ /**
38
+ * Derive BIP-143 scriptCode from a P2WPKH scriptPubKey.
39
+ * 0x0014<20-byte-hash> -> OP_DUP OP_HASH160 <20> <hash> OP_EQUALVERIFY OP_CHECKSIG
40
+ * The 0x19 length prefix is part of the scriptCode per BIP-143.
41
+ */
42
+ const p2wpkhScriptCode = (scriptPubKey) => {
43
+ const pubkeyHash = scriptPubKey.subarray(2, 22);
44
+ return Buffer.concat([
45
+ Buffer.from([0x19, 0x76, 0xa9, 0x14]),
46
+ pubkeyHash,
47
+ Buffer.from([0x88, 0xac]),
48
+ ]);
49
+ };
50
+ /** Serialize an outpoint (txid LE + vout LE). */
51
+ const serializeOutpoint = (hash, index) => {
52
+ const txid = Buffer.from(hash, 'hex').reverse();
53
+ return Buffer.concat([txid, writeUInt32LE(index)]);
54
+ };
55
+ /** Serialize a Bitcoin output (value + scriptPubKey with varint length). */
56
+ const serializeOutput = (amount, scriptPubKey) => Buffer.concat([writeUInt64LE(amount), writeVarInt(scriptPubKey.length), scriptPubKey]);
57
+ /**
58
+ * Compute BIP-143 sighashes for all `isOurs` inputs in a SignBitcoin message.
59
+ * Returns one sighash (32 bytes) per input that has `isOurs === true`,
60
+ * in the same order they appear in `signBitcoin.inputs`.
61
+ *
62
+ * Currently supports P2WPKH and P2SH-P2WPKH script types (SIGHASH_ALL only).
63
+ *
64
+ * Follow-up work:
65
+ * - P2TR (Taproot): requires BIP-341 sighash (tagged hashes, Schnorr signatures,
66
+ * commits to ALL input amounts/scriptPubKeys). See https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki
67
+ * bitcoinjs-lib provides Transaction.hashForWitnessV1() for this.
68
+ * - P2PKH (legacy): requires legacy sighash (not BIP-143).
69
+ * bitcoinjs-lib provides Transaction.hashForSignature() for this.
70
+ * - P2WSH: requires BIP-143 with the full witnessScript as scriptCode.
71
+ * - SIGHASH_SINGLE, SIGHASH_NONE, ANYONECANPAY: require conditional
72
+ * hashPrevouts/hashSequence/hashOutputs computation per BIP-143.
73
+ *
74
+ * @see https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki
75
+ */
76
+ export const computePreSigningHashes = (signBitcoin) => {
77
+ const { version, locktime, inputs, outputs } = signBitcoin;
78
+ if (inputs.length === 0) {
79
+ throw new Error('SignBitcoin has no inputs');
80
+ }
81
+ const oursCount = inputs.filter(i => i.isOurs).length;
82
+ if (oursCount === 0) {
83
+ throw new Error('No signable inputs (all isOurs === false)');
84
+ }
85
+ // hashPrevouts = double_SHA256(all outpoints serialized)
86
+ const prevoutsData = Buffer.concat(inputs.map(inp => serializeOutpoint(inp.hash, inp.index)));
87
+ const hashPrevouts = hash256(prevoutsData);
88
+ // hashSequence = double_SHA256(all sequences serialized)
89
+ const sequenceData = Buffer.concat(inputs.map(inp => writeUInt32LE(inp.sequence ?? 0xffffffff)));
90
+ const hashSequence = hash256(sequenceData);
91
+ // hashOutputs = double_SHA256(all outputs serialized)
92
+ const outputsData = Buffer.concat(outputs.map(out => serializeOutput(out.amount, Buffer.from(out.scriptPubKey, 'hex'))));
93
+ const hashOutputs = hash256(outputsData);
94
+ const sighashes = [];
95
+ for (const input of inputs) {
96
+ if (!input.isOurs)
97
+ continue;
98
+ if (input.amount < 0n) {
99
+ throw new Error(`Input amount must be non-negative, got ${input.amount}`);
100
+ }
101
+ const scriptPubKey = Buffer.from(input.scriptPubKey, 'hex');
102
+ let scriptCode;
103
+ if (input.scriptType === 'p2wpkh') {
104
+ scriptCode = p2wpkhScriptCode(scriptPubKey);
105
+ }
106
+ else if (input.scriptType === 'p2sh-p2wpkh') {
107
+ if (!input.redeemScript) {
108
+ throw new Error('P2SH-P2WPKH inputs require redeemScript');
109
+ }
110
+ const redeemScript = Buffer.from(input.redeemScript, 'hex');
111
+ if (redeemScript.length !== 22 ||
112
+ redeemScript[0] !== 0x00 ||
113
+ redeemScript[1] !== 0x14) {
114
+ throw new Error('Unsupported redeemScript for p2sh-p2wpkh');
115
+ }
116
+ scriptCode = p2wpkhScriptCode(redeemScript);
117
+ }
118
+ else {
119
+ throw new Error(`Unsupported script type for BIP-143 sighash: ${input.scriptType}`);
120
+ }
121
+ const sighashType = input.sighashType ?? 1; // SIGHASH_ALL
122
+ const baseType = sighashType & 0x1f;
123
+ const anyoneCanPay = (sighashType & 0x80) !== 0;
124
+ if (baseType !== 0x01 || anyoneCanPay) {
125
+ throw new Error(`Unsupported sighash type: 0x${sighashType.toString(16)}. ` +
126
+ `Only SIGHASH_ALL (0x01) is currently supported.`);
127
+ }
128
+ // BIP-143 preimage:
129
+ // version || hashPrevouts || hashSequence || outpoint || scriptCode || value || sequence || hashOutputs || locktime || sighashType
130
+ const outpoint = serializeOutpoint(input.hash, input.index);
131
+ const preimage = Buffer.concat([
132
+ writeUInt32LE(version),
133
+ hashPrevouts,
134
+ hashSequence,
135
+ outpoint,
136
+ scriptCode,
137
+ writeUInt64LE(input.amount),
138
+ writeUInt32LE(input.sequence ?? 0xffffffff),
139
+ hashOutputs,
140
+ writeUInt32LE(locktime),
141
+ writeUInt32LE(sighashType),
142
+ ]);
143
+ sighashes.push(hash256(preimage));
144
+ }
145
+ return sighashes;
146
+ };
147
+ //# sourceMappingURL=sighash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sighash.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/bitcoin/sighash.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
7
7
  export type BuildSwapKeysignPayloadInput = {
8
8
  fromCoin: AccountCoin;
9
9
  toCoin: AccountCoin;
10
- amount: number;
10
+ amount: string | number;
11
11
  swapQuote: SwapQuote;
12
12
  vaultId: string;
13
13
  localPartyId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAMnE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAS1D,OAAO,EACL,cAAc,EAEf,MAAM,iEAAiE,CAAA;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,WAAW,CAAA;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,SAAS,CAAA;IACxB,WAAW,EAAE,SAAS,CAAA;IACtB,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,kHAW3C,4BAA4B,4BAqK9B,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAMnE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAS1D,OAAO,EACL,cAAc,EAEf,MAAM,iEAAiE,CAAA;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,WAAW,CAAA;IACrB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,SAAS,CAAA;IACxB,WAAW,EAAE,SAAS,CAAA;IACtB,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,kHAW3C,4BAA4B,4BAqK9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCompiledTxsForBlockaidInput.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAA;AAGzF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,0BAG5C,KAAK,kCAyDP,CAAA"}
1
+ {"version":3,"file":"getCompiledTxsForBlockaidInput.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAA;AAGzF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,0BAG5C,KAAK,kCAiEP,CAAA"}
@@ -21,11 +21,18 @@ export const getCompiledTxsForBlockaidInput = ({ payload, walletCore, }) => {
21
21
  walletCore,
22
22
  publicKey,
23
23
  });
24
+ // SignBitcoin (PSBT) flows use custom sighash/compilation that WalletCore
25
+ // doesn't understand. Skip Blockaid simulation for PSBT transactions.
26
+ // TODO: implement Blockaid validation for PSBT flows using compileSignBitcoinTx
27
+ if (payload.signData.case === 'signBitcoin') {
28
+ return [];
29
+ }
24
30
  return inputs.map(txInputData => {
25
31
  const preHashes = getPreSigningHashes({
26
32
  walletCore,
27
33
  txInputData,
28
34
  chain,
35
+ keysignPayload: payload,
29
36
  });
30
37
  const signatures = walletCore.DataVector.create();
31
38
  const publicKeys = walletCore.DataVector.create();
@@ -1 +1 @@
1
- {"version":3,"file":"getCompiledTxsForBlockaidInput.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAA;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAGjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAOrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,OAAO,EACP,UAAU,GACJ,EAAE,EAAE;IACV,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,CACnD,aAAa,EACb,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC1C,CAAA;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,KAAK;QACL,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACrC,cAAc,EAAE,OAAO;QACvB,UAAU;QACV,SAAS;KACV,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,SAAS,GAAG,mBAAmB,CAAC;YACpC,UAAU;YACV,WAAW;YACX,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QAEjD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CACtB,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YACjC,GAAG,EAAE,GAAG,EAAE;gBACR,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;YAClC,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE;gBACtB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBACnC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;YAClC,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;gBAEjD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACtD,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;SACF,CAAC,CACH,CAAA;QAED,OAAO,UAAU,CAAC,mBAAmB,CAAC,qBAAqB,CACzD,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,CACX,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"getCompiledTxsForBlockaidInput.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
2
+ import { KeysignSignature } from '../../keysign/KeysignSignature.js';
3
+ import { SignBitcoin } from '../../types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js';
4
+ /**
5
+ * Build a raw signed Bitcoin transaction from SignBitcoin fields + MPC signatures.
6
+ * Uses bitcoinjs-lib's Transaction class for serialization (proper varint encoding,
7
+ * witness handling, segwit markers).
8
+ *
9
+ * Returns an encoded TW.Bitcoin.Proto.SigningOutput so callers can decode it
10
+ * the same way as WalletCore-compiled transactions.
11
+ *
12
+ * Currently only handles single-signer flows where ALL isOurs inputs belong to
13
+ * this vault. Non-ours inputs get empty witnesses, making the tx invalid on-chain
14
+ * if any exist. Multi-party PSBT support (where non-ours inputs have existing
15
+ * signatures from other parties) is a follow-up.
16
+ *
17
+ * @see https://www.npmjs.org/package/bitcoinjs-lib
18
+ */
19
+ export declare const compileSignBitcoinTx: (signBitcoin: SignBitcoin, signatures: Record<string, KeysignSignature>, publicKey: PublicKey) => Uint8Array;
20
+ //# sourceMappingURL=compileSignBitcoinTx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compileSignBitcoinTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileSignBitcoinTx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,kEAAkE,CAAA;AAE9F;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,YAAY,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC5C,WAAW,SAAS,KACnB,UAmGF,CAAA"}
@@ -0,0 +1,101 @@
1
+ import { Transaction } from 'bitcoinjs-lib';
2
+ import { TW } from '@trustwallet/wallet-core';
3
+ import { computePreSigningHashes } from '../../keysign/signingInputs/resolvers/bitcoin/sighash.js';
4
+ /**
5
+ * Build a raw signed Bitcoin transaction from SignBitcoin fields + MPC signatures.
6
+ * Uses bitcoinjs-lib's Transaction class for serialization (proper varint encoding,
7
+ * witness handling, segwit markers).
8
+ *
9
+ * Returns an encoded TW.Bitcoin.Proto.SigningOutput so callers can decode it
10
+ * the same way as WalletCore-compiled transactions.
11
+ *
12
+ * Currently only handles single-signer flows where ALL isOurs inputs belong to
13
+ * this vault. Non-ours inputs get empty witnesses, making the tx invalid on-chain
14
+ * if any exist. Multi-party PSBT support (where non-ours inputs have existing
15
+ * signatures from other parties) is a follow-up.
16
+ *
17
+ * @see https://www.npmjs.org/package/bitcoinjs-lib
18
+ */
19
+ export const compileSignBitcoinTx = (signBitcoin, signatures, publicKey) => {
20
+ const hashes = computePreSigningHashes(signBitcoin);
21
+ const pubKeyBytes = Buffer.from(publicKey.data());
22
+ // Build the transaction using bitcoinjs-lib's Transaction class
23
+ // which handles varint encoding, segwit markers, and witness serialization.
24
+ const tx = new Transaction();
25
+ tx.version = signBitcoin.version;
26
+ tx.locktime = signBitcoin.locktime;
27
+ // Add inputs
28
+ for (const input of signBitcoin.inputs) {
29
+ const txid = Buffer.from(input.hash, 'hex').reverse(); // display -> internal byte order
30
+ tx.addInput(txid, input.index, input.sequence ?? 0xffffffff);
31
+ // P2SH-P2WPKH: set scriptSig to redeemScript push
32
+ if (input.scriptType === 'p2sh-p2wpkh' && input.redeemScript) {
33
+ const redeemScriptBuf = Buffer.from(input.redeemScript, 'hex');
34
+ const scriptSig = Buffer.concat([
35
+ Buffer.from([redeemScriptBuf.length]),
36
+ redeemScriptBuf,
37
+ ]);
38
+ tx.setInputScript(tx.ins.length - 1, scriptSig);
39
+ }
40
+ }
41
+ // Add outputs
42
+ for (const output of signBitcoin.outputs) {
43
+ tx.addOutput(Buffer.from(output.scriptPubKey, 'hex'), output.amount);
44
+ }
45
+ // Set witness data for each input
46
+ let hashIndex = 0;
47
+ for (let i = 0; i < signBitcoin.inputs.length; i++) {
48
+ const input = signBitcoin.inputs[i];
49
+ if (!input.isOurs) {
50
+ // Non-ours inputs: empty witness stack.
51
+ // This makes the tx invalid if non-ours inputs exist.
52
+ // Multi-party PSBT support (preserving existing signatures) is a follow-up.
53
+ tx.setWitness(i, []);
54
+ continue;
55
+ }
56
+ const hash = hashes[hashIndex++];
57
+ const hashHex = Buffer.from(hash).toString('hex');
58
+ const sig = signatures[hashHex];
59
+ if (!sig) {
60
+ throw new Error(`Missing signature for sighash ${hashHex.slice(0, 16)}...`);
61
+ }
62
+ const derSig = Buffer.from(sig.der_signature, 'hex');
63
+ const sighashByte = input.sighashType ?? 1;
64
+ const sigWithHashType = Buffer.concat([derSig, Buffer.from([sighashByte])]);
65
+ // P2WPKH witness: [signature+hashtype, pubkey]
66
+ tx.setWitness(i, [sigWithHashType, pubKeyBytes]);
67
+ }
68
+ const serialized = tx.toBuffer();
69
+ // Build signingResultV2 so rebuildPsbtWithPartialSigsFromWC can extract
70
+ // per-input witness items (DER sig + pubkey) to inject into the PSBT.
71
+ // See: vultisig-windows/clients/extension/src/utils/functions.ts
72
+ hashIndex = 0;
73
+ const inputResults = signBitcoin.inputs.map(input => {
74
+ if (!input.isOurs) {
75
+ return { witnessItems: [] };
76
+ }
77
+ const hash = hashes[hashIndex++];
78
+ const hashHex = Buffer.from(hash).toString('hex');
79
+ const sig = signatures[hashHex];
80
+ const derSig = Buffer.from(sig.der_signature, 'hex');
81
+ const sighashByte = input.sighashType ?? 1;
82
+ const sigWithHashType = Buffer.concat([derSig, Buffer.from([sighashByte])]);
83
+ return {
84
+ witnessItems: [
85
+ new Uint8Array(sigWithHashType),
86
+ new Uint8Array(pubKeyBytes),
87
+ ],
88
+ };
89
+ });
90
+ // Wrap in TW.Bitcoin.Proto.SigningOutput with signingResultV2
91
+ // so the extension can extract per-input sigs for PSBT reconstruction.
92
+ // signingResultV2 is a proper field on SigningOutput (see TW.BitcoinV2.Proto.ISigningOutput)
93
+ const output = TW.Bitcoin.Proto.SigningOutput.create({
94
+ encoded: serialized,
95
+ signingResultV2: {
96
+ bitcoin: { inputs: inputResults },
97
+ },
98
+ });
99
+ return TW.Bitcoin.Proto.SigningOutput.encode(output).finish();
100
+ };
101
+ //# sourceMappingURL=compileSignBitcoinTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compileSignBitcoinTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileSignBitcoinTx.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,15 @@ import { WalletCore } from '@trustwallet/wallet-core';
2
2
  import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
3
3
  import { Chain } from '@vultisig/core-chain/Chain';
4
4
  import { KeysignSignature } from '../../keysign/KeysignSignature.js';
5
+ import { KeysignPayload } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
5
6
  type Input = {
6
7
  publicKey?: PublicKey;
7
8
  txInputData: Uint8Array;
8
9
  signatures: Record<string, KeysignSignature>;
9
10
  chain: Chain;
10
11
  walletCore: WalletCore;
12
+ keysignPayload?: KeysignPayload;
11
13
  };
12
- export declare const compileTx: ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, }: Input) => Uint8Array<ArrayBufferLike>;
14
+ export declare const compileTx: ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, keysignPayload, }: Input) => Uint8Array<ArrayBufferLike>;
13
15
  export {};
14
16
  //# sourceMappingURL=compileTx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAUlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAMjE,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,+EAMvB,KAAK,gCAqJP,CAAA"}
1
+ {"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAUlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EACL,cAAc,EAEf,MAAM,oDAAoD,CAAA;AAK3D,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,+FAOvB,KAAK,gCAkKP,CAAA"}