@vultisig/core-mpc 1.2.22 → 1.3.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 (29) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/keysign/chainSpecific/resolvers/cardano.d.ts.map +1 -1
  3. package/dist/keysign/chainSpecific/resolvers/cardano.js +12 -1
  4. package/dist/keysign/chainSpecific/resolvers/cardano.js.map +1 -1
  5. package/dist/keysign/signingInputs/resolvers/cardano.d.ts.map +1 -1
  6. package/dist/keysign/signingInputs/resolvers/cardano.js +0 -7
  7. package/dist/keysign/signingInputs/resolvers/cardano.js.map +1 -1
  8. package/dist/keysign/swap/build.d.ts.map +1 -1
  9. package/dist/keysign/swap/build.js +31 -0
  10. package/dist/keysign/swap/build.js.map +1 -1
  11. package/dist/tx/compile/cardano/buildCip20AuxData.d.ts +51 -0
  12. package/dist/tx/compile/cardano/buildCip20AuxData.d.ts.map +1 -0
  13. package/dist/tx/compile/cardano/buildCip20AuxData.js +120 -0
  14. package/dist/tx/compile/cardano/buildCip20AuxData.js.map +1 -0
  15. package/dist/tx/compile/cardano/buildSignedCardanoTx.d.ts +7 -1
  16. package/dist/tx/compile/cardano/buildSignedCardanoTx.d.ts.map +1 -1
  17. package/dist/tx/compile/cardano/buildSignedCardanoTx.js +2 -2
  18. package/dist/tx/compile/cardano/buildSignedCardanoTx.js.map +1 -1
  19. package/dist/tx/compile/compileTx.d.ts.map +1 -1
  20. package/dist/tx/compile/compileTx.js +22 -7
  21. package/dist/tx/compile/compileTx.js.map +1 -1
  22. package/dist/tx/preSigningHashes/index.d.ts.map +1 -1
  23. package/dist/tx/preSigningHashes/index.js +19 -3
  24. package/dist/tx/preSigningHashes/index.js.map +1 -1
  25. package/dist/tx/swapkitSignBitcoin.d.ts +12 -0
  26. package/dist/tx/swapkitSignBitcoin.d.ts.map +1 -0
  27. package/dist/tx/swapkitSignBitcoin.js +106 -0
  28. package/dist/tx/swapkitSignBitcoin.js.map +1 -0
  29. package/package.json +12 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # @vultisig/core-mpc
2
2
 
3
+ ## 1.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#583](https://github.com/vultisig/vultisig-sdk/pull/583) [`f2270cd`](https://github.com/vultisig/vultisig-sdk/commit/f2270cd6aaa741d6800bd2d21e9775092be25d31) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - feat(cardano): attach CIP-20 label-674 metadata when memo is provided
8
+
9
+ Cardano direct sends with a non-empty memo now embed the memo as
10
+ CIP-20 on-chain metadata (`{ 674: { "msg": [...] } }`) instead of
11
+ silently dropping it.
12
+
13
+ Implementation:
14
+ - `buildCip20AuxData` encodes the memo into CIP-20 CBOR and computes
15
+ the blake2b-256 aux data hash
16
+ - `patchTxBodyWithAuxHash` byte-patches the WalletCore-produced tx body
17
+ to include the auxiliary_data_hash at key 7 (CBOR map header bump)
18
+ - `getPreSigningHashes` for Cardano now returns blake2b of the PATCHED
19
+ body when a memo is present, so all MPC devices sign the correct hash
20
+ - `compileTx` for Cardano re-derives the pre-signing output, patches
21
+ the body when memo is present, and passes auxDataCbor to
22
+ buildSignedCardanoTx so element [3] carries the metadata
23
+ - `getCardanoChainSpecific` bumps the forced fee by 44 \* len(auxDataCbor)
24
+ to account for the extra bytes WalletCore cannot anticipate
25
+ - Sends without memo are byte-identical to the pre-fix behavior
26
+
27
+ ### Patch Changes
28
+
29
+ - [#583](https://github.com/vultisig/vultisig-sdk/pull/583) [`f2270cd`](https://github.com/vultisig/vultisig-sdk/commit/f2270cd6aaa741d6800bd2d21e9775092be25d31) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - ## New
30
+ - Polkadot Asset Hub USDT (asset_id 1984) + USDC (asset_id 1337) token registry ([#562](https://github.com/vultisig/vultisig-sdk/issues/562))
31
+ - Polkadot `pallet_assets.Account` balance resolver for Asset Hub tokens - replaces placeholder 0n guard ([#563](https://github.com/vultisig/vultisig-sdk/issues/563))
32
+ - Tron native send `data` field (proto field 12) for THORChain memos + exchange deposit memos; `BuildTronSendOptions` and `BuildTrc20TransferOptions` gain optional `data?: Uint8Array` field ([#559](https://github.com/vultisig/vultisig-sdk/issues/559))
33
+
34
+ ## Fixed
35
+ - Tron TRC-20 fee estimate now subtracts sender's available energy before charging TRX ([#556](https://github.com/vultisig/vultisig-sdk/issues/556))
36
+ - Tron native send free bandwidth check prevents spurious fee charge when bandwidth is available ([#555](https://github.com/vultisig/vultisig-sdk/issues/555))
37
+
38
+ - Updated dependencies [[`f2270cd`](https://github.com/vultisig/vultisig-sdk/commit/f2270cd6aaa741d6800bd2d21e9775092be25d31)]:
39
+ - @vultisig/core-chain@2.4.0
40
+
41
+ ## 1.2.23
42
+
43
+ ### Patch Changes
44
+
45
+ - [#588](https://github.com/vultisig/vultisig-sdk/pull/588) [`256f67d`](https://github.com/vultisig/vultisig-sdk/commit/256f67da13a6d96f34c83c9b56c1cfb574cd8fd1) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Enable pre-built SwapKit Bitcoin PSBT transactions, verify their destination outputs, and route payloads through the SignBitcoin hashing and compilation path.
46
+
47
+ - Updated dependencies [[`256f67d`](https://github.com/vultisig/vultisig-sdk/commit/256f67da13a6d96f34c83c9b56c1cfb574cd8fd1)]:
48
+ - @vultisig/core-chain@2.3.2
49
+
3
50
  ## 1.2.22
4
51
 
5
52
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cardano.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,uBAAuB,EAAE,wBAAwB,CAAC,SAAS,CAevE,CAAA"}
1
+ {"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cardano.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAKtD,eAAO,MAAM,uBAAuB,EAAE,wBAAwB,CAAC,SAAS,CAwBvE,CAAA"}
@@ -4,7 +4,10 @@ import { cardanoDefaultFee } from '@vultisig/core-chain/chains/cardano/config';
4
4
  import { cardanoSlotOffset } from '@vultisig/core-chain/chains/cardano/config';
5
5
  import { CardanoChainSpecificSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
6
6
  import { bigIntSum } from '@vultisig/lib-utils/bigint/bigIntSum';
7
+ import { buildCip20AuxData } from '../../../tx/compile/cardano/buildCip20AuxData.js';
7
8
  import { getKeysignAmount } from '../../utils/getKeysignAmount.js';
9
+ // Cardano fee formula: fee = a * txBytes + b (mainnet params)
10
+ const CARDANO_A_PARAM = BigInt(44);
8
11
  export const getCardanoChainSpecific = async ({ keysignPayload }) => {
9
12
  const amount = getKeysignAmount(keysignPayload);
10
13
  const currentSlot = await getCardanoCurrentSlot();
@@ -12,10 +15,18 @@ export const getCardanoChainSpecific = async ({ keysignPayload }) => {
12
15
  const utxoInfo = keysignPayload.utxoInfo;
13
16
  const balance = bigIntSum(utxoInfo.map(({ amount }) => amount));
14
17
  const sendMaxAmount = amount ? balance === amount : false;
18
+ // When a memo is present, CIP-20 aux data is appended to the final tx.
19
+ // WalletCore does not know about this extra payload, so we bump the forced
20
+ // fee by a * len(auxDataCbor) to prevent a "fee too small" rejection.
21
+ let byteFee = BigInt(cardanoDefaultFee);
22
+ if (keysignPayload.memo) {
23
+ const { auxDataCbor } = buildCip20AuxData(keysignPayload.memo);
24
+ byteFee += CARDANO_A_PARAM * BigInt(auxDataCbor.length);
25
+ }
15
26
  return create(CardanoChainSpecificSchema, {
16
27
  ttl,
17
28
  sendMaxAmount,
18
- byteFee: BigInt(cardanoDefaultFee),
29
+ byteFee,
19
30
  });
20
31
  };
21
32
  //# sourceMappingURL=cardano.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAA;AAChH,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAG/D,MAAM,CAAC,MAAM,uBAAuB,GAAwC,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IACvG,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAE/C,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,CAAA;IACjD,MAAM,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAA;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAEzD,OAAO,MAAM,CAAC,0BAA0B,EAAE;QACxC,GAAG;QACH,aAAa;QACb,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC;KACnC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAA;AAChH,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAG/D,8DAA8D;AAC9D,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAwC,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IACvG,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAE/C,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,CAAA;IACjD,MAAM,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAA;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAEzD,uEAAuE;IACvE,2EAA2E;IAC3E,sEAAsE;IACtE,IAAI,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACvC,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC9D,OAAO,IAAI,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,MAAM,CAAC,0BAA0B,EAAE;QACxC,GAAG;QACH,aAAa;QACb,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AASnD,eAAO,MAAM,uBAAuB,EAAE,qBAAqB,CAAC,SAAS,CAwDpE,CAAA"}
1
+ {"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AASnD,eAAO,MAAM,uBAAuB,EAAE,qBAAqB,CAAC,SAAS,CA8CpE,CAAA"}
@@ -12,13 +12,6 @@ const amountToBytes = (amount) => {
12
12
  return Uint8Array.from(Buffer.from(padded, 'hex'));
13
13
  };
14
14
  export const getCardanoSigningInputs = ({ keysignPayload, walletCore }) => {
15
- // Cardano memos require CIP-20 auxiliary data whose hash is committed to in the
16
- // signed tx body — they cannot be attached after signing. Until that path is
17
- // implemented (see vultisig/vultisig-sdk#432), fail loudly instead of silently
18
- // dropping the memo and producing a tx with `auxiliary_data = null`.
19
- if (keysignPayload.memo) {
20
- throw new Error('Cardano memo is not supported yet: this SDK cannot attach CIP-20 metadata to direct sends, so the memo would be dropped and never land on-chain. Please retry without a memo, or wait for CIP-20 support (vultisig/vultisig-sdk#432).');
21
- }
22
15
  const { sendMaxAmount, ttl, byteFee } = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'cardano');
23
16
  const coin = shouldBePresent(keysignPayload.coin);
24
17
  const isTokenSend = coin.contractAddress !== '';
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"AAMA,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,EAAE,cAAc,EAAwB,MAAM,iEAAiE,CAAA;AAGtH,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;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAU,kHAW3C,4BAA4B,4BA0N9B,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAMnE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAU1D,OAAO,EAAE,cAAc,EAAwB,MAAM,iEAAiE,CAAA;AAGtH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAGzE,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;AAsCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAU,kHAW3C,4BAA4B,4BA4N9B,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { create } from '@bufbuild/protobuf';
3
+ import { buildSignBitcoinFromPsbt } from '@vultisig/core-chain/chains/utxo/tx/buildSignBitcoinFromPsbt';
3
4
  import { fromChainAmount } from '@vultisig/core-chain/amount/fromChainAmount';
4
5
  import { toChainAmount } from '@vultisig/core-chain/amount/toChainAmount';
6
+ import { Chain } from '@vultisig/core-chain/Chain';
5
7
  import { isChainOfKind } from '@vultisig/core-chain/ChainKind';
6
8
  import { getErc20Allowance } from '@vultisig/core-chain/chains/evm/erc20/getErc20Allowance';
7
9
  import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
@@ -12,12 +14,40 @@ import { getChainSpecific } from '@vultisig/core-mpc/keysign/chainSpecific';
12
14
  import { getBlockchainSpecificValue } from '@vultisig/core-mpc/keysign/chainSpecific/KeysignChainSpecific';
13
15
  import { refineKeysignUtxo } from '@vultisig/core-mpc/keysign/refine/utxo';
14
16
  import { getKeysignUtxoInfo } from '@vultisig/core-mpc/keysign/utxo/getKeysignUtxoInfo';
17
+ import { verifySwapKitBitcoinPsbtOutputs } from '@vultisig/core-mpc/tx/swapkitSignBitcoin';
15
18
  import { toCommCoin } from '@vultisig/core-mpc/types/utils/commCoin';
16
19
  import { OneInchQuoteSchema, OneInchSwapPayloadSchema, OneInchTransactionSchema, } from '@vultisig/core-mpc/types/vultisig/keysign/v1/1inch_swap_payload_pb';
17
20
  import { Erc20ApprovePayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/erc20_approve_payload_pb';
18
21
  import { KeysignPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
19
22
  import { SwapKitSwapPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/swapkit_swap_payload_pb';
20
23
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
24
+ import { Psbt } from 'bitcoinjs-lib';
25
+ const isSwapKitBitcoinPsbt = (fromCoin, transfer) => fromCoin.chain === Chain.Bitcoin && transfer.txType?.toUpperCase() === 'PSBT';
26
+ const getSwapKitBitcoinSignData = (fromCoin, transfer) => {
27
+ if (fromCoin.chain !== Chain.Bitcoin) {
28
+ return { case: undefined };
29
+ }
30
+ if (!isSwapKitBitcoinPsbt(fromCoin, transfer)) {
31
+ throw new Error('SwapKit Bitcoin transfer routes must include PSBT txType and txPayload.');
32
+ }
33
+ if (!transfer.txPayload?.length) {
34
+ throw new Error('SwapKit Bitcoin PSBT payload is empty.');
35
+ }
36
+ const signBitcoin = buildSignBitcoinFromPsbt({
37
+ psbt: Psbt.fromBuffer(Buffer.from(transfer.txPayload)),
38
+ senderAddress: fromCoin.address,
39
+ });
40
+ verifySwapKitBitcoinPsbtOutputs({
41
+ signBitcoin,
42
+ senderAddress: fromCoin.address,
43
+ expectedToAddress: transfer.to,
44
+ expectedToAmount: transfer.amount,
45
+ });
46
+ return {
47
+ case: 'signBitcoin',
48
+ value: signBitcoin,
49
+ };
50
+ };
21
51
  /**
22
52
  * Builds a KeysignPayload for a swap transaction.
23
53
  *
@@ -77,6 +107,7 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
77
107
  transfer: tx => tx,
78
108
  });
79
109
  if (quote.provider === 'swapkit' && transfer) {
110
+ keysignPayload.signData = getSwapKitBitcoinSignData(fromCoin, transfer);
80
111
  return {
81
112
  case: 'swapkitSwapPayload',
82
113
  value: create(SwapKitSwapPayloadSchema, {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Split a memo string into chunks of at most 64 UTF-8 bytes each.
3
+ *
4
+ * Each chunk respects UTF-8 character boundaries: a multi-byte codepoint
5
+ * straddling the 64-byte boundary is moved entirely to the next chunk
6
+ * instead of being torn (which would produce U+FFFD replacement chars on
7
+ * decode and corrupt the memo as it lands on-chain).
8
+ *
9
+ * UTF-8 leading bytes have the bit pattern 0xxxxxxx, 110xxxxx, 1110xxxx,
10
+ * or 11110xxx. Continuation bytes have the pattern 10xxxxxx. To find a
11
+ * safe cut point we walk back from the proposed end until the byte at
12
+ * `end` is a leading byte (or we hit the chunk start, in which case the
13
+ * input is malformed and we keep the original cut).
14
+ */
15
+ export declare function memoToChunks(memo: string): string[];
16
+ /**
17
+ * Encode the CIP-20 transaction metadata for a given memo string.
18
+ *
19
+ * Produces:
20
+ * { 674: { "msg": ["<chunk1>", "<chunk2>", ...] } }
21
+ *
22
+ * The label 674 is the CIP-20 metadata label registered on cardano.org.
23
+ *
24
+ * @returns
25
+ * - `auxDataCbor` — the canonical CBOR bytes to embed as element [3] of
26
+ * the signed transaction array (replaces the `0xf6` null sentinel).
27
+ * - `auxDataHash` — blake2b-256 of `auxDataCbor`, to be committed in the
28
+ * tx body at CBOR map key 7 (auxiliary_data_hash).
29
+ */
30
+ export declare function buildCip20AuxData(memo: string): {
31
+ auxDataCbor: Uint8Array;
32
+ auxDataHash: Uint8Array;
33
+ };
34
+ /**
35
+ * Re-emit a WalletCore-produced CBOR tx body with an `auxiliary_data_hash`
36
+ * entry (CBOR map key 7) appended.
37
+ *
38
+ * WalletCore emits the tx body as a CBOR map. We avoid a full decode/encode
39
+ * round-trip (which could alter key ordering or integer widths and invalidate
40
+ * the MPC signature) by:
41
+ * 1. Reading the initial CBOR map header byte to extract the current count.
42
+ * 2. Re-emitting the header byte(s) with count+1.
43
+ * 3. Concatenating the original body bytes after the header.
44
+ * 4. Appending `cborUint(7)` + `cborBytes(auxDataHash)`.
45
+ *
46
+ * This works as long as WalletCore never produces a body map with > 23
47
+ * entries (i.e. the count fits in the CBOR one-byte "additional info" form),
48
+ * which is true in practice — current Cardano tx bodies have at most 9 keys.
49
+ */
50
+ export declare function patchTxBodyWithAuxHash(txBodyCbor: Uint8Array, auxDataHash: Uint8Array): Uint8Array;
51
+ //# sourceMappingURL=buildCip20AuxData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCip20AuxData.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildCip20AuxData.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA+BnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAC/C,WAAW,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,UAAU,CAAA;CACxB,CAOA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,GAAG,UAAU,CA0ClG"}
@@ -0,0 +1,120 @@
1
+ import { blake2b } from '@noble/hashes/blake2b';
2
+ import { cborArray, cborBytes, cborMap, cborText, cborUint, } from '@vultisig/core-chain/chains/cardano/cip30/cardanoCborPrimitives';
3
+ /** CIP-20 limits each metadata text chunk to 64 UTF-8 bytes. */
4
+ const MAX_CHUNK_BYTES = 64;
5
+ /**
6
+ * Split a memo string into chunks of at most 64 UTF-8 bytes each.
7
+ *
8
+ * Each chunk respects UTF-8 character boundaries: a multi-byte codepoint
9
+ * straddling the 64-byte boundary is moved entirely to the next chunk
10
+ * instead of being torn (which would produce U+FFFD replacement chars on
11
+ * decode and corrupt the memo as it lands on-chain).
12
+ *
13
+ * UTF-8 leading bytes have the bit pattern 0xxxxxxx, 110xxxxx, 1110xxxx,
14
+ * or 11110xxx. Continuation bytes have the pattern 10xxxxxx. To find a
15
+ * safe cut point we walk back from the proposed end until the byte at
16
+ * `end` is a leading byte (or we hit the chunk start, in which case the
17
+ * input is malformed and we keep the original cut).
18
+ */
19
+ export function memoToChunks(memo) {
20
+ const bytes = new TextEncoder().encode(memo);
21
+ if (bytes.length === 0)
22
+ return [''];
23
+ const chunks = [];
24
+ const decoder = new TextDecoder();
25
+ let start = 0;
26
+ while (start < bytes.length) {
27
+ let end = Math.min(start + MAX_CHUNK_BYTES, bytes.length);
28
+ // If we are not at the end of the buffer and `end` lands on a UTF-8
29
+ // continuation byte (top bits 10xxxxxx), back up until we hit the
30
+ // start of that codepoint. The next chunk will pick up the codepoint
31
+ // intact.
32
+ if (end < bytes.length) {
33
+ while (end > start && (bytes[end] & 0xc0) === 0x80) {
34
+ end--;
35
+ }
36
+ // Defensive: if walking back consumed the whole chunk (malformed
37
+ // input — > 64 bytes of continuation bytes in a row, impossible
38
+ // for any valid UTF-8 codepoint which maxes at 4 bytes), fall back
39
+ // to the original cut so we make forward progress.
40
+ if (end === start) {
41
+ end = Math.min(start + MAX_CHUNK_BYTES, bytes.length);
42
+ }
43
+ }
44
+ chunks.push(decoder.decode(bytes.slice(start, end)));
45
+ start = end;
46
+ }
47
+ return chunks;
48
+ }
49
+ /**
50
+ * Encode the CIP-20 transaction metadata for a given memo string.
51
+ *
52
+ * Produces:
53
+ * { 674: { "msg": ["<chunk1>", "<chunk2>", ...] } }
54
+ *
55
+ * The label 674 is the CIP-20 metadata label registered on cardano.org.
56
+ *
57
+ * @returns
58
+ * - `auxDataCbor` — the canonical CBOR bytes to embed as element [3] of
59
+ * the signed transaction array (replaces the `0xf6` null sentinel).
60
+ * - `auxDataHash` — blake2b-256 of `auxDataCbor`, to be committed in the
61
+ * tx body at CBOR map key 7 (auxiliary_data_hash).
62
+ */
63
+ export function buildCip20AuxData(memo) {
64
+ const chunks = memoToChunks(memo);
65
+ const msgArray = cborArray(chunks.map(c => cborText(c)));
66
+ const innerMap = cborMap([[cborText('msg'), msgArray]]);
67
+ const auxDataCbor = cborMap([[cborUint(674), innerMap]]);
68
+ const auxDataHash = blake2b(auxDataCbor, { dkLen: 32 });
69
+ return { auxDataCbor, auxDataHash };
70
+ }
71
+ /**
72
+ * Re-emit a WalletCore-produced CBOR tx body with an `auxiliary_data_hash`
73
+ * entry (CBOR map key 7) appended.
74
+ *
75
+ * WalletCore emits the tx body as a CBOR map. We avoid a full decode/encode
76
+ * round-trip (which could alter key ordering or integer widths and invalidate
77
+ * the MPC signature) by:
78
+ * 1. Reading the initial CBOR map header byte to extract the current count.
79
+ * 2. Re-emitting the header byte(s) with count+1.
80
+ * 3. Concatenating the original body bytes after the header.
81
+ * 4. Appending `cborUint(7)` + `cborBytes(auxDataHash)`.
82
+ *
83
+ * This works as long as WalletCore never produces a body map with > 23
84
+ * entries (i.e. the count fits in the CBOR one-byte "additional info" form),
85
+ * which is true in practice — current Cardano tx bodies have at most 9 keys.
86
+ */
87
+ export function patchTxBodyWithAuxHash(txBodyCbor, auxDataHash) {
88
+ if (txBodyCbor.length === 0) {
89
+ throw new Error('patchTxBodyWithAuxHash: empty txBodyCbor');
90
+ }
91
+ const firstByte = txBodyCbor[0];
92
+ const majorType = firstByte >> 5;
93
+ if (majorType !== 5) {
94
+ throw new Error(`patchTxBodyWithAuxHash: expected CBOR map (major type 5), got major type ${majorType}`);
95
+ }
96
+ const additionalInfo = firstByte & 0x1f;
97
+ if (additionalInfo >= 24) {
98
+ // Multi-byte map count — would require a more complex header rewrite.
99
+ // In practice Cardano tx bodies never exceed 23 entries.
100
+ throw new Error(`patchTxBodyWithAuxHash: map header uses additional info ${additionalInfo}; only direct-count maps (< 24 entries) are supported`);
101
+ }
102
+ const oldCount = additionalInfo;
103
+ const newCount = oldCount + 1;
104
+ if (newCount >= 24) {
105
+ throw new Error(`patchTxBodyWithAuxHash: cannot increment map count to ${newCount} (would overflow into two-byte header)`);
106
+ }
107
+ const newHeader = new Uint8Array([(5 << 5) | newCount]);
108
+ const bodyAfterHeader = txBodyCbor.slice(1);
109
+ const auxHashEntry = new Uint8Array([...cborUint(7), ...cborBytes(auxDataHash)]);
110
+ const totalLen = newHeader.length + bodyAfterHeader.length + auxHashEntry.length;
111
+ const out = new Uint8Array(totalLen);
112
+ let offset = 0;
113
+ out.set(newHeader, offset);
114
+ offset += newHeader.length;
115
+ out.set(bodyAfterHeader, offset);
116
+ offset += bodyAfterHeader.length;
117
+ out.set(auxHashEntry, offset);
118
+ return out;
119
+ }
120
+ //# sourceMappingURL=buildCip20AuxData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCip20AuxData.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildCip20AuxData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,MAAM,iEAAiE,CAAA;AAExE,gEAAgE;AAChE,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IACnC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IAEjC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QAEzD,oEAAoE;QACpE,kEAAkE;QAClE,qEAAqE;QACrE,UAAU;QACV,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,GAAG,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,GAAG,EAAE,CAAA;YACP,CAAC;YACD,iEAAiE;YACjE,gEAAgE;YAChE,mEAAmE;YACnE,mDAAmD;YACnD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACpD,KAAK,GAAG,GAAG,CAAA;IACb,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAI5C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA;AACrC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAsB,EAAE,WAAuB;IACpF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;IAChC,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAA;IAChC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4EAA4E,SAAS,EAAE,CAAC,CAAA;IAC1G,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,GAAG,IAAI,CAAA;IACvC,IAAI,cAAc,IAAI,EAAE,EAAE,CAAC;QACzB,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,IAAI,KAAK,CACb,2DAA2D,cAAc,uDAAuD,CACjI,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAA;IAC/B,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAA;IAE7B,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,yDAAyD,QAAQ,wCAAwC,CAC1G,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;IACvD,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3C,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAEhF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;IAChF,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;IACpC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC1B,MAAM,IAAI,SAAS,CAAC,MAAM,CAAA;IAC1B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAA;IAChC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -21,8 +21,14 @@ type BuildSignedCardanoTxInput = {
21
21
  publicKey: Uint8Array;
22
22
  /** 64-byte Ed25519 signature (r || s, each little-endian) */
23
23
  signature: Uint8Array;
24
+ /**
25
+ * CIP-20 auxiliary data CBOR (the full { 674: { "msg": [...] } } map).
26
+ * When provided, replaces the `0xf6` null sentinel at element [3] of the
27
+ * signed transaction array. When absent, `0xf6` is used (no aux data).
28
+ */
29
+ auxDataCbor?: Uint8Array;
24
30
  };
25
31
  /** Returns the full signed Cardano transaction as CBOR bytes. */
26
- export declare const buildSignedCardanoTx: ({ txBodyCbor, publicKey, signature }: BuildSignedCardanoTxInput) => Uint8Array;
32
+ export declare const buildSignedCardanoTx: ({ txBodyCbor, publicKey, signature, auxDataCbor, }: BuildSignedCardanoTxInput) => Uint8Array;
27
33
  export {};
28
34
  //# sourceMappingURL=buildSignedCardanoTx.d.ts.map
@@ -1 +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;AAyDD,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,GAAI,sCAAsC,yBAAyB,KAAG,UAWtG,CAAA"}
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;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,UAAU,CAAA;CACzB,CAAA;AAyDD,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,GAAI,oDAKlC,yBAAyB,KAAG,UAW9B,CAAA"}
@@ -64,7 +64,7 @@ const concat = (parts) => {
64
64
  return result;
65
65
  };
66
66
  /** Returns the full signed Cardano transaction as CBOR bytes. */
67
- export const buildSignedCardanoTx = ({ txBodyCbor, publicKey, signature }) => {
67
+ export const buildSignedCardanoTx = ({ txBodyCbor, publicKey, signature, auxDataCbor, }) => {
68
68
  const witnessCbor = buildWitnessCbor(publicKey, signature);
69
69
  // Signed tx: 0x84 [tx_body, witnesses, isValid, auxiliary_data]
70
70
  return concat([
@@ -72,7 +72,7 @@ export const buildSignedCardanoTx = ({ txBodyCbor, publicKey, signature }) => {
72
72
  txBodyCbor,
73
73
  witnessCbor,
74
74
  new Uint8Array([0xf5]), // CBOR true (is_valid)
75
- new Uint8Array([0xf6]), // CBOR null (no auxiliary data)
75
+ auxDataCbor ?? new Uint8Array([0xf6]), // CIP-20 metadata or CBOR null
76
76
  ]);
77
77
  };
78
78
  //# sourceMappingURL=buildSignedCardanoTx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildSignedCardanoTx.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildSignedCardanoTx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildSignedCardanoTx.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/tx/compile/cardano/buildSignedCardanoTx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AAEA,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,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAKzG,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,gCA0IP,CAAA"}
1
+ {"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAWlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAMzG,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,gCA0JP,CAAA"}
@@ -8,20 +8,23 @@ import { getCoinType } from '@vultisig/core-chain/coin/coinType';
8
8
  import { signatureFormats } from '@vultisig/core-chain/signing/SignatureFormat';
9
9
  import { assertSignature } from '@vultisig/core-chain/utils/assertSignature';
10
10
  import { getQBTCSignedTransaction } from '../../chains/cosmos/qbtc/QBTCHelper.js';
11
+ import { buildCip20AuxData, patchTxBodyWithAuxHash } from './cardano/buildCip20AuxData.js';
11
12
  import { buildSignedCardanoTx } from './cardano/buildSignedCardanoTx.js';
12
13
  import { getBlockchainSpecificValue } from '../../keysign/chainSpecific/KeysignChainSpecific.js';
13
14
  import { decodeBittensorTxInput } from '../../keysign/signingInputs/resolvers/bittensor.js';
14
15
  import { KeysignPayloadSchema } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
15
16
  import { getPreSigningHashes } from '../preSigningHashes/index.js';
16
17
  import { generateSignature } from '../signature/generateSignature.js';
18
+ import { getSwapKitSignBitcoin } from '../swapkitSignBitcoin.js';
17
19
  import { compileSignBitcoinTx } from './compileSignBitcoinTx.js';
18
20
  export const compileTx = ({ publicKey, txInputData, signatures: keysignSignatures, chain, walletCore, keysignPayload, }) => {
21
+ const signBitcoin = keysignPayload ? getSwapKitSignBitcoin(keysignPayload) : undefined;
19
22
  // PSBT signing: build raw signed tx from SignBitcoin fields + MPC signatures
20
- if (keysignPayload?.signData.case === 'signBitcoin') {
23
+ if (signBitcoin) {
21
24
  if (!publicKey) {
22
25
  throw new Error('publicKey is required for SignBitcoin compilation');
23
26
  }
24
- return compileSignBitcoinTx(keysignPayload.signData.value, keysignSignatures, publicKey);
27
+ return compileSignBitcoinTx(signBitcoin, keysignSignatures, publicKey);
25
28
  }
26
29
  if (chain === Chain.QBTC) {
27
30
  const qbtcPayload = fromBinary(KeysignPayloadSchema, txInputData);
@@ -72,6 +75,9 @@ export const compileTx = ({ publicKey, txInputData, signatures: keysignSignature
72
75
  })).finish();
73
76
  }
74
77
  if (chain === Chain.Cardano) {
78
+ // hashes[0] is blake2b-256 of the tx body. When a memo is set,
79
+ // getPreSigningHashes returns blake2b of the patched body (with aux_data_hash
80
+ // at key 7) so both signing phase and compile phase agree on the same bytes.
75
81
  const hash = hashes[0];
76
82
  const hashHex = Buffer.from(hash).toString('hex');
77
83
  const sig = generateSignature({
@@ -85,19 +91,28 @@ export const compileTx = ({ publicKey, txInputData, signatures: keysignSignature
85
91
  signature: sig,
86
92
  signatureFormat,
87
93
  });
88
- // preOutput.data is the CBOR-encoded tx body
94
+ // Re-derive the tx body (and aux data when memo is set) to wrap it with
95
+ // the witness set and produce the final signed transaction.
89
96
  const preOutput = TW.TxCompiler.Proto.PreSigningOutput.decode(walletCore.TransactionCompiler.preImageHashes(getCoinType({ chain, walletCore }), txInputData));
97
+ const memo = keysignPayload?.memo;
98
+ let txBodyCbor = preOutput.data;
99
+ let auxDataCbor;
100
+ if (memo) {
101
+ const cip20 = buildCip20AuxData(memo);
102
+ auxDataCbor = cip20.auxDataCbor;
103
+ txBodyCbor = patchTxBodyWithAuxHash(txBodyCbor, cip20.auxDataHash);
104
+ }
90
105
  const spendingKey = new Uint8Array(publicKey.data()).slice(0, 32);
91
106
  const encoded = buildSignedCardanoTx({
92
- txBodyCbor: preOutput.data,
107
+ txBodyCbor,
93
108
  publicKey: spendingKey,
94
109
  signature: new Uint8Array(sig),
110
+ auxDataCbor,
95
111
  });
96
112
  return TW.Cardano.Proto.SigningOutput.encode(TW.Cardano.Proto.SigningOutput.create({
97
113
  encoded,
98
- // Embed the correct tx hash so downstream code doesn't need to
99
- // re-encode the body (cbor-x round-trip can alter bytes).
100
- txId: preOutput.dataHash,
114
+ // hashes[0] is blake2b-256 of the body correct txId for both paths
115
+ txId: hash,
101
116
  })).finish();
102
117
  }
103
118
  const allSignatures = walletCore.DataVector.create();
@@ -1 +1 @@
1
- {"version":3,"file":"compileTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compileTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAQlD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAEzG,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,UAAU,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,oDAAoD,KAAK,kCAiD5F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AASlD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAIrD,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAGzG,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,UAAU,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAKD,eAAO,MAAM,mBAAmB,GAAI,oDAAoD,KAAK,kCA+D5F,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { Chain } from '@vultisig/core-chain/Chain';
2
2
  import { fromBinary } from '@bufbuild/protobuf';
3
+ import { blake2b } from '@noble/hashes/blake2b';
3
4
  import { decodeBittensorTxInput } from '../../keysign/signingInputs/resolvers/bittensor.js';
4
5
  import { computePreSigningHashes } from '../../keysign/signingInputs/resolvers/bitcoin/sighash.js';
5
6
  import { getQBTCPreSignedImageHash } from '../../chains/cosmos/qbtc/QBTCHelper.js';
@@ -8,11 +9,17 @@ import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
8
9
  import { blake2AsU8a } from '@polkadot/util-crypto';
9
10
  import { getBlockchainSpecificValue } from '../../keysign/chainSpecific/KeysignChainSpecific.js';
10
11
  import { getPreSigningOutput } from '../../keysign/preSigningOutput/index.js';
12
+ import { buildCip20AuxData, patchTxBodyWithAuxHash } from '../compile/cardano/buildCip20AuxData.js';
11
13
  import { KeysignPayloadSchema } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
14
+ import { getSwapKitSignBitcoin } from '../swapkitSignBitcoin.js';
15
+ const sortHashes = (hashes) => [...hashes].sort((one, another) => Buffer.from(one).compare(Buffer.from(another)));
12
16
  export const getPreSigningHashes = ({ walletCore, txInputData, chain, keysignPayload }) => {
13
- // PSBT signing: compute BIP-143 sighashes directly from structured data
14
- if (keysignPayload?.signData.case === 'signBitcoin') {
15
- return computePreSigningHashes(keysignPayload.signData.value);
17
+ const signBitcoin = keysignPayload ? getSwapKitSignBitcoin(keysignPayload) : undefined;
18
+ // PSBT signing: compute BIP-143 sighashes directly from structured data.
19
+ // Sort the public ceremony hashes for deterministic cross-platform order;
20
+ // final PSBT assembly still maps signatures by hash and preserves input order.
21
+ if (signBitcoin) {
22
+ return sortHashes(computePreSigningHashes(signBitcoin));
16
23
  }
17
24
  if (chain === Chain.QBTC) {
18
25
  const qbtcPayload = fromBinary(KeysignPayloadSchema, txInputData);
@@ -24,6 +31,15 @@ export const getPreSigningHashes = ({ walletCore, txInputData, chain, keysignPay
24
31
  const toSign = payload.length > 256 ? blake2AsU8a(payload, 256) : payload;
25
32
  return [toSign];
26
33
  }
34
+ // Cardano with memo: the aux-data hash is committed into the tx body, so
35
+ // the signed bytes differ from the WalletCore body. Patch the body and
36
+ // return blake2b-256 of the patched bytes — that is what MPC must sign.
37
+ if (chain === Chain.Cardano && keysignPayload?.memo) {
38
+ const output = getPreSigningOutput({ walletCore, txInputData, chain });
39
+ const { auxDataHash } = buildCip20AuxData(keysignPayload.memo);
40
+ const patchedBody = patchTxBodyWithAuxHash(output.data, auxDataHash);
41
+ return [blake2b(patchedBody, { dkLen: 32 })];
42
+ }
27
43
  const output = getPreSigningOutput({
28
44
  walletCore,
29
45
  txInputData,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAkB,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AASzG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAS,EAAE,EAAE;IAC/F,wEAAwE;IACxE,IAAI,cAAc,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACpD,OAAO,uBAAuB,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,0BAA0B,CAAC,WAAW,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;QACnG,OAAO,yBAAyB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzE,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,WAAW;QACX,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,oBAAoB,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACzE,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC/D,OAAO,OAAO,CACZ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EACpC,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QAC/B,OAAO,OAAO,CACZ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EACjD,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAEvB,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAChG,OAAO,EAAkB,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAS7D,MAAM,UAAU,GAAG,CAAC,MAAoB,EAAgB,EAAE,CACxD,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAS,EAAE,EAAE;IAC/F,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEtF,yEAAyE;IACzE,0EAA0E;IAC1E,+EAA+E;IAC/E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,0BAA0B,CAAC,WAAW,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;QACnG,OAAO,yBAAyB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzE,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,IAAI,cAAc,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QACtE,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC9D,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QACpE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,WAAW;QACX,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,oBAAoB,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACzE,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC/D,OAAO,OAAO,CACZ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EACpC,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QAC/B,OAAO,OAAO,CACZ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EACjD,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAEvB,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { KeysignPayload } from '../types/vultisig/keysign/v1/keysign_message_pb.js';
2
+ import { SignBitcoin } from '../types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js';
3
+ type VerifySwapKitBitcoinPsbtOutputsInput = {
4
+ signBitcoin: SignBitcoin;
5
+ senderAddress: string;
6
+ expectedToAddress: string;
7
+ expectedToAmount: string | bigint;
8
+ };
9
+ export declare const verifySwapKitBitcoinPsbtOutputs: ({ signBitcoin, senderAddress, expectedToAddress, expectedToAmount, }: VerifySwapKitBitcoinPsbtOutputsInput) => void;
10
+ export declare const getSwapKitSignBitcoin: (keysignPayload: KeysignPayload) => SignBitcoin | undefined;
11
+ export {};
12
+ //# sourceMappingURL=swapkitSignBitcoin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swapkitSignBitcoin.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/tx/swapkitSignBitcoin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,+DAA+D,CAAA;AAE3F,KAAK,oCAAoC,GAAG;IAC1C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;CAClC,CAAA;AAsCD,eAAO,MAAM,+BAA+B,GAAI,sEAK7C,oCAAoC,SA+CtC,CAAA;AAWD,eAAO,MAAM,qBAAqB,GAAI,gBAAgB,cAAc,KAAG,WAAW,GAAG,SAiCpF,CAAA"}
@@ -0,0 +1,106 @@
1
+ import { Buffer } from 'buffer';
2
+ import { Chain } from '@vultisig/core-chain/Chain';
3
+ import { buildSignBitcoinFromPsbt } from '@vultisig/core-chain/chains/utxo/tx/buildSignBitcoinFromPsbt';
4
+ import { address as btcAddress, networks, Psbt } from 'bitcoinjs-lib';
5
+ const getScriptPubKeyForAddress = (address, label) => {
6
+ if (!address) {
7
+ throw new Error(`SwapKit Bitcoin PSBT ${label} address is empty.`);
8
+ }
9
+ try {
10
+ return Buffer.from(btcAddress.toOutputScript(address, networks.bitcoin));
11
+ }
12
+ catch {
13
+ throw new Error(`SwapKit Bitcoin PSBT ${label} address is invalid: ${address}`);
14
+ }
15
+ };
16
+ const parseExpectedAmount = (amount) => {
17
+ if (typeof amount === 'string' && !/^\d+$/.test(amount)) {
18
+ throw new Error(`SwapKit Bitcoin PSBT expected amount is invalid: ${amount}`);
19
+ }
20
+ try {
21
+ const value = typeof amount === 'bigint' ? amount : BigInt(amount);
22
+ if (value < 0n) {
23
+ throw new Error('negative');
24
+ }
25
+ return value;
26
+ }
27
+ catch {
28
+ throw new Error(`SwapKit Bitcoin PSBT expected amount is invalid: ${amount}`);
29
+ }
30
+ };
31
+ const getOutputScript = (scriptPubKey, index) => {
32
+ if (!/^(?:[0-9a-f]{2})+$/iu.test(scriptPubKey)) {
33
+ throw new Error(`SwapKit Bitcoin PSBT output #${index} has an invalid scriptPubKey.`);
34
+ }
35
+ return Buffer.from(scriptPubKey, 'hex');
36
+ };
37
+ export const verifySwapKitBitcoinPsbtOutputs = ({ signBitcoin, senderAddress, expectedToAddress, expectedToAmount, }) => {
38
+ const expectedDestinationScript = getScriptPubKeyForAddress(expectedToAddress, 'destination');
39
+ const expectedChangeScript = getScriptPubKeyForAddress(senderAddress, 'sender');
40
+ const expectedAmount = parseExpectedAmount(expectedToAmount);
41
+ const outputs = signBitcoin.outputs.map((output, index) => ({
42
+ output,
43
+ script: getOutputScript(output.scriptPubKey, index),
44
+ }));
45
+ outputs.forEach(({ output, script }, index) => {
46
+ const derivedIsChange = script.equals(expectedChangeScript);
47
+ if (output.isChange !== derivedIsChange) {
48
+ throw new Error(`SwapKit Bitcoin PSBT output #${index} has isChange=${output.isChange}, ` +
49
+ `but its scriptPubKey ${derivedIsChange ? 'does' : 'does not'} pay back to the sender.`);
50
+ }
51
+ });
52
+ const nonChangeOutputs = outputs.filter(({ output }) => !output.isChange);
53
+ const nonChangeAmount = nonChangeOutputs.reduce((sum, { output }) => sum + output.amount, 0n);
54
+ if (nonChangeAmount !== expectedAmount) {
55
+ throw new Error(`SwapKit Bitcoin PSBT non-change outputs sum to ${nonChangeAmount}, ` + `but expected ${expectedAmount}.`);
56
+ }
57
+ const destinationMatches = nonChangeOutputs.map(({ output, script }) => ({
58
+ amount: output.amount,
59
+ matches: script.equals(expectedDestinationScript),
60
+ }));
61
+ if (destinationMatches.some(({ amount, matches }) => amount > 0n && !matches)) {
62
+ throw new Error('SwapKit Bitcoin PSBT contains a value-bearing non-change output that is not the quoted destination.');
63
+ }
64
+ const destinationMatchCount = destinationMatches.filter(({ matches }) => matches).length;
65
+ if (destinationMatchCount !== 1) {
66
+ throw new Error(`SwapKit Bitcoin PSBT must contain exactly one non-change output paying to ${expectedToAddress}, ` +
67
+ `but found ${destinationMatchCount}.`);
68
+ }
69
+ };
70
+ const getSwapKitBitcoinPsbtPayload = (keysignPayload) => {
71
+ if (keysignPayload.coin?.chain !== Chain.Bitcoin || keysignPayload.swapPayload.case !== 'swapkitSwapPayload') {
72
+ return undefined;
73
+ }
74
+ const swapKitPayload = keysignPayload.swapPayload.value;
75
+ return swapKitPayload.txType.toUpperCase() === 'PSBT' ? swapKitPayload : undefined;
76
+ };
77
+ export const getSwapKitSignBitcoin = (keysignPayload) => {
78
+ let signBitcoin;
79
+ const swapKitBitcoinPsbtPayload = getSwapKitBitcoinPsbtPayload(keysignPayload);
80
+ if (keysignPayload.signData.case === 'signBitcoin') {
81
+ signBitcoin = keysignPayload.signData.value;
82
+ }
83
+ else if (swapKitBitcoinPsbtPayload) {
84
+ const txPayload = swapKitBitcoinPsbtPayload.txPayload;
85
+ if (txPayload.length === 0) {
86
+ throw new Error('SwapKit Bitcoin PSBT payload is empty.');
87
+ }
88
+ signBitcoin = buildSignBitcoinFromPsbt({
89
+ psbt: Psbt.fromBuffer(Buffer.from(txPayload)),
90
+ senderAddress: keysignPayload.coin?.address ?? '',
91
+ });
92
+ }
93
+ if (!signBitcoin) {
94
+ return undefined;
95
+ }
96
+ if (swapKitBitcoinPsbtPayload) {
97
+ verifySwapKitBitcoinPsbtOutputs({
98
+ signBitcoin,
99
+ senderAddress: keysignPayload.coin?.address ?? '',
100
+ expectedToAddress: keysignPayload.toAddress,
101
+ expectedToAmount: keysignPayload.toAmount,
102
+ });
103
+ }
104
+ return signBitcoin;
105
+ };
106
+ //# sourceMappingURL=swapkitSignBitcoin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swapkitSignBitcoin.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/tx/swapkitSignBitcoin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-mpc",
3
- "version": "1.2.22",
3
+ "version": "1.3.0",
4
4
  "description": "MPC, keysign, and vault types shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -772,6 +772,11 @@
772
772
  "import": "./dist/swap/utils/getSwapTrackingUrl.js",
773
773
  "default": "./dist/swap/utils/getSwapTrackingUrl.js"
774
774
  },
775
+ "./tx/compile/cardano/buildCip20AuxData": {
776
+ "types": "./dist/tx/compile/cardano/buildCip20AuxData.d.ts",
777
+ "import": "./dist/tx/compile/cardano/buildCip20AuxData.js",
778
+ "default": "./dist/tx/compile/cardano/buildCip20AuxData.js"
779
+ },
775
780
  "./tx/compile/cardano/buildSignedCardanoTx": {
776
781
  "types": "./dist/tx/compile/cardano/buildSignedCardanoTx.d.ts",
777
782
  "import": "./dist/tx/compile/cardano/buildSignedCardanoTx.js",
@@ -797,6 +802,11 @@
797
802
  "import": "./dist/tx/signature/generateSignature.js",
798
803
  "default": "./dist/tx/signature/generateSignature.js"
799
804
  },
805
+ "./tx/swapkitSignBitcoin": {
806
+ "types": "./dist/tx/swapkitSignBitcoin.d.ts",
807
+ "import": "./dist/tx/swapkitSignBitcoin.js",
808
+ "default": "./dist/tx/swapkitSignBitcoin.js"
809
+ },
800
810
  "./types/plugin/constraint_pb": {
801
811
  "types": "./dist/types/plugin/constraint_pb.d.ts",
802
812
  "import": "./dist/types/plugin/constraint_pb.js",
@@ -984,7 +994,7 @@
984
994
  "@noble/hashes": "^1.8.0",
985
995
  "@solana/web3.js": "^1.98.4",
986
996
  "@trustwallet/wallet-core": "^4.6.9",
987
- "@vultisig/core-chain": "2.3.1",
997
+ "@vultisig/core-chain": "2.4.0",
988
998
  "@vultisig/core-config": "0.9.1",
989
999
  "@vultisig/lib-dkls": "0.9.0",
990
1000
  "@vultisig/lib-mldsa": "0.9.0",