@vultisig/core-mpc 1.0.1 → 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 (97) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/dkls/dkls.d.ts.map +1 -1
  3. package/dist/dkls/dkls.js +75 -49
  4. package/dist/dkls/dkls.js.map +1 -1
  5. package/dist/keysign/cosigner.js +1 -1
  6. package/dist/keysign/cosigner.js.map +1 -1
  7. package/dist/keysign/fee/resolvers/cosmos.d.ts.map +1 -1
  8. package/dist/keysign/fee/resolvers/cosmos.js +9 -10
  9. package/dist/keysign/fee/resolvers/cosmos.js.map +1 -1
  10. package/dist/keysign/index.js +21 -17
  11. package/dist/keysign/index.js.map +1 -1
  12. package/dist/keysign/refine/amount.js +1 -1
  13. package/dist/keysign/refine/amount.js.map +1 -1
  14. package/dist/keysign/refine/utxo.d.ts.map +1 -1
  15. package/dist/keysign/refine/utxo.js +5 -6
  16. package/dist/keysign/refine/utxo.js.map +1 -1
  17. package/dist/keysign/setupMessage/make.d.ts.map +1 -1
  18. package/dist/keysign/setupMessage/make.js +2 -11
  19. package/dist/keysign/setupMessage/make.js.map +1 -1
  20. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.d.ts +28 -0
  21. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.d.ts.map +1 -0
  22. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.js +147 -0
  23. package/dist/keysign/signingInputs/resolvers/bitcoin/sighash.js.map +1 -0
  24. package/dist/keysign/signingInputs/resolvers/cardano.d.ts.map +1 -1
  25. package/dist/keysign/signingInputs/resolvers/cardano.js +25 -1
  26. package/dist/keysign/signingInputs/resolvers/cardano.js.map +1 -1
  27. package/dist/keysign/signingInputs/resolvers/ton/index.d.ts.map +1 -1
  28. package/dist/keysign/signingInputs/resolvers/ton/index.js +1 -0
  29. package/dist/keysign/signingInputs/resolvers/ton/index.js.map +1 -1
  30. package/dist/keysign/signingInputs/resolvers/ton/native.d.ts +2 -1
  31. package/dist/keysign/signingInputs/resolvers/ton/native.d.ts.map +1 -1
  32. package/dist/keysign/signingInputs/resolvers/ton/native.js +2 -1
  33. package/dist/keysign/signingInputs/resolvers/ton/native.js.map +1 -1
  34. package/dist/keysign/swap/build.d.ts +1 -1
  35. package/dist/keysign/swap/build.d.ts.map +1 -1
  36. package/dist/lib/initialize.d.ts +1 -1
  37. package/dist/lib/initialize.d.ts.map +1 -1
  38. package/dist/lib/initialize.js +4 -10
  39. package/dist/lib/initialize.js.map +1 -1
  40. package/dist/lib/keyshare.d.ts +1 -4
  41. package/dist/lib/keyshare.d.ts.map +1 -1
  42. package/dist/lib/keyshare.js +8 -8
  43. package/dist/lib/keyshare.js.map +1 -1
  44. package/dist/lib/signSession.d.ts +6 -5
  45. package/dist/lib/signSession.d.ts.map +1 -1
  46. package/dist/lib/signSession.js +38 -11
  47. package/dist/lib/signSession.js.map +1 -1
  48. package/dist/schnorr/schnorrKeygen.d.ts.map +1 -1
  49. package/dist/schnorr/schnorrKeygen.js +25 -17
  50. package/dist/schnorr/schnorrKeygen.js.map +1 -1
  51. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +1 -1
  52. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +7 -0
  53. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +1 -1
  54. package/dist/tx/compile/cardano/buildSignedCardanoTx.d.ts +28 -0
  55. package/dist/tx/compile/cardano/buildSignedCardanoTx.d.ts.map +1 -0
  56. package/dist/tx/compile/cardano/buildSignedCardanoTx.js +78 -0
  57. package/dist/tx/compile/cardano/buildSignedCardanoTx.js.map +1 -0
  58. package/dist/tx/compile/compileSignBitcoinTx.d.ts +20 -0
  59. package/dist/tx/compile/compileSignBitcoinTx.d.ts.map +1 -0
  60. package/dist/tx/compile/compileSignBitcoinTx.js +101 -0
  61. package/dist/tx/compile/compileSignBitcoinTx.js.map +1 -0
  62. package/dist/tx/compile/compileTx.d.ts +4 -2
  63. package/dist/tx/compile/compileTx.d.ts.map +1 -1
  64. package/dist/tx/compile/compileTx.js +47 -5
  65. package/dist/tx/compile/compileTx.js.map +1 -1
  66. package/dist/tx/preSigningHashes/index.d.ts +3 -1
  67. package/dist/tx/preSigningHashes/index.d.ts.map +1 -1
  68. package/dist/tx/preSigningHashes/index.js +10 -5
  69. package/dist/tx/preSigningHashes/index.js.map +1 -1
  70. package/dist/types/utils/commVault.d.ts.map +1 -1
  71. package/dist/types/utils/commVault.js +1 -4
  72. package/dist/types/utils/commVault.js.map +1 -1
  73. package/dist/types/utils/libType.d.ts +3 -7
  74. package/dist/types/utils/libType.d.ts.map +1 -1
  75. package/dist/types/utils/libType.js +4 -20
  76. package/dist/types/utils/libType.js.map +1 -1
  77. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.d.ts +5 -5
  78. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.d.ts.map +1 -1
  79. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.js +5 -12
  80. package/dist/types/vultisig/keygen/v1/single_keygen_message_pb.js.map +1 -1
  81. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.d.ts +1 -1
  82. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.d.ts.map +1 -1
  83. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.js +3 -7
  84. package/dist/types/vultisig/keygen/v1/single_keygen_type_pb.js.map +1 -1
  85. package/dist/types/vultisig/keysign/v1/keysign_message_pb.d.ts +7 -1
  86. package/dist/types/vultisig/keysign/v1/keysign_message_pb.d.ts.map +1 -1
  87. package/dist/types/vultisig/keysign/v1/keysign_message_pb.js +1 -1
  88. package/dist/types/vultisig/keysign/v1/keysign_message_pb.js.map +1 -1
  89. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts +152 -0
  90. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts.map +1 -1
  91. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js +16 -1
  92. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js.map +1 -1
  93. package/dist/types/vultisig/vault/v1/vault_pb.d.ts +8 -0
  94. package/dist/types/vultisig/vault/v1/vault_pb.d.ts.map +1 -1
  95. package/dist/types/vultisig/vault/v1/vault_pb.js +1 -1
  96. package/dist/types/vultisig/vault/v1/vault_pb.js.map +1 -1
  97. package/package.json +18 -2
@@ -1,15 +1,42 @@
1
- import { SignSession as DklsSignSession } from '@vultisig/lib-dkls/vs_wasm';
2
- import { SignSession as MldsaSignSession } from '@vultisig/lib-mldsa';
3
- import { SignSession as SchnorrSignSession } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
1
+ import { getMpcEngine } from '@vultisig/mpc-types';
4
2
  import { toMpcLibKeyshare } from './keyshare.js';
3
+ const getEngineKey = (algo) => {
4
+ if (algo === 'mldsa') {
5
+ throw new Error('MLDSA uses a dedicated signing path (MldsaKeysign), not the pluggable MPC engine. ' +
6
+ 'Route MLDSA signing through packages/core/mpc/mldsa/ instead.');
7
+ }
8
+ return algo === 'eddsa' ? 'schnorr' : 'dkls';
9
+ };
10
+ const dklsMethods = {
11
+ setup: (...args) => getMpcEngine().dkls.signSetup(...args),
12
+ setupMessageHash: (setupMsg) => getMpcEngine().dkls.signSetupMessageHash(setupMsg),
13
+ };
14
+ const mldsaNotSupported = {
15
+ setup: () => {
16
+ throw new Error('MLDSA uses a dedicated signing path (MldsaKeysign), not the pluggable MPC engine.');
17
+ },
18
+ setupMessageHash: () => {
19
+ throw new Error('MLDSA uses a dedicated signing path (MldsaKeysign), not the pluggable MPC engine.');
20
+ },
21
+ };
5
22
  export const SignSession = {
6
- ecdsa: DklsSignSession,
7
- eddsa: SchnorrSignSession,
8
- mldsa: MldsaSignSession,
9
- };
10
- export const makeSignSession = ({ setupMessage, localPartyId, keyShare, signatureAlgorithm, }) => {
11
- const ks = toMpcLibKeyshare({ keyShare, signatureAlgorithm });
12
- const Session = SignSession[signatureAlgorithm];
13
- return new Session(setupMessage, localPartyId, ks);
23
+ ecdsa: dklsMethods,
24
+ mldsa: mldsaNotSupported,
25
+ eddsa: {
26
+ setup: (keyId, chainPath, messageHash, partyIds) => {
27
+ if (!messageHash) {
28
+ throw new Error('EdDSA signing requires a message hash');
29
+ }
30
+ return getMpcEngine().schnorr.signSetup(keyId, chainPath, messageHash, partyIds);
31
+ },
32
+ setupMessageHash: (setupMsg) => getMpcEngine().schnorr.signSetupMessageHash(setupMsg),
33
+ },
34
+ };
35
+ export const makeSignSession = async ({ setupMessage, localPartyId, keyShare, signatureAlgorithm, }) => {
36
+ const engineKey = getEngineKey(signatureAlgorithm);
37
+ return getMpcEngine()[engineKey].createSignSession(setupMessage, localPartyId, toMpcLibKeyshare({
38
+ keyShare,
39
+ signatureAlgorithm,
40
+ }));
14
41
  };
15
42
  //# sourceMappingURL=signSession.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signSession.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAGpB;IACF,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,gBAAgB;CACxB,CAAA;AASD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,kBAAkB,GACG,EAAE,EAAE;IACzB,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAA;IAC/C,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,EAAW,CAAC,CAAA;AAC7D,CAAC,CAAA"}
1
+ {"version":3,"file":"signSession.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/lib/signSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,YAAY,GAAG,CAAC,IAAwB,EAAsB,EAAE;IACpE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,oFAAoF;YACpF,+DAA+D,CAChE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9C,CAAC,CAAA;AAYD,MAAM,WAAW,GAAuB;IACtC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;CACnF,CAAA;AAED,MAAM,iBAAiB,GAAuB;IAC5C,KAAK,EAAE,GAAG,EAAE;QACV,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAA;IACH,CAAC;IACD,gBAAgB,EAAE,GAAG,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAmD;IACzE,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;YAC1D,CAAC;YACD,OAAO,YAAY,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QAClF,CAAC;QACD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7B,YAAY,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;KACxD;CACF,CAAA;AASD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,kBAAkB,GACG,EAAE,EAAE;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;IAClD,OAAO,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAChD,YAAY,EACZ,YAAY,EACZ,gBAAgB,CAAC;QACf,QAAQ;QACR,kBAAkB;KACnB,CAAC,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schnorrKeygen.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,uBAAuB,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEhC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EAAE,mHAAmH;IAC7I,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;YAiBW,eAAe;YA8Cf,cAAc;YA6Dd,WAAW;IA+CZ,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM;;;;;YAatC,YAAY;IAiGb,qBAAqB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,MAAM;;;;;IAeP,qBAAqB,CAChC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;YA6BF,cAAc;IAoFf,uBAAuB,CAClC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,iBAAiB,CAAC,EAAE,MAAM;;;;;CAqB7B"}
1
+ {"version":3,"file":"schnorrKeygen.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,uBAAuB,CAGhB;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEhC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EAAE,EACzB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EAAE,mHAAmH;IAC7I,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;YAiBW,eAAe;YA8Cf,cAAc;YA6Dd,WAAW;IAmDZ,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM;;;;;YAatC,YAAY;IAkGb,qBAAqB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,MAAM;;;;;IAeP,qBAAqB,CAChC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;YA+BF,cAAc;IAqFf,uBAAuB,CAClC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,EACvB,iBAAiB,CAAC,EAAE,MAAM;;;;;CAqB7B"}
@@ -1,4 +1,4 @@
1
- import { KeygenSession, KeyImportInitiator, KeyImportSession, Keyshare, QcSession, } from '@vultisig/lib-schnorr/vs_schnorr_wasm';
1
+ import { getMpcEngine } from '@vultisig/mpc-types';
2
2
  import { base64Encode } from '@vultisig/lib-utils/base64Encode';
3
3
  import { getKeygenThreshold } from '../getKeygenThreshold.js';
4
4
  import { getMessageHash } from '../getMessageHash.js';
@@ -146,13 +146,17 @@ export class Schnorr {
146
146
  console.log('session id:', this.sessionId);
147
147
  this.isKeygenComplete = false;
148
148
  try {
149
+ const engine = getMpcEngine().schnorr;
149
150
  let session;
150
151
  if ('create' in this.keygenOperation) {
151
- session = new KeygenSession(this.setupMessage, this.localPartyId);
152
+ session = await engine.createKeygenSession(this.setupMessage, this.localPartyId);
152
153
  }
153
154
  else if ('reshare' in this.keygenOperation &&
154
155
  this.keygenOperation.reshare === 'migrate') {
155
- session = KeygenSession.migrate(this.setupMessage, this.localPartyId, Buffer.from(this.localUI || '', 'hex'), Buffer.from(this.publicKey || '', 'hex'), Buffer.from(this.chainCode || '', 'hex'));
156
+ if (!engine.createMigrateSession) {
157
+ throw new Error('schnorr engine does not support createMigrateSession');
158
+ }
159
+ session = await engine.createMigrateSession(this.setupMessage, this.localPartyId, Buffer.from(this.localUI || '', 'hex'), Buffer.from(this.publicKey || '', 'hex'), Buffer.from(this.chainCode || '', 'hex'));
156
160
  }
157
161
  else {
158
162
  throw new Error('invalid keygen type');
@@ -162,7 +166,7 @@ export class Schnorr {
162
166
  const inbound = this.processInbound(session, start, messageId);
163
167
  const [, inboundResult] = await Promise.all([outbound, inbound]);
164
168
  if (inboundResult) {
165
- const keyShare = session.finish();
169
+ const keyShare = await session.finish();
166
170
  return {
167
171
  keyshare: base64Encode(keyShare.toBytes()),
168
172
  publicKey: Buffer.from(keyShare.publicKey()).toString('hex'),
@@ -195,9 +199,10 @@ export class Schnorr {
195
199
  async startReshare(rawSchnorrKeyshare, attempt, messageId) {
196
200
  console.log('startReshare schnorr, attempt:', attempt);
197
201
  this.isKeygenComplete = false;
202
+ const engine = getMpcEngine().schnorr;
198
203
  let localKeyshare = null;
199
204
  if (rawSchnorrKeyshare !== undefined && rawSchnorrKeyshare.length > 0) {
200
- localKeyshare = Keyshare.fromBytes(Buffer.from(rawSchnorrKeyshare, 'base64'));
205
+ localKeyshare = engine.keyshareFromBytes(Buffer.from(rawSchnorrKeyshare, 'base64'));
201
206
  }
202
207
  try {
203
208
  const setupMessageId = messageId ?? 'eddsa';
@@ -216,7 +221,7 @@ export class Schnorr {
216
221
  keygenCommittee: this.keygenCommittee,
217
222
  oldKeygenCommittee: this.oldKeygenCommittee,
218
223
  });
219
- setupMessage = QcSession.setup(localKeyshare, allCommittee, new Uint8Array(oldCommitteeIdx), threshold, new Uint8Array(newCommitteeIdx));
224
+ setupMessage = engine.reshareSetup(localKeyshare, allCommittee, new Uint8Array(oldCommitteeIdx), threshold, new Uint8Array(newCommitteeIdx));
220
225
  // upload setup message to server
221
226
  const encryptedSetupMsg = toMpcServerMessage(setupMessage, this.hexEncryptionKey);
222
227
  await uploadMpcSetupMessage({
@@ -235,14 +240,14 @@ export class Schnorr {
235
240
  });
236
241
  setupMessage = fromMpcServerMessage(encodedEncryptedSetupMsg, this.hexEncryptionKey);
237
242
  }
238
- const session = new QcSession(setupMessage, this.localPartyId, localKeyshare);
243
+ const session = await engine.createReshareSession(setupMessage, this.localPartyId, localKeyshare);
239
244
  try {
240
245
  const start = Date.now();
241
246
  const outbound = this.processOutbound(session, messageId);
242
247
  const inbound = this.processInbound(session, start, messageId);
243
248
  const [, inboundResult] = await Promise.all([outbound, inbound]);
244
249
  if (inboundResult) {
245
- const finalKeyShare = session.finish();
250
+ const finalKeyShare = await session.finish();
246
251
  if (finalKeyShare === undefined) {
247
252
  throw new Error('keyshare is null, schnorr reshare failed');
248
253
  }
@@ -254,7 +259,7 @@ export class Schnorr {
254
259
  }
255
260
  }
256
261
  finally {
257
- session.free();
262
+ session.free?.();
258
263
  }
259
264
  }
260
265
  catch (error) {
@@ -281,10 +286,12 @@ export class Schnorr {
281
286
  if (!this.isInitiateDevice) {
282
287
  return;
283
288
  }
289
+ const engine = getMpcEngine().schnorr;
284
290
  const privateKey = Buffer.from(hexPrivateKey, 'hex');
285
291
  const chainCode = Buffer.from(hexChainCode, 'hex');
286
- this.pendingKeyImportSession = new KeyImportInitiator(Uint8Array.from(privateKey), Uint8Array.from(chainCode), getKeygenThreshold(this.keygenCommittee.length), this.keygenCommittee);
287
- this.setupMessage = this.pendingKeyImportSession.setup;
292
+ const importResult = await engine.createKeyImportInitiator(Uint8Array.from(privateKey), Uint8Array.from(chainCode), getKeygenThreshold(this.keygenCommittee.length), this.keygenCommittee);
293
+ this.pendingKeyImportSession = importResult;
294
+ this.setupMessage = importResult.setup;
288
295
  const encryptedSetupMsg = toMpcServerMessage(this.setupMessage, this.hexEncryptionKey);
289
296
  const effectiveSetupId = messageId ?? 'eddsa_key_import';
290
297
  await uploadMpcSetupMessage({
@@ -299,21 +306,22 @@ export class Schnorr {
299
306
  console.log('startKeyImport schnorr, attempt:', attempt);
300
307
  this.isKeygenComplete = false;
301
308
  try {
309
+ const engine = getMpcEngine().schnorr;
302
310
  let session = null;
303
311
  const effectiveSetupId = setupMessageId ?? 'eddsa_key_import';
304
312
  if (this.isInitiateDevice) {
305
313
  if (attempt === 0 && this.pendingKeyImportSession) {
306
314
  const pendingSession = this.pendingKeyImportSession;
307
- session = pendingSession;
315
+ session = pendingSession.session;
308
316
  this.setupMessage = pendingSession.setup;
309
317
  this.pendingKeyImportSession = null;
310
318
  }
311
319
  else {
312
320
  const privateKey = Buffer.from(hexPrivateKey, 'hex');
313
321
  const chainCode = Buffer.from(hexChainCode, 'hex');
314
- const initiatorSession = new KeyImportInitiator(Uint8Array.from(privateKey), Uint8Array.from(chainCode), getKeygenThreshold(this.keygenCommittee.length), this.keygenCommittee);
315
- this.setupMessage = initiatorSession.setup;
316
- session = initiatorSession;
322
+ const importResult = await engine.createKeyImportInitiator(Uint8Array.from(privateKey), Uint8Array.from(chainCode), getKeygenThreshold(this.keygenCommittee.length), this.keygenCommittee);
323
+ this.setupMessage = importResult.setup;
324
+ session = importResult.session;
317
325
  const encryptedSetupMsg = toMpcServerMessage(this.setupMessage, this.hexEncryptionKey);
318
326
  await uploadMpcSetupMessage({
319
327
  serverUrl: this.serverURL,
@@ -334,7 +342,7 @@ export class Schnorr {
334
342
  }
335
343
  if ('keyimport' in this.keygenOperation) {
336
344
  if (!this.isInitiateDevice) {
337
- session = new KeyImportSession(this.setupMessage, this.localPartyId);
345
+ session = await engine.createKeyImportSession(this.setupMessage, this.localPartyId);
338
346
  }
339
347
  }
340
348
  else {
@@ -349,7 +357,7 @@ export class Schnorr {
349
357
  const inbound = this.processInbound(session, start, exchangeMessageId);
350
358
  const [, inboundResult] = await Promise.all([outbound, inbound]);
351
359
  if (inboundResult) {
352
- const keyShare = session.finish();
360
+ const keyShare = await session.finish();
353
361
  return {
354
362
  keyshare: base64Encode(keyShare.toBytes()),
355
363
  publicKey: Buffer.from(keyShare.publicKey()).toString('hex'),
@@ -1 +1 @@
1
- {"version":3,"file":"schnorrKeygen.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schnorrKeygen.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/schnorr/schnorrKeygen.ts"],"names":[],"mappings":"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"}
@@ -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,28 @@
1
+ /**
2
+ * Wrap a WalletCore-produced Cardano tx body with witness CBOR.
3
+ *
4
+ * compileWithSignatures() calls encodeTransactionWithSig() which hits
5
+ * AddressV2::isValid() — crashing under WASM DISABLE_EXCEPTION_CATCHING.
6
+ * This module manually wraps the pre-signed tx body (from preImageHashes)
7
+ * with a CBOR witness set, producing a valid signed Cardano transaction.
8
+ *
9
+ * The tx body bytes are embedded verbatim (not re-encoded) because the
10
+ * MPC signature covers Blake2b of the exact bytes. Re-encoding could
11
+ * change key ordering or integer widths, invalidating the signature.
12
+ *
13
+ * The witness set is hand-encoded because common JS CBOR libraries tag
14
+ * Maps or encode object keys as text strings — Cardano requires plain
15
+ * CBOR maps with unsigned-integer keys.
16
+ */
17
+ type BuildSignedCardanoTxInput = {
18
+ /** CBOR-encoded transaction body from PreSigningOutput.data */
19
+ txBodyCbor: Uint8Array;
20
+ /** 32-byte Ed25519 spending public key */
21
+ publicKey: Uint8Array;
22
+ /** 64-byte Ed25519 signature (r || s, each little-endian) */
23
+ signature: Uint8Array;
24
+ };
25
+ /** Returns the full signed Cardano transaction as CBOR bytes. */
26
+ export declare const buildSignedCardanoTx: ({ txBodyCbor, publicKey, signature, }: BuildSignedCardanoTxInput) => Uint8Array;
27
+ export {};
28
+ //# sourceMappingURL=buildSignedCardanoTx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSignedCardanoTx.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildSignedCardanoTx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,yBAAyB,GAAG;IAC/B,+DAA+D;IAC/D,UAAU,EAAE,UAAU,CAAA;IACtB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAA;IACrB,6DAA6D;IAC7D,SAAS,EAAE,UAAU,CAAA;CACtB,CAAA;AA4DD,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,GAAI,uCAIlC,yBAAyB,KAAG,UAW9B,CAAA"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Wrap a WalletCore-produced Cardano tx body with witness CBOR.
3
+ *
4
+ * compileWithSignatures() calls encodeTransactionWithSig() which hits
5
+ * AddressV2::isValid() — crashing under WASM DISABLE_EXCEPTION_CATCHING.
6
+ * This module manually wraps the pre-signed tx body (from preImageHashes)
7
+ * with a CBOR witness set, producing a valid signed Cardano transaction.
8
+ *
9
+ * The tx body bytes are embedded verbatim (not re-encoded) because the
10
+ * MPC signature covers Blake2b of the exact bytes. Re-encoding could
11
+ * change key ordering or integer widths, invalidating the signature.
12
+ *
13
+ * The witness set is hand-encoded because common JS CBOR libraries tag
14
+ * Maps or encode object keys as text strings — Cardano requires plain
15
+ * CBOR maps with unsigned-integer keys.
16
+ */
17
+ /**
18
+ * Encode a CBOR byte string: major type 2, then length, then data.
19
+ * Supports lengths up to 65535 (two-byte length).
20
+ */
21
+ const cborBytes = (data) => {
22
+ if (data.length < 24) {
23
+ const out = new Uint8Array(1 + data.length);
24
+ out[0] = 0x40 | data.length;
25
+ out.set(data, 1);
26
+ return out;
27
+ }
28
+ if (data.length < 256) {
29
+ const out = new Uint8Array(2 + data.length);
30
+ out[0] = 0x58;
31
+ out[1] = data.length;
32
+ out.set(data, 2);
33
+ return out;
34
+ }
35
+ const out = new Uint8Array(3 + data.length);
36
+ out[0] = 0x59;
37
+ out[1] = (data.length >> 8) & 0xff;
38
+ out[2] = data.length & 0xff;
39
+ out.set(data, 3);
40
+ return out;
41
+ };
42
+ /**
43
+ * Build the witness set CBOR: a1 00 81 82 5820<vkey> 5840<sig>
44
+ * = map(1) { 0 => [ [bytes(32), bytes(64)] ] }
45
+ */
46
+ const buildWitnessCbor = (publicKey, signature) => {
47
+ const vkeyCbor = cborBytes(publicKey);
48
+ const sigCbor = cborBytes(signature);
49
+ // inner array [vkey, sig]: 0x82 = array(2)
50
+ const pair = concat([new Uint8Array([0x82]), vkeyCbor, sigCbor]);
51
+ // outer array [[vkey, sig]]: 0x81 = array(1)
52
+ const arr = concat([new Uint8Array([0x81]), pair]);
53
+ // map {0 => arr}: 0xa1 = map(1), 0x00 = uint(0)
54
+ return concat([new Uint8Array([0xa1, 0x00]), arr]);
55
+ };
56
+ const concat = (parts) => {
57
+ const totalLen = parts.reduce((sum, p) => sum + p.length, 0);
58
+ const result = new Uint8Array(totalLen);
59
+ let offset = 0;
60
+ for (const p of parts) {
61
+ result.set(p, offset);
62
+ offset += p.length;
63
+ }
64
+ return result;
65
+ };
66
+ /** Returns the full signed Cardano transaction as CBOR bytes. */
67
+ export const buildSignedCardanoTx = ({ txBodyCbor, publicKey, signature, }) => {
68
+ const witnessCbor = buildWitnessCbor(publicKey, signature);
69
+ // Signed tx: 0x84 [tx_body, witnesses, isValid, auxiliary_data]
70
+ return concat([
71
+ new Uint8Array([0x84]),
72
+ txBodyCbor,
73
+ witnessCbor,
74
+ new Uint8Array([0xf5]), // CBOR true (is_valid)
75
+ new Uint8Array([0xf6]), // CBOR null (no auxiliary data)
76
+ ]);
77
+ };
78
+ //# sourceMappingURL=buildSignedCardanoTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSignedCardanoTx.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildSignedCardanoTx.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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAI7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAG/F;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAAwB,EACxB,UAA4C,EAC5C,SAAoB,EACR,EAAE;IACd,MAAM,MAAM,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAEjD,gEAAgE;IAChE,4EAA4E;IAC5E,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAA;IAC5B,EAAE,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;IAChC,EAAE,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;IAElC,aAAa;IACb,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,iCAAiC;QACvF,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAA;QAE5D,kDAAkD;QAClD,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;YAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACrC,eAAe;aAChB,CAAC,CAAA;YACF,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAED,cAAc;IACd,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACzC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACtE,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEnC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,wCAAwC;YACxC,sDAAsD;YACtD,4EAA4E;YAC5E,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAC3D,CAAA;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAA;QAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3E,+CAA+C;QAC/C,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IAEhC,wEAAwE;IACxE,sEAAsE;IACtE,iEAAiE;IACjE,SAAS,GAAG,CAAC,CAAA;IACb,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAClD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,EAAE,YAAY,EAAE,EAAkB,EAAE,CAAA;QAC7C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAA;QAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3E,OAAO;YACL,YAAY,EAAE;gBACZ,IAAI,UAAU,CAAC,eAAe,CAAC;gBAC/B,IAAI,UAAU,CAAC,WAAW,CAAC;aAC5B;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,8DAA8D;IAC9D,uEAAuE;IACvE,6FAA6F;IAC7F,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;QACnD,OAAO,EAAE,UAAU;QACnB,eAAe,EAAE;YACf,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;SAClC;KACF,CAAC,CAAA;IAEF,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;AAC/D,CAAC,CAAA"}
@@ -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
- publicKey: PublicKey;
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;AASlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAMjE,KAAK,KAAK,GAAG;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,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,gCAuGP,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"}