@vultisig/core-mpc 1.2.16 → 1.2.18
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.
- package/CHANGELOG.md +14 -0
- package/dist/keysign/chainSpecific/resolvers/evm.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/evm.js +15 -3
- package/dist/keysign/chainSpecific/resolvers/evm.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/utxo.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/utxo.js +10 -1
- package/dist/keysign/signingInputs/resolvers/utxo.js.map +1 -1
- package/dist/keysign/swap/build.d.ts +11 -0
- package/dist/keysign/swap/build.d.ts.map +1 -1
- package/dist/keysign/swap/build.js +35 -11
- package/dist/keysign/swap/build.js.map +1 -1
- package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +1 -1
- package/dist/swap/utils/getSwapTrackingUrl.js +51 -0
- package/dist/swap/utils/getSwapTrackingUrl.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @vultisig/core-mpc
|
|
2
2
|
|
|
3
|
+
## 1.2.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`4c9454e`](https://github.com/vultisig/vultisig-sdk/commit/4c9454eca99f43a2ce572732c3d6fcc74c99e89e)]:
|
|
8
|
+
- @vultisig/core-chain@2.2.3
|
|
9
|
+
|
|
10
|
+
## 1.2.17
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`fa95600`](https://github.com/vultisig/vultisig-sdk/commit/fa95600887cb8ca603e8ddcb9c8558eff2d0ea6b)]:
|
|
15
|
+
- @vultisig/core-chain@2.2.2
|
|
16
|
+
|
|
3
17
|
## 1.2.16
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,kBAAkB,CAsD5E,CAAA"}
|
|
@@ -9,9 +9,21 @@ export const getEvmChainSpecific = async ({ keysignPayload, feeSettings, thirdPa
|
|
|
9
9
|
const coin = getKeysignCoin(keysignPayload);
|
|
10
10
|
const { chain, address } = coin;
|
|
11
11
|
const client = getEvmClient(chain);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
// Use the `pending` block tag so mempool txs are counted. Without this,
|
|
13
|
+
// back-to-back dApp transactions (e.g. CCTP v2 approve() followed
|
|
14
|
+
// immediately by depositForBurn()) get the same nonce because the first
|
|
15
|
+
// tx hasn't been mined yet. Fall back to `latest` for chains that don't
|
|
16
|
+
// support the pending tag cleanly (zkSync Era, Hyperliquid, some alt-EVMs).
|
|
17
|
+
const getNonce = async () => {
|
|
18
|
+
const params = { address: address };
|
|
19
|
+
try {
|
|
20
|
+
return await client.getTransactionCount({ ...params, blockTag: 'pending' });
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return client.getTransactionCount({ ...params, blockTag: 'latest' });
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const nonce = BigInt(await getNonce());
|
|
15
27
|
const getData = () => {
|
|
16
28
|
const swapPayload = getKeysignSwapPayload(keysignPayload);
|
|
17
29
|
if (swapPayload && 'general' in swapPayload) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAA;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qEAAqE,CAAA;AAE5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,mBAAmB,GAAiD,KAAK,EAAE,EACtF,cAAc,EACd,WAAW,EACX,4BAA4B,GAC7B,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAW,cAAc,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAElC,MAAM,
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAA;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qEAAqE,CAAA;AAE5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,mBAAmB,GAAiD,KAAK,EAAE,EACtF,cAAc,EACd,WAAW,EACX,4BAA4B,GAC7B,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAW,cAAc,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAElC,wEAAwE;IACxE,kEAAkE;IAClE,wEAAwE;IACxE,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAwB,EAAE,CAAA;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACtE,CAAC;IACH,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;IAEtC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;QACzD,IAAI,WAAW,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAA;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC,IAAI,CAAA;IAC5B,CAAC,CAAA;IAED,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,MAAM,cAAc,CAAC;QAC7E,cAAc;QACd,WAAW;QACX,4BAA4B;QAC5B,eAAe,EAAE,iBAAiB,CAAC;YACjC,IAAI;YACJ,IAAI,EAAE,OAAO,EAAE;SAChB,CAAC;KACH,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,aAAa,GAAG,oBAAoB,CAAA;IAEzD,OAAO,MAAM,CAAC,sBAAsB,EAAE;QACpC,KAAK;QACL,eAAe,EAAE,YAAY,CAAC,QAAQ,EAAE;QACxC,WAAW,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QAC5C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,MAAM,CA0F9D,CAAA"}
|
|
@@ -36,8 +36,17 @@ export const getUtxoSigningInputs = ({ keysignPayload, walletCore }) => {
|
|
|
36
36
|
const destinationAddress = swapPayload
|
|
37
37
|
? matchRecordUnion(swapPayload, {
|
|
38
38
|
native: swapPayload => swapPayload.vaultAddress,
|
|
39
|
+
// Deposit-channel SwapKit routes: toAddress is the provider deposit-channel address.
|
|
40
|
+
// See JSDoc on buildSwapKeysignPayload for the invariant that guarantees it is set.
|
|
39
41
|
general: () => {
|
|
40
|
-
|
|
42
|
+
const toAddress = keysignPayload.toAddress;
|
|
43
|
+
if (!toAddress) {
|
|
44
|
+
throw new Error('UTXO general swap: destination address is missing from keysign payload');
|
|
45
|
+
}
|
|
46
|
+
if (!walletCore.AnyAddress.isValid(toAddress, coinType)) {
|
|
47
|
+
throw new Error(`UTXO general swap: destination address "${toAddress}" is not valid for this chain`);
|
|
48
|
+
}
|
|
49
|
+
return toAddress;
|
|
41
50
|
},
|
|
42
51
|
})
|
|
43
52
|
: keysignPayload.toAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG7D,MAAM,CAAC,MAAM,oBAAoB,GAAkC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE;IACpG,MAAM,KAAK,GAAG,eAAe,CAAS,cAAc,CAAC,CAAA;IAErD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;IAEhH,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU;QACV,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAExF,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE;QACnC,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,8BAA8B,EAAE;QACvD,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE;KAC7C,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE;QAC/B,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;QACnF,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;KAC/E,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAA;IAElG,MAAM,kBAAkB,GAAG,WAAW;QACpC,CAAC,CAAC,gBAAgB,CAA6B,WAAW,EAAE;YACxD,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY;YAC/C,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,16 @@ export type BuildSwapKeysignPayloadInput = {
|
|
|
16
16
|
libType: KeysignLibType;
|
|
17
17
|
walletCore: WalletCore;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Builds a KeysignPayload for a swap transaction.
|
|
21
|
+
*
|
|
22
|
+
* Contract: `keysignPayload.toAddress` is always the correct signing destination:
|
|
23
|
+
* - EVM/Solana swaps: set to the router or swap contract address
|
|
24
|
+
* - Deposit-channel (transfer) swaps: set to the provider deposit channel address
|
|
25
|
+
* (from `GeneralSwapTx.transfer.to` via `getSwapDestinationAddress`)
|
|
26
|
+
*
|
|
27
|
+
* UTXO signing (via `getUtxoSigningInputs`) relies on this invariant — it reads
|
|
28
|
+
* `keysignPayload.toAddress` directly for the `general` swap arm.
|
|
29
|
+
*/
|
|
19
30
|
export declare const buildSwapKeysignPayload: ({ fromCoin, toCoin, amount, swapQuote, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, }: BuildSwapKeysignPayloadInput) => Promise<KeysignPayload>;
|
|
20
31
|
//# 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":"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;AAEtH,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,eAAO,MAAM,uBAAuB,GAAU,kHAW3C,4BAA4B,
|
|
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;AAEtH,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,4BA4L9B,CAAA"}
|
|
@@ -17,6 +17,17 @@ import { OneInchQuoteSchema, OneInchSwapPayloadSchema, OneInchTransactionSchema,
|
|
|
17
17
|
import { Erc20ApprovePayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/erc20_approve_payload_pb';
|
|
18
18
|
import { KeysignPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
|
|
19
19
|
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
20
|
+
/**
|
|
21
|
+
* Builds a KeysignPayload for a swap transaction.
|
|
22
|
+
*
|
|
23
|
+
* Contract: `keysignPayload.toAddress` is always the correct signing destination:
|
|
24
|
+
* - EVM/Solana swaps: set to the router or swap contract address
|
|
25
|
+
* - Deposit-channel (transfer) swaps: set to the provider deposit channel address
|
|
26
|
+
* (from `GeneralSwapTx.transfer.to` via `getSwapDestinationAddress`)
|
|
27
|
+
*
|
|
28
|
+
* UTXO signing (via `getUtxoSigningInputs`) relies on this invariant — it reads
|
|
29
|
+
* `keysignPayload.toAddress` directly for the `general` swap arm.
|
|
30
|
+
*/
|
|
20
31
|
export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQuote, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, }) => {
|
|
21
32
|
const transferTx = matchRecordUnion(swapQuote.quote, {
|
|
22
33
|
native: () => undefined,
|
|
@@ -59,14 +70,6 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
|
|
|
59
70
|
});
|
|
60
71
|
keysignPayload.swapPayload = matchRecordUnion(swapQuote.quote, {
|
|
61
72
|
general: quote => {
|
|
62
|
-
const transferSwapPayload = matchRecordUnion(quote.tx, {
|
|
63
|
-
evm: () => undefined,
|
|
64
|
-
solana: () => undefined,
|
|
65
|
-
transfer: () => ({ case: undefined }),
|
|
66
|
-
});
|
|
67
|
-
if (transferSwapPayload) {
|
|
68
|
-
return transferSwapPayload;
|
|
69
|
-
}
|
|
70
73
|
const txMsg = matchRecordUnion(quote.tx, {
|
|
71
74
|
evm: ({ from, to, data, value }) => {
|
|
72
75
|
return {
|
|
@@ -86,9 +89,30 @@ export const buildSwapKeysignPayload = async ({ fromCoin, toCoin, amount, swapQu
|
|
|
86
89
|
gasPrice: '',
|
|
87
90
|
gas: BigInt(0),
|
|
88
91
|
}),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
+
// Deposit-channel routes (UTXO/Ripple/Tron/Ton sources via Chainflip, NEAR Intents, etc.)
|
|
93
|
+
// send funds to a provider-controlled deposit address. The actual signing uses
|
|
94
|
+
// keysignPayload.toAddress + keysignPayload.memo (set at the KeysignPayload root below),
|
|
95
|
+
// NOT the fields inside this OneInchTransaction stub.
|
|
96
|
+
//
|
|
97
|
+
// Why OneInchTransaction? It is the only SwapPayload variant that cross-platform clients
|
|
98
|
+
// already know how to display in SwapVerify (fromAmount / toAmountDecimal / provider).
|
|
99
|
+
// A dedicated TransferDisplayPayload proto type would require a coordinated proto schema
|
|
100
|
+
// change across all native clients, so we intentionally reuse OneInchTransaction here.
|
|
101
|
+
//
|
|
102
|
+
// Invariant that MUST hold for this to be safe:
|
|
103
|
+
// - gas = 0n, gasPrice = '', value = '', data = '' (non-EVM signing ignores them)
|
|
104
|
+
// - from/to are purely informational for the SwapVerify display layer
|
|
105
|
+
// If OneInchTransactionSchema ever adds EVM-only required fields or validation, this
|
|
106
|
+
// arm must be revisited to either (a) introduce a dedicated payload type, or (b) keep
|
|
107
|
+
// sending zero/empty values and ensure the schema still accepts them.
|
|
108
|
+
transfer: ({ to }) => ({
|
|
109
|
+
from: fromCoin.address,
|
|
110
|
+
to,
|
|
111
|
+
data: '',
|
|
112
|
+
value: '',
|
|
113
|
+
gasPrice: '',
|
|
114
|
+
gas: 0n,
|
|
115
|
+
}),
|
|
92
116
|
});
|
|
93
117
|
const tx = create(OneInchTransactionSchema, txMsg);
|
|
94
118
|
const swapPayload = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6DAA6D,CAAA;AACvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,mEAAmE,CAAA;AAEhH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAA;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EAExB,wBAAwB,GACzB,MAAM,oEAAoE,CAAA;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAA;AACjH,OAAO,EAAkB,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAmBvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAC5C,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,EACP,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,GACmB,EAAE,EAAE;IACjC,MAAM,UAAU,GAAG,gBAAgB,CAA8C,SAAS,CAAC,KAAK,EAAE;QAChG,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;QACvB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAClB,gBAAgB,CAA4C,EAAE,EAAE;YAC9D,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;YACpB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;YACvB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;SACnB,CAAC;KACL,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAElF,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9E,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE1E,MAAM,4BAA4B,GAAG,gBAAgB,CAAsC,SAAS,CAAC,KAAK,EAAE;QAC1G,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;QACvB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAClB,gBAAgB,CAAoC,EAAE,EAAE;YACtD,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ;YAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;YACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;SAC1B,CAAC;KACL,CAAC,CAAA;IAEF,IAAI,cAAc,GAAG,MAAM,CAAC,oBAAoB,EAAE;QAChD,IAAI,EAAE,UAAU,CAAC;YACf,GAAG,QAAQ;YACX,YAAY,EAAE,oBAAoB;SACnC,CAAC;QACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE;QAChC,iBAAiB,EAAE,YAAY;QAC/B,mBAAmB,EAAE,OAAO;QAC5B,OAAO;QACP,SAAS,EAAE,yBAAyB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACpE,QAAQ,EAAE,MAAM,kBAAkB,CAAC,QAAQ,CAAC;QAC5C,IAAI,EAAE,gBAAgB,CAAsC,SAAS,CAAC,KAAK,EAAE;YAC3E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;YAC1B,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAClB,gBAAgB,CAAoC,EAAE,EAAE;gBACtD,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;gBACpB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;gBACvB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;aAC7B,CAAC;SACL,CAAC;KACH,CAAC,CAAA;IAEF,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAiD,SAAS,CAAC,KAAK,EAAE;QAC7G,OAAO,EAAE,KAAK,CAAC,EAAE;YACf,MAAM,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAMlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAgCD,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MAgDlG,CAAA"}
|
|
@@ -2,6 +2,35 @@ import { Chain } from '@vultisig/core-chain/Chain';
|
|
|
2
2
|
import { getBlockExplorerUrl } from '@vultisig/core-chain/utils/getBlockExplorerUrl';
|
|
3
3
|
import { stripHexPrefix } from '@vultisig/lib-utils/hex/stripHexPrefix';
|
|
4
4
|
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
5
|
+
// Chain identifiers accepted by https://track.swapkit.dev/?tx=<hash>&chainId=<id>
|
|
6
|
+
// These differ from the SwapKit API chain-prefix map (ETH, ARB, ...) used in getSwapKitQuote.ts.
|
|
7
|
+
// Source: https://docs.swapkit.dev/swapkit-api/providers-request-supported-chains-by-a-swap-provider#chain-ids-and-corresponding-names
|
|
8
|
+
//
|
|
9
|
+
// UTXO byte-order contract: track.swapkit.dev accepts UTXO tx hashes in their
|
|
10
|
+
// natural txid representation (the byte-reversed, human-readable form that block
|
|
11
|
+
// explorers display). Our signing flow produces hashes in that same display form,
|
|
12
|
+
// so no additional byte reversal is needed here.
|
|
13
|
+
// The `satisfies Record<SwapKitSourceChain, string>` below enforces compile-time
|
|
14
|
+
// exhaustiveness -- adding a chain to SwapKitEnabledChains without updating this
|
|
15
|
+
// map is a type error.
|
|
16
|
+
const swapKitTrackerChainId = {
|
|
17
|
+
[Chain.Ethereum]: '1',
|
|
18
|
+
[Chain.Arbitrum]: '42161',
|
|
19
|
+
[Chain.Avalanche]: '43114',
|
|
20
|
+
[Chain.Base]: '8453',
|
|
21
|
+
[Chain.BSC]: '56',
|
|
22
|
+
[Chain.Optimism]: '10',
|
|
23
|
+
[Chain.Polygon]: '137',
|
|
24
|
+
[Chain.Solana]: 'solana',
|
|
25
|
+
[Chain.Bitcoin]: 'bitcoin',
|
|
26
|
+
[Chain.BitcoinCash]: 'bitcoincash',
|
|
27
|
+
[Chain.Dogecoin]: 'dogecoin',
|
|
28
|
+
[Chain.Litecoin]: 'litecoin',
|
|
29
|
+
[Chain.Ripple]: 'ripple',
|
|
30
|
+
[Chain.Ton]: 'ton',
|
|
31
|
+
[Chain.Tron]: '728126428',
|
|
32
|
+
[Chain.Zcash]: 'zcash',
|
|
33
|
+
};
|
|
5
34
|
export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
|
|
6
35
|
return matchRecordUnion(swapPayload, {
|
|
7
36
|
native: ({ chain }) => {
|
|
@@ -18,6 +47,28 @@ export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
|
|
|
18
47
|
if (provider === 'li.fi') {
|
|
19
48
|
return `https://scan.li.fi/tx/${txHash}`;
|
|
20
49
|
}
|
|
50
|
+
if (provider === 'swapkit') {
|
|
51
|
+
const chainId = swapKitTrackerChainId[sourceChain];
|
|
52
|
+
if (chainId) {
|
|
53
|
+
// Guard: TON hashes are hex-encoded (see packages/core/chain/tx/hash/resolvers/ton.ts).
|
|
54
|
+
// A `0x`-prefixed TON hash indicates a misconfigured upstream -- stripHexPrefix would
|
|
55
|
+
// silently corrupt it by stripping the first two hex chars, producing a wrong hash.
|
|
56
|
+
if (sourceChain === Chain.Ton && txHash.startsWith('0x')) {
|
|
57
|
+
throw new Error(`TON tx hash must not have a 0x prefix (got: ${txHash.slice(0, 10)}...)`);
|
|
58
|
+
}
|
|
59
|
+
// Bare hash (no `0x` prefix) -- `stripHexPrefix` is a no-op when the
|
|
60
|
+
// hash is already prefix-free (UTXO chains, Ripple, TON, etc.) and strips
|
|
61
|
+
// `0x` from EVM hashes to match track.swapkit.dev's expected format.
|
|
62
|
+
return `https://track.swapkit.dev/?tx=${encodeURIComponent(stripHexPrefix(txHash))}&chainId=${chainId}`;
|
|
63
|
+
}
|
|
64
|
+
// SwapKitSourceChain extended without updating swapKitTrackerChainId
|
|
65
|
+
// -> silent fallback to block explorer would degrade tracking
|
|
66
|
+
// without surfacing the gap. Warn so the drift shows up in logs +
|
|
67
|
+
// greppable CI output.
|
|
68
|
+
// TODO: wire to telemetry event 'swapkit_tracker_chain_missing' so
|
|
69
|
+
// mapping drift is caught in production monitoring, not just CI logs.
|
|
70
|
+
console.warn(`[getSwapTrackingUrl] SwapKit tracker chainId missing for ${sourceChain} — falling back to source-chain block explorer. Add a swapKitTrackerChainId entry.`);
|
|
71
|
+
}
|
|
21
72
|
return getBlockExplorerUrl({
|
|
22
73
|
chain: sourceChain,
|
|
23
74
|
entity: 'tx',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;
|
|
1
|
+
{"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.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.
|
|
3
|
+
"version": "1.2.18",
|
|
4
4
|
"description": "MPC, keysign, and vault types shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -974,7 +974,7 @@
|
|
|
974
974
|
"@noble/hashes": "^1.8.0",
|
|
975
975
|
"@solana/web3.js": "^1.98.4",
|
|
976
976
|
"@trustwallet/wallet-core": "^4.6.9",
|
|
977
|
-
"@vultisig/core-chain": "2.2.
|
|
977
|
+
"@vultisig/core-chain": "2.2.3",
|
|
978
978
|
"@vultisig/core-config": "0.9.1",
|
|
979
979
|
"@vultisig/lib-dkls": "0.9.0",
|
|
980
980
|
"@vultisig/lib-mldsa": "0.9.0",
|