@vultisig/core-mpc 2.0.1 → 2.1.1

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 (37) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/keysign/chainSpecific/resolver.d.ts +6 -0
  3. package/dist/keysign/chainSpecific/resolver.d.ts.map +1 -1
  4. package/dist/keysign/chainSpecific/resolvers/cardano.js +2 -2
  5. package/dist/keysign/chainSpecific/resolvers/cardano.js.map +1 -1
  6. package/dist/keysign/chainSpecific/resolvers/ton/index.d.ts +7 -0
  7. package/dist/keysign/chainSpecific/resolvers/ton/index.d.ts.map +1 -1
  8. package/dist/keysign/chainSpecific/resolvers/ton/index.js +20 -18
  9. package/dist/keysign/chainSpecific/resolvers/ton/index.js.map +1 -1
  10. package/dist/keysign/send/build.d.ts +7 -1
  11. package/dist/keysign/send/build.d.ts.map +1 -1
  12. package/dist/keysign/send/build.js +3 -1
  13. package/dist/keysign/send/build.js.map +1 -1
  14. package/dist/keysign/signingInputs/resolvers/cosmos/index.d.ts +11 -0
  15. package/dist/keysign/signingInputs/resolvers/cosmos/index.d.ts.map +1 -1
  16. package/dist/keysign/signingInputs/resolvers/cosmos/index.js +4 -1
  17. package/dist/keysign/signingInputs/resolvers/cosmos/index.js.map +1 -1
  18. package/dist/keysign/signingInputs/resolvers/ton/index.d.ts.map +1 -1
  19. package/dist/keysign/signingInputs/resolvers/ton/index.js +5 -4
  20. package/dist/keysign/signingInputs/resolvers/ton/index.js.map +1 -1
  21. package/dist/keysign/signingInputs/resolvers/ton/jetton.d.ts +6 -0
  22. package/dist/keysign/signingInputs/resolvers/ton/jetton.d.ts.map +1 -1
  23. package/dist/keysign/signingInputs/resolvers/ton/jetton.js +15 -3
  24. package/dist/keysign/signingInputs/resolvers/ton/jetton.js.map +1 -1
  25. package/dist/keysign/signingInputs/resolvers/ton/native.d.ts +31 -2
  26. package/dist/keysign/signingInputs/resolvers/ton/native.d.ts.map +1 -1
  27. package/dist/keysign/signingInputs/resolvers/ton/native.js +34 -10
  28. package/dist/keysign/signingInputs/resolvers/ton/native.js.map +1 -1
  29. package/dist/keysign/swap/build.d.ts +3 -1
  30. package/dist/keysign/swap/build.d.ts.map +1 -1
  31. package/dist/keysign/swap/build.js +111 -3
  32. package/dist/keysign/swap/build.js.map +1 -1
  33. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts +4 -384
  34. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.d.ts.map +1 -1
  35. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js +5 -76
  36. package/dist/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb.js.map +1 -1
  37. package/package.json +3 -3
@@ -39,22 +39,46 @@ export const tonAmountToBytes = (amount) => {
39
39
  }
40
40
  return Buffer.from(numberToEvenHex(value), 'hex');
41
41
  };
42
- export const buildNativeTonTransfer = ({ keysignPayload, bounceable, sendMaxAmount, }) => {
43
- const mode = (sendMaxAmount
44
- ? TW.TheOpenNetwork.Proto.SendMode.ATTACH_ALL_CONTRACT_BALANCE
45
- : TW.TheOpenNetwork.Proto.SendMode.PAY_FEES_SEPARATELY) |
46
- TW.TheOpenNetwork.Proto.SendMode.IGNORE_ACTION_PHASE_ERRORS;
47
- const amount = sendMaxAmount ? 0n : keysignPayload.toAmount;
42
+ /**
43
+ * Send mode for every app-initiated TON transfer.
44
+ *
45
+ * `PAY_FEES_SEPARATELY` (+1) charges forwarding fees to the wallet balance instead of
46
+ * deducting them from the transferred value, so the recipient gets the amount we showed.
47
+ *
48
+ * `IGNORE_ACTION_PHASE_ERRORS` (+2) is deliberately absent. With it set, a wallet contract
49
+ * that cannot carry out its outgoing transfer skips the action instead of failing: the
50
+ * transaction lands un-aborted with the seqno consumed and nothing moved, which on chain is
51
+ * indistinguishable from a successful send. Without it the transfer fails visibly and the
52
+ * user's funds stay put.
53
+ *
54
+ * The mode is part of the signing preimage: every co-signing device derives the hash from
55
+ * this payload, so changing it here breaks keysign with any client that has not changed too.
56
+ */
57
+ export const tonSendMode = TW.TheOpenNetwork.Proto.SendMode.PAY_FEES_SEPARATELY;
58
+ /**
59
+ * Builds the single WalletCore transfer for an app-initiated native TON send.
60
+ *
61
+ * Always signs `keysignPayload.toAmount` under `tonSendMode`, including for a MAX send.
62
+ * The alternative — `ATTACH_ALL_CONTRACT_BALANCE` with `amount = 0` — hands the wallet
63
+ * contract a sweep it resolves at execution time, so the transaction moves whatever the
64
+ * balance happens to be when it lands rather than the number the user approved. A MAX
65
+ * send is just `balance - fee` as an ordinary amount, and that fee is the reserve the
66
+ * send mode then draws on.
67
+ */
68
+ export const buildNativeTonTransfer = ({ keysignPayload, bounceable, }) => {
48
69
  return TW.TheOpenNetwork.Proto.Transfer.create({
49
70
  dest: keysignPayload.toAddress,
50
- amount: tonAmountToBytes(amount),
71
+ amount: tonAmountToBytes(keysignPayload.toAmount),
51
72
  bounceable,
52
73
  comment: toSafeComment(keysignPayload.memo || ''),
53
- mode,
74
+ mode: tonSendMode,
54
75
  });
55
76
  };
77
+ /**
78
+ * Builds a transfer for one message of a dApp-supplied `signTon` request. The
79
+ * message carries its own payload/stateInit, so no comment is attached here.
80
+ */
56
81
  export const buildNativeTonTransferFromMessage = ({ to, amount, payload = '', stateInit, bounceable, }) => {
57
- const mode = TW.TheOpenNetwork.Proto.SendMode.PAY_FEES_SEPARATELY | TW.TheOpenNetwork.Proto.SendMode.IGNORE_ACTION_PHASE_ERRORS;
58
82
  return TW.TheOpenNetwork.Proto.Transfer.create({
59
83
  dest: to,
60
84
  amount: tonAmountToBytes(amount),
@@ -62,7 +86,7 @@ export const buildNativeTonTransferFromMessage = ({ to, amount, payload = '', st
62
86
  comment: '',
63
87
  customPayload: payload || undefined,
64
88
  stateInit: stateInit || undefined,
65
- mode,
89
+ mode: tonSendMode,
66
90
  });
67
91
  };
68
92
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ton/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAgB7C,wFAAwF;AACxF,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,MAAM,sBAAsB,GAAG,oBAAoB,kBAAkB,gEAAgE,CAAA;AAErI,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACvD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAQ,EAAE;IACvD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,kBAAkB,eAAe,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/F,CAAC;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,OAAO,CAAA;AACvC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AACtC,MAAM,mBAAmB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAuB,EAAU,EAAE;IAClE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9F,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,CAAC,gBAAgB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;YACnD,CAAC,gBAAgB,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,CAAC,EACrG,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChG,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,cAAc,EACd,UAAU,EACV,aAAa,GACe,EAAoC,EAAE;IAClE,MAAM,IAAI,GACR,CAAC,aAAa;QACZ,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,2BAA2B;QAC9D,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzD,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAA;IAE7D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAA;IAE3D,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,cAAc,CAAC,SAAS;QAC9B,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAChC,UAAU;QACV,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;QACjD,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,EAChD,EAAE,EACF,MAAM,EACN,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,UAAU,GAC6B,EAAoC,EAAE;IAC7E,MAAM,IAAI,GACR,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAA;IAEpH,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAChC,UAAU;QACV,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,OAAO,IAAI,SAAS;QACnC,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ton/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAe7C,wFAAwF;AACxF,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,MAAM,sBAAsB,GAAG,oBAAoB,kBAAkB,gEAAgE,CAAA;AAErI,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACvD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAQ,EAAE;IACvD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,kBAAkB,eAAe,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/F,CAAC;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,OAAO,CAAA;AACvC,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AACtC,MAAM,mBAAmB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAuB,EAAU,EAAE;IAClE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9F,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,CAAC,gBAAgB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;YACnD,CAAC,gBAAgB,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,CAAC,EACrG,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChG,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAA;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,cAAc,EACd,UAAU,GACkB,EAAoC,EAAE;IAClE,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,cAAc,CAAC,SAAS;QAC9B,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjD,UAAU;QACV,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;QACjD,IAAI,EAAE,WAAW;KAClB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,EAChD,EAAE,EACF,MAAM,EACN,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,UAAU,GAC6B,EAAoC,EAAE;IAC7E,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAChC,UAAU;QACV,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,OAAO,IAAI,SAAS;QACnC,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,IAAI,EAAE,WAAW;KAClB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -7,6 +7,8 @@ import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
7
7
  export type BuildSwapKeysignPayloadInput = {
8
8
  fromCoin: AccountCoin;
9
9
  toCoin: AccountCoin;
10
+ /** Effective output recipient. Defaults to `toCoin.address` for legacy callers. */
11
+ recipient?: string;
10
12
  amount: string | number;
11
13
  swapQuote: SwapQuote;
12
14
  vaultId: string;
@@ -33,5 +35,5 @@ export type BuildSwapKeysignPayloadInput = {
33
35
  * UTXO signing (via `getUtxoSigningInputs`) relies on this invariant — it reads
34
36
  * `keysignPayload.toAddress` directly for the `general` swap arm.
35
37
  */
36
- export declare const buildSwapKeysignPayload: ({ fromCoin, toCoin, amount, swapQuote, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, gasLimitOverride, }: BuildSwapKeysignPayloadInput) => Promise<KeysignPayload>;
38
+ export declare const buildSwapKeysignPayload: ({ fromCoin, toCoin, recipient, amount, swapQuote, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, gasLimitOverride, }: BuildSwapKeysignPayloadInput) => Promise<KeysignPayload>;
37
39
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
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;AAQnE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAU1D,OAAO,EAAE,cAAc,EAAwB,MAAM,iEAAiE,CAAA;AAItH,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;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AA8ED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAU,oIAY3C,4BAA4B,4BAwR9B,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AASnE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAU1D,OAAO,EAAE,cAAc,EAAwB,MAAM,iEAAiE,CAAA;AAQtH,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,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,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;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAgJD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAU,+IAa3C,4BAA4B,4BA0U9B,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { create } from '@bufbuild/protobuf';
3
+ import { fromBech32 } from '@cosmjs/encoding';
3
4
  import { buildSignBitcoinFromPsbt } from '@vultisig/core-chain/chains/utxo/tx/buildSignBitcoinFromPsbt';
4
5
  import { fromChainAmountDisplay } from '@vultisig/core-chain/amount/fromChainAmountExact';
5
6
  import { toChainAmount } from '@vultisig/core-chain/amount/toChainAmount';
@@ -10,6 +11,7 @@ import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
10
11
  import { areEqualCoins } from '@vultisig/core-chain/coin/Coin';
11
12
  import { COW_VAULT_RELAYER_ADDRESS } from '@vultisig/core-chain/swap/general/cowswap/config';
12
13
  import { encodeCowSwapKeysignData } from '@vultisig/core-chain/swap/general/cowswap/keysign/cowSwapKeysignData';
14
+ import { rujiTradeRuneBruneMarketContract } from '@vultisig/core-chain/swap/general/ruji/config';
13
15
  import { getSwapDestinationAddress } from '@vultisig/core-chain/swap/keysign/getSwapDestinationAddress';
14
16
  import { nativeSwapQuoteToSwapPayload } from '@vultisig/core-mpc/swap/native/utils/nativeSwapQuoteToSwapPayload';
15
17
  import { getChainSpecific } from '@vultisig/core-mpc/keysign/chainSpecific';
@@ -22,9 +24,67 @@ import { OneInchQuoteSchema, OneInchSwapPayloadSchema, OneInchTransactionSchema,
22
24
  import { Erc20ApprovePayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/erc20_approve_payload_pb';
23
25
  import { KeysignPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
24
26
  import { SwapKitSwapPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/swapkit_swap_payload_pb';
25
- import { SignSuiSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb';
27
+ import { TransactionType } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
28
+ import { SignSuiSchema, WasmExecuteContractPayloadSchema, } from '@vultisig/core-mpc/types/vultisig/keysign/v1/wasm_execute_contract_payload_pb';
26
29
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
27
30
  import { Psbt } from 'bitcoinjs-lib';
31
+ const getThorAddressIdentity = (address) => {
32
+ try {
33
+ const decoded = fromBech32(address.trim());
34
+ if (decoded.prefix.toLowerCase() !== 'thor' || (decoded.data.length !== 20 && decoded.data.length !== 32)) {
35
+ return undefined;
36
+ }
37
+ return Buffer.from(decoded.data).toString('hex');
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ };
43
+ const areEqualThorAddresses = (left, right) => {
44
+ const leftIdentity = getThorAddressIdentity(left);
45
+ return leftIdentity !== undefined && leftIdentity === getThorAddressIdentity(right);
46
+ };
47
+ const getRujiTradeFundAmount = (tx, fromCoin, effectiveRecipient) => {
48
+ const expectedDenom = fromCoin.chain === Chain.THORChain && fromCoin.id === undefined && fromCoin.ticker.toUpperCase() === 'RUNE'
49
+ ? 'rune'
50
+ : fromCoin.chain === Chain.THORChain && fromCoin.id?.toLowerCase() === 'x/brune'
51
+ ? 'x/brune'
52
+ : undefined;
53
+ if (!expectedDenom) {
54
+ throw new Error('RUJI Trade CosmWasm swaps require a THORChain RUNE or bRUNE source coin.');
55
+ }
56
+ if (!areEqualThorAddresses(tx.sender, fromCoin.address)) {
57
+ throw new Error('RUJI Trade CosmWasm sender does not match the source account.');
58
+ }
59
+ if (!tx.contract.trim() || !tx.executeMsg.trim()) {
60
+ throw new Error('RUJI Trade CosmWasm route is missing its contract or execute message.');
61
+ }
62
+ if (!areEqualThorAddresses(tx.contract, rujiTradeRuneBruneMarketContract)) {
63
+ throw new Error('RUJI Trade CosmWasm route targets an untrusted RUNE ↔ bRUNE FIN contract.');
64
+ }
65
+ if (tx.funds.length !== 1 || tx.funds[0].denom.toLowerCase() !== expectedDenom) {
66
+ throw new Error(`RUJI Trade CosmWasm route must attach exactly one ${expectedDenom} fund.`);
67
+ }
68
+ if (!/^\d+$/.test(tx.funds[0].amount) || BigInt(tx.funds[0].amount) <= 0n) {
69
+ throw new Error('RUJI Trade CosmWasm route contains an invalid fund amount.');
70
+ }
71
+ let executeMsg;
72
+ try {
73
+ executeMsg = JSON.parse(tx.executeMsg);
74
+ }
75
+ catch {
76
+ throw new Error('RUJI Trade CosmWasm route contains an invalid execute message.');
77
+ }
78
+ const min = executeMsg?.swap?.min;
79
+ if (typeof min?.min_return !== 'string' ||
80
+ !/^\d+$/.test(min.min_return) ||
81
+ BigInt(min.min_return) <= 0n ||
82
+ typeof min.to !== 'string' ||
83
+ !areEqualThorAddresses(min.to, effectiveRecipient)) {
84
+ throw new Error('RUJI Trade CosmWasm route must contain a guarded FIN swap execute message.');
85
+ }
86
+ return BigInt(tx.funds[0].amount);
87
+ };
28
88
  const isSwapKitBitcoinPsbt = (fromCoin, transfer) => fromCoin.chain === Chain.Bitcoin && transfer.txType?.toUpperCase() === 'PSBT';
29
89
  const getSwapKitBitcoinSignData = (fromCoin, transfer) => {
30
90
  if (!isSwapKitBitcoinPsbt(fromCoin, transfer)) {
@@ -98,17 +158,41 @@ const getSwapKitSignData = (fromCoin, transfer) => {
98
158
  * UTXO signing (via `getUtxoSigningInputs`) relies on this invariant — it reads
99
159
  * `keysignPayload.toAddress` directly for the `general` swap arm.
100
160
  */
101
- export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQuote, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, gasLimitOverride, }) => {
161
+ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, recipient, amount, swapQuote, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, gasLimitOverride, }) => {
102
162
  const transferTx = matchRecordUnion(swapQuote.quote, {
103
163
  native: () => undefined,
104
164
  general: ({ tx }) => matchRecordUnion(tx, {
105
165
  evm: () => undefined,
106
166
  solana: () => undefined,
107
167
  transfer: tx => tx,
168
+ cosmosWasm: () => undefined,
108
169
  cowswap_order: () => undefined,
109
170
  }),
110
171
  });
111
- const chainAmount = transferTx?.amount ?? toChainAmount(amount, fromCoin.decimals);
172
+ const cosmosWasmTx = matchRecordUnion(swapQuote.quote, {
173
+ native: () => undefined,
174
+ general: ({ provider, tx }) => {
175
+ const result = matchRecordUnion(tx, {
176
+ evm: () => undefined,
177
+ solana: () => undefined,
178
+ transfer: () => undefined,
179
+ cosmosWasm: tx => tx,
180
+ cowswap_order: () => undefined,
181
+ });
182
+ if ((provider === 'ruji') !== !!result) {
183
+ throw new Error('RUJI Trade quotes must use the CosmWasm transaction route.');
184
+ }
185
+ return result;
186
+ },
187
+ });
188
+ const cosmosWasmAmount = cosmosWasmTx
189
+ ? getRujiTradeFundAmount(cosmosWasmTx, fromCoin, recipient ?? toCoin.address)
190
+ : undefined;
191
+ const requestedChainAmount = toChainAmount(amount, fromCoin.decimals);
192
+ if (cosmosWasmAmount !== undefined && cosmosWasmAmount !== requestedChainAmount) {
193
+ throw new Error('RUJI Trade CosmWasm fund amount does not match the requested swap amount.');
194
+ }
195
+ const chainAmount = transferTx?.amount ?? cosmosWasmAmount ?? requestedChainAmount;
112
196
  const fromCoinHexPublicKey = Buffer.from(fromPublicKey.data()).toString('hex');
113
197
  const toCoinHexPublicKey = Buffer.from(toPublicKey.data()).toString('hex');
114
198
  const thirdPartyGasLimitEstimation = matchRecordUnion(swapQuote.quote, {
@@ -117,6 +201,7 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
117
201
  evm: ({ gasLimit }) => gasLimit,
118
202
  solana: () => undefined,
119
203
  transfer: () => undefined,
204
+ cosmosWasm: () => undefined,
120
205
  cowswap_order: () => undefined,
121
206
  }),
122
207
  });
@@ -142,9 +227,21 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
142
227
  evm: () => undefined,
143
228
  solana: () => undefined,
144
229
  transfer: ({ memo }) => memo,
230
+ cosmosWasm: () => undefined,
145
231
  cowswap_order: () => undefined,
146
232
  }),
147
233
  }),
234
+ contractPayload: cosmosWasmTx
235
+ ? {
236
+ case: 'wasmExecuteContractPayload',
237
+ value: create(WasmExecuteContractPayloadSchema, {
238
+ senderAddress: cosmosWasmTx.sender,
239
+ contractAddress: cosmosWasmTx.contract,
240
+ executeMsg: cosmosWasmTx.executeMsg,
241
+ coins: cosmosWasmTx.funds,
242
+ }),
243
+ }
244
+ : undefined,
148
245
  });
149
246
  keysignPayload.swapPayload = matchRecordUnion(swapQuote.quote, {
150
247
  general: quote => {
@@ -152,6 +249,7 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
152
249
  evm: () => undefined,
153
250
  solana: () => undefined,
154
251
  transfer: tx => tx,
252
+ cosmosWasm: () => undefined,
155
253
  cowswap_order: () => undefined,
156
254
  });
157
255
  if (quote.provider === 'swapkit' && transfer) {
@@ -221,6 +319,15 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
221
319
  gas: 0n,
222
320
  swapFee: '',
223
321
  }),
322
+ cosmosWasm: ({ sender, contract, executeMsg, funds }) => ({
323
+ from: sender,
324
+ to: contract,
325
+ data: executeMsg,
326
+ value: funds[0]?.amount ?? '',
327
+ gasPrice: '',
328
+ gas: 0n,
329
+ swapFee: '',
330
+ }),
224
331
  // CowSwap orders are settled off-chain by solvers — there is no on-chain
225
332
  // calldata to sign. Instead we serialize the order (everything needed to
226
333
  // rebuild the EIP-712 digest and submit it) into `data`, keyed by the
@@ -301,6 +408,7 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
301
408
  keysignPayload,
302
409
  walletCore,
303
410
  thirdPartyGasLimitEstimation,
411
+ transactionType: cosmosWasmTx ? TransactionType.GENERIC_CONTRACT : undefined,
304
412
  isDeposit: matchRecordUnion(swapQuote.quote, {
305
413
  native: ({ swapChain }) => areEqualCoins(fromCoin, chainFeeCoin[swapChain]),
306
414
  general: () => false,
@@ -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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"}