@vultisig/core-chain 2.10.0 → 2.10.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.
- package/CHANGELOG.md +6 -0
- package/dist/swap/general/cowswap/api/getCowSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/cowswap/api/getCowSwapQuote.js +11 -2
- package/dist/swap/general/cowswap/api/getCowSwapQuote.js.map +1 -1
- package/dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.d.ts +13 -0
- package/dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.d.ts.map +1 -0
- package/dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.js +28 -0
- package/dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.js.map +1 -0
- package/dist/swap/general/cowswap/keysign/cowSwapKeysignData.d.ts +34 -0
- package/dist/swap/general/cowswap/keysign/cowSwapKeysignData.d.ts.map +1 -0
- package/dist/swap/general/cowswap/keysign/cowSwapKeysignData.js +33 -0
- package/dist/swap/general/cowswap/keysign/cowSwapKeysignData.js.map +1 -0
- package/dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.d.ts +112 -0
- package/dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.d.ts.map +1 -0
- package/dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.js +67 -0
- package/dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.js.map +1 -0
- package/dist/swap/quote/findSwapQuote.d.ts +7 -10
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +76 -87
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/package.json +16 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.10.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#617](https://github.com/vultisig/vultisig-sdk/pull/617) [`7145713`](https://github.com/vultisig/vultisig-sdk/commit/7145713992199f084d826f160cc20a4c445b14fb) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Select swap quotes with a 1% provider preference band instead of hard native priority.
|
|
8
|
+
|
|
3
9
|
## 2.10.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCowSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/api/getCowSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAGL,kBAAkB,EAEnB,MAAM,WAAW,CAAA;AAiBlB,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,GACb,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"getCowSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/api/getCowSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAGL,kBAAkB,EAEnB,MAAM,WAAW,CAAA;AAiBlB,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,GACb,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+DlD"}
|
|
@@ -23,6 +23,15 @@ export async function getCowSwapQuote({ sellToken, buyToken, sellAmount, from, r
|
|
|
23
23
|
});
|
|
24
24
|
const { quote } = response;
|
|
25
25
|
const permitRequired = KNOWN_PERMIT_TOKENS[chainConfig.chainId]?.some(addr => addr.toLowerCase() === sellToken.toLowerCase());
|
|
26
|
+
// The CoW orderbook requires submitted orders to carry `feeAmount = 0` — the
|
|
27
|
+
// network/solver fee is folded into the price (taken from order surplus), not
|
|
28
|
+
// charged as a discrete field. A non-zero fee is rejected with
|
|
29
|
+
// `{"errorType":"NonZeroFee"}`. The quote returns the NET sellAmount plus a
|
|
30
|
+
// separate feeAmount, so we sell the GROSS amount (net + fee) with a zero fee:
|
|
31
|
+
// the solver recovers its cost from the surplus over `buyAmount`, which was
|
|
32
|
+
// quoted for the net amount. This value is signed AND submitted, so both stay
|
|
33
|
+
// consistent.
|
|
34
|
+
const grossSellAmount = (BigInt(quote.sellAmount) + BigInt(quote.feeAmount)).toString();
|
|
26
35
|
return {
|
|
27
36
|
dstAmount: quote.buyAmount,
|
|
28
37
|
provider: 'cowswap',
|
|
@@ -31,12 +40,12 @@ export async function getCowSwapQuote({ sellToken, buyToken, sellAmount, from, r
|
|
|
31
40
|
sellToken: quote.sellToken,
|
|
32
41
|
buyToken: quote.buyToken,
|
|
33
42
|
receiver,
|
|
34
|
-
sellAmount:
|
|
43
|
+
sellAmount: grossSellAmount,
|
|
35
44
|
buyAmount: quote.buyAmount,
|
|
36
45
|
validTo: quote.validTo,
|
|
37
46
|
appData,
|
|
38
47
|
appDataHash,
|
|
39
|
-
feeAmount:
|
|
48
|
+
feeAmount: '0',
|
|
40
49
|
kind: quote.kind,
|
|
41
50
|
partiallyFillable: quote.partiallyFillable,
|
|
42
51
|
sellTokenBalance: 'erc20',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCowSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/api/getCowSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAG7D,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EAErB,mBAAmB,GACpB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AA0B7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,GACS;IACrB,MAAM,GAAG,GAAG,YAAY,IAAI,6BAA6B,CAAA;IACzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;IAC/D,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAwB;QAChC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;QAChC,mBAAmB,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC1C,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;QACxB,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;QAChC,IAAI,EAAE,MAAM;QACZ,aAAa,EAAE,QAAQ;QACvB,iBAAiB,EAAE,KAAK;QACxB,OAAO;QACP,WAAW;KACZ,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA0B,GAAG,WAAW,CAAC,OAAO,eAAe,EAAE;QAC9F,MAAM,EAAE,MAAM;QACd,IAAI;KACL,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAE1B,MAAM,cAAc,GAAG,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,CACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CACvD,CAAA;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,SAAS;QACnB,EAAE,EAAE;YACF,aAAa,EAAE;gBACb,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ;gBACR,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"getCowSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/api/getCowSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAG7D,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EAErB,mBAAmB,GACpB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AA0B7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,GACS;IACrB,MAAM,GAAG,GAAG,YAAY,IAAI,6BAA6B,CAAA;IACzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;IAC/D,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAwB;QAChC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;QAChC,mBAAmB,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC1C,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;QACxB,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;QAChC,IAAI,EAAE,MAAM;QACZ,aAAa,EAAE,QAAQ;QACvB,iBAAiB,EAAE,KAAK;QACxB,OAAO;QACP,WAAW;KACZ,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA0B,GAAG,WAAW,CAAC,OAAO,eAAe,EAAE;QAC9F,MAAM,EAAE,MAAM;QACd,IAAI;KACL,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAE1B,MAAM,cAAc,GAAG,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,CACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CACvD,CAAA;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,+DAA+D;IAC/D,4EAA4E;IAC5E,+EAA+E;IAC/E,4EAA4E;IAC5E,8EAA8E;IAC9E,cAAc;IACd,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEvF,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,SAAS;QACnB,EAAE,EAAE;YACF,aAAa,EAAE;gBACb,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ;gBACR,UAAU,EAAE,eAAe;gBAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO;gBACP,WAAW;gBACX,SAAS,EAAE,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,gBAAgB,EAAE,OAAO;gBACzB,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
/**
|
|
3
|
+
* Link to a CowSwap order's page on CoW Explorer (keyed by the order UID).
|
|
4
|
+
*
|
|
5
|
+
* Used for the PENDING state, while the off-chain order is still being settled
|
|
6
|
+
* by solvers and there is no on-chain tx hash yet. Once the order is filled the
|
|
7
|
+
* consumer swaps this for the settlement tx's block-explorer link.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getCowSwapExplorerOrderUrl: ({ chain, uid }: {
|
|
10
|
+
chain: Chain;
|
|
11
|
+
uid: string;
|
|
12
|
+
}) => string;
|
|
13
|
+
//# sourceMappingURL=getCowSwapExplorerOrderUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCowSwapExplorerOrderUrl.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/cowswap/getCowSwapExplorerOrderUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AAW5D;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GAAI,gBAAgB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAG,MAU1F,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { EvmChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
// CoW Explorer network path segments. Mainnet has no segment; the rest are the
|
|
3
|
+
// slugs CoW Explorer routes on (https://explorer.cow.fi/<segment>/orders/<uid>).
|
|
4
|
+
const cowExplorerNetworkSegment = {
|
|
5
|
+
[EvmChain.Ethereum]: '',
|
|
6
|
+
[EvmChain.Arbitrum]: 'arb1',
|
|
7
|
+
[EvmChain.Base]: 'base',
|
|
8
|
+
[EvmChain.Avalanche]: 'avax',
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Link to a CowSwap order's page on CoW Explorer (keyed by the order UID).
|
|
12
|
+
*
|
|
13
|
+
* Used for the PENDING state, while the off-chain order is still being settled
|
|
14
|
+
* by solvers and there is no on-chain tx hash yet. Once the order is filled the
|
|
15
|
+
* consumer swaps this for the settlement tx's block-explorer link.
|
|
16
|
+
*/
|
|
17
|
+
export const getCowSwapExplorerOrderUrl = ({ chain, uid }) => {
|
|
18
|
+
const segment = cowExplorerNetworkSegment[chain];
|
|
19
|
+
// `undefined` (unsupported chain) is distinct from `''` (mainnet, no segment).
|
|
20
|
+
// Fail fast rather than silently aliasing an unknown chain to the Ethereum
|
|
21
|
+
// explorer route — CowSwap only ever routes on the chains mapped above.
|
|
22
|
+
if (segment === undefined) {
|
|
23
|
+
throw new Error(`CowSwap explorer URL is not supported for chain: ${chain}`);
|
|
24
|
+
}
|
|
25
|
+
const prefix = segment ? `/${segment}` : '';
|
|
26
|
+
return `https://explorer.cow.fi${prefix}/orders/${uid}`;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=getCowSwapExplorerOrderUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCowSwapExplorerOrderUrl.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/cowswap/getCowSwapExplorerOrderUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE5D,+EAA+E;AAC/E,iFAAiF;AACjF,MAAM,yBAAyB,GAAmC;IAChE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE;IACvB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAC3B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAiC,EAAU,EAAE;IAClG,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAChD,+EAA+E;IAC/E,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3C,OAAO,0BAA0B,MAAM,WAAW,GAAG,EAAE,CAAA;AACzD,CAAC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CowSwapOrder } from '../sign/buildCowSwapOrder.js';
|
|
2
|
+
/**
|
|
3
|
+
* Everything a consumer needs to (1) reconstruct the EIP-712 order digest to
|
|
4
|
+
* sign and (2) submit the signed order to the orderbook — carried inside the
|
|
5
|
+
* keysign payload so the off-chain CowSwap leg survives the round-trip through
|
|
6
|
+
* the MPC ceremony without a bespoke proto message.
|
|
7
|
+
*
|
|
8
|
+
* CowSwap orders are settled off-chain by solvers, so the keysign payload has
|
|
9
|
+
* no on-chain calldata to encode. Instead we serialize this into the
|
|
10
|
+
* `OneInchTransaction.data` field (provider `'cowswap'`) and the consumer
|
|
11
|
+
* decodes it after signing to call `submitCowSwapOrder`.
|
|
12
|
+
*/
|
|
13
|
+
export type CowSwapKeysignData = {
|
|
14
|
+
order: CowSwapOrder;
|
|
15
|
+
chainId: number;
|
|
16
|
+
apiBase: string;
|
|
17
|
+
/** The order owner / signer address (the vault's EVM address). */
|
|
18
|
+
from: string;
|
|
19
|
+
/** True when the sell token supports EIP-2612 permit (gasless approval). */
|
|
20
|
+
permitRequired?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/** Marker prefix so a consumer can cheaply distinguish CowSwap order data from
|
|
23
|
+
* the hex calldata that other general-swap providers put in the same field. */
|
|
24
|
+
export declare const cowSwapKeysignDataPrefix = "cowswap-order:";
|
|
25
|
+
/** Serialize CowSwap order data for transport in the keysign payload's
|
|
26
|
+
* `OneInchTransaction.data` field. */
|
|
27
|
+
export declare const encodeCowSwapKeysignData: (data: CowSwapKeysignData) => string;
|
|
28
|
+
/** Recover CowSwap order data from a keysign payload's `data` field. Returns
|
|
29
|
+
* `null` for non-CowSwap (hex calldata) or malformed payloads so callers can
|
|
30
|
+
* branch without throwing. */
|
|
31
|
+
export declare const decodeCowSwapKeysignData: (data: string) => CowSwapKeysignData | null;
|
|
32
|
+
/** Cheap discriminator for the consumer's keysign branch. */
|
|
33
|
+
export declare const isCowSwapKeysignData: (data: string) => boolean;
|
|
34
|
+
//# sourceMappingURL=cowSwapKeysignData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cowSwapKeysignData.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/keysign/cowSwapKeysignData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;+EAC+E;AAC/E,eAAO,MAAM,wBAAwB,mBAAmB,CAAA;AAExD;sCACsC;AACtC,eAAO,MAAM,wBAAwB,GAAI,MAAM,kBAAkB,KAAG,MACd,CAAA;AAEtD;;8BAE8B;AAC9B,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,kBAAkB,GAAG,IAuB5E,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,OAAoD,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
2
|
+
/** Marker prefix so a consumer can cheaply distinguish CowSwap order data from
|
|
3
|
+
* the hex calldata that other general-swap providers put in the same field. */
|
|
4
|
+
export const cowSwapKeysignDataPrefix = 'cowswap-order:';
|
|
5
|
+
/** Serialize CowSwap order data for transport in the keysign payload's
|
|
6
|
+
* `OneInchTransaction.data` field. */
|
|
7
|
+
export const encodeCowSwapKeysignData = (data) => `${cowSwapKeysignDataPrefix}${JSON.stringify(data)}`;
|
|
8
|
+
/** Recover CowSwap order data from a keysign payload's `data` field. Returns
|
|
9
|
+
* `null` for non-CowSwap (hex calldata) or malformed payloads so callers can
|
|
10
|
+
* branch without throwing. */
|
|
11
|
+
export const decodeCowSwapKeysignData = (data) => {
|
|
12
|
+
if (!data.startsWith(cowSwapKeysignDataPrefix)) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const json = data.slice(cowSwapKeysignDataPrefix.length);
|
|
16
|
+
const result = attempt(() => JSON.parse(json));
|
|
17
|
+
if (!('data' in result) || result.data == null || typeof result.data !== 'object') {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
// Validate the decoded shape before handing it past the decode boundary — a
|
|
21
|
+
// malformed payload (missing/wrong-typed fields) must not slip through and
|
|
22
|
+
// fail later at sign/submit time.
|
|
23
|
+
const parsed = result.data;
|
|
24
|
+
const isValid = typeof parsed.chainId === 'number' &&
|
|
25
|
+
typeof parsed.apiBase === 'string' &&
|
|
26
|
+
typeof parsed.from === 'string' &&
|
|
27
|
+
parsed.order != null &&
|
|
28
|
+
typeof parsed.order === 'object';
|
|
29
|
+
return isValid ? parsed : null;
|
|
30
|
+
};
|
|
31
|
+
/** Cheap discriminator for the consumer's keysign branch. */
|
|
32
|
+
export const isCowSwapKeysignData = (data) => data.startsWith(cowSwapKeysignDataPrefix);
|
|
33
|
+
//# sourceMappingURL=cowSwapKeysignData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cowSwapKeysignData.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/keysign/cowSwapKeysignData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAyBrD;+EAC+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAA;AAExD;sCACsC;AACtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAwB,EAAU,EAAE,CAC3E,GAAG,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAA;AAEtD;;8BAE8B;AAC9B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAA6B,EAAE;IAClF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC,CAAA;IACpE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;IAC1B,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,KAAK,IAAI,IAAI;QACpB,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAA;IAElC,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AAChC,CAAC,CAAA;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { CowSwapOrder } from './buildCowSwapOrder.js';
|
|
2
|
+
import { Eip712Domain } from './buildEip712Domain.js';
|
|
3
|
+
/**
|
|
4
|
+
* EIP-712 field descriptors for the CoW Protocol (GPv2) `Order` struct.
|
|
5
|
+
*
|
|
6
|
+
* This list — names, types AND order — is consensus-critical: it must match
|
|
7
|
+
* `GPv2Order.TYPE_HASH` byte-for-byte or the orderbook rejects the signature.
|
|
8
|
+
* The canonical definition lives in GPv2's `GPv2Order.sol`
|
|
9
|
+
* (`Order(address sellToken,address buyToken,address receiver,uint256 sellAmount,
|
|
10
|
+
* uint256 buyAmount,uint32 validTo,bytes32 appData,uint256 feeAmount,string kind,
|
|
11
|
+
* bool partiallyFillable,string sellTokenBalance,string buyTokenBalance)`).
|
|
12
|
+
*
|
|
13
|
+
* NOTE: `kind`, `sellTokenBalance`, `buyTokenBalance` are EIP-712 `string`
|
|
14
|
+
* fields (hashed as keccak256 of their utf-8 bytes), NOT enums — the
|
|
15
|
+
* `'sell' | 'buy'` / `'erc20'` values flow through verbatim.
|
|
16
|
+
*/
|
|
17
|
+
export declare const cowSwapOrderEip712Fields: readonly [{
|
|
18
|
+
readonly name: "sellToken";
|
|
19
|
+
readonly type: "address";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "buyToken";
|
|
22
|
+
readonly type: "address";
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "receiver";
|
|
25
|
+
readonly type: "address";
|
|
26
|
+
}, {
|
|
27
|
+
readonly name: "sellAmount";
|
|
28
|
+
readonly type: "uint256";
|
|
29
|
+
}, {
|
|
30
|
+
readonly name: "buyAmount";
|
|
31
|
+
readonly type: "uint256";
|
|
32
|
+
}, {
|
|
33
|
+
readonly name: "validTo";
|
|
34
|
+
readonly type: "uint32";
|
|
35
|
+
}, {
|
|
36
|
+
readonly name: "appData";
|
|
37
|
+
readonly type: "bytes32";
|
|
38
|
+
}, {
|
|
39
|
+
readonly name: "feeAmount";
|
|
40
|
+
readonly type: "uint256";
|
|
41
|
+
}, {
|
|
42
|
+
readonly name: "kind";
|
|
43
|
+
readonly type: "string";
|
|
44
|
+
}, {
|
|
45
|
+
readonly name: "partiallyFillable";
|
|
46
|
+
readonly type: "bool";
|
|
47
|
+
}, {
|
|
48
|
+
readonly name: "sellTokenBalance";
|
|
49
|
+
readonly type: "string";
|
|
50
|
+
}, {
|
|
51
|
+
readonly name: "buyTokenBalance";
|
|
52
|
+
readonly type: "string";
|
|
53
|
+
}];
|
|
54
|
+
declare const eip712DomainFields: readonly [{
|
|
55
|
+
readonly name: "name";
|
|
56
|
+
readonly type: "string";
|
|
57
|
+
}, {
|
|
58
|
+
readonly name: "version";
|
|
59
|
+
readonly type: "string";
|
|
60
|
+
}, {
|
|
61
|
+
readonly name: "chainId";
|
|
62
|
+
readonly type: "uint256";
|
|
63
|
+
}, {
|
|
64
|
+
readonly name: "verifyingContract";
|
|
65
|
+
readonly type: "address";
|
|
66
|
+
}];
|
|
67
|
+
/** The EIP-712 message body for a GPv2 `Order`. `appData` is the bytes32 hash
|
|
68
|
+
* of the appData JSON (NOT the JSON itself) — the orderbook re-derives and
|
|
69
|
+
* verifies it against the submitted `appData` string. */
|
|
70
|
+
export type CowSwapOrderEip712Message = {
|
|
71
|
+
sellToken: string;
|
|
72
|
+
buyToken: string;
|
|
73
|
+
receiver: string;
|
|
74
|
+
sellAmount: string;
|
|
75
|
+
buyAmount: string;
|
|
76
|
+
validTo: number;
|
|
77
|
+
appData: string;
|
|
78
|
+
feeAmount: string;
|
|
79
|
+
kind: string;
|
|
80
|
+
partiallyFillable: boolean;
|
|
81
|
+
sellTokenBalance: string;
|
|
82
|
+
buyTokenBalance: string;
|
|
83
|
+
};
|
|
84
|
+
/** Self-contained EIP-712 typed-data document, ready to JSON-stringify and feed
|
|
85
|
+
* to an `eth_signTypedData_v4` signer (the same shape WalletConnect / MetaMask
|
|
86
|
+
* accept). Includes `EIP712Domain` in `types` for spec-completeness; signers
|
|
87
|
+
* that build the domain separator separately simply omit it. */
|
|
88
|
+
export type CowSwapOrderTypedData = {
|
|
89
|
+
primaryType: 'Order';
|
|
90
|
+
domain: Eip712Domain;
|
|
91
|
+
types: {
|
|
92
|
+
EIP712Domain: typeof eip712DomainFields;
|
|
93
|
+
Order: typeof cowSwapOrderEip712Fields;
|
|
94
|
+
};
|
|
95
|
+
message: CowSwapOrderEip712Message;
|
|
96
|
+
};
|
|
97
|
+
type BuildCowSwapOrderTypedDataInput = {
|
|
98
|
+
order: CowSwapOrder;
|
|
99
|
+
chainId: number;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Build the `eth_signTypedData_v4` document for a CowSwap order.
|
|
103
|
+
*
|
|
104
|
+
* The resulting digest (EIP-712 hash of this document) is what the MPC ceremony
|
|
105
|
+
* signs; the 65-byte `r||s||v` signature is submitted to the orderbook alongside
|
|
106
|
+
* the order via `submitCowSwapOrder`. The order's `appDataHash` becomes the
|
|
107
|
+
* signed `appData` field — the orderbook verifies it matches the `appData`
|
|
108
|
+
* string in the submitted order.
|
|
109
|
+
*/
|
|
110
|
+
export declare const buildCowSwapOrderTypedData: ({ order, chainId, }: BuildCowSwapOrderTypedDataInput) => CowSwapOrderTypedData;
|
|
111
|
+
export {};
|
|
112
|
+
//# sourceMappingURL=buildCowSwapOrderTypedData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildCowSwapOrderTypedData.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/sign/buildCowSwapOrderTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAqB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa3B,CAAA;AAEV,QAAA,MAAM,kBAAkB;;;;;;;;;;;;EAKd,CAAA;AAEV;;yDAEyD;AACzD,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;gEAGgE;AAChE,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE;QACL,YAAY,EAAE,OAAO,kBAAkB,CAAA;QACvC,KAAK,EAAE,OAAO,wBAAwB,CAAA;KACvC,CAAA;IACD,OAAO,EAAE,yBAAyB,CAAA;CACnC,CAAA;AAED,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GAAI,qBAGxC,+BAA+B,KAAG,qBAqBnC,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { buildEip712Domain } from './buildEip712Domain.js';
|
|
2
|
+
/**
|
|
3
|
+
* EIP-712 field descriptors for the CoW Protocol (GPv2) `Order` struct.
|
|
4
|
+
*
|
|
5
|
+
* This list — names, types AND order — is consensus-critical: it must match
|
|
6
|
+
* `GPv2Order.TYPE_HASH` byte-for-byte or the orderbook rejects the signature.
|
|
7
|
+
* The canonical definition lives in GPv2's `GPv2Order.sol`
|
|
8
|
+
* (`Order(address sellToken,address buyToken,address receiver,uint256 sellAmount,
|
|
9
|
+
* uint256 buyAmount,uint32 validTo,bytes32 appData,uint256 feeAmount,string kind,
|
|
10
|
+
* bool partiallyFillable,string sellTokenBalance,string buyTokenBalance)`).
|
|
11
|
+
*
|
|
12
|
+
* NOTE: `kind`, `sellTokenBalance`, `buyTokenBalance` are EIP-712 `string`
|
|
13
|
+
* fields (hashed as keccak256 of their utf-8 bytes), NOT enums — the
|
|
14
|
+
* `'sell' | 'buy'` / `'erc20'` values flow through verbatim.
|
|
15
|
+
*/
|
|
16
|
+
export const cowSwapOrderEip712Fields = [
|
|
17
|
+
{ name: 'sellToken', type: 'address' },
|
|
18
|
+
{ name: 'buyToken', type: 'address' },
|
|
19
|
+
{ name: 'receiver', type: 'address' },
|
|
20
|
+
{ name: 'sellAmount', type: 'uint256' },
|
|
21
|
+
{ name: 'buyAmount', type: 'uint256' },
|
|
22
|
+
{ name: 'validTo', type: 'uint32' },
|
|
23
|
+
{ name: 'appData', type: 'bytes32' },
|
|
24
|
+
{ name: 'feeAmount', type: 'uint256' },
|
|
25
|
+
{ name: 'kind', type: 'string' },
|
|
26
|
+
{ name: 'partiallyFillable', type: 'bool' },
|
|
27
|
+
{ name: 'sellTokenBalance', type: 'string' },
|
|
28
|
+
{ name: 'buyTokenBalance', type: 'string' },
|
|
29
|
+
];
|
|
30
|
+
const eip712DomainFields = [
|
|
31
|
+
{ name: 'name', type: 'string' },
|
|
32
|
+
{ name: 'version', type: 'string' },
|
|
33
|
+
{ name: 'chainId', type: 'uint256' },
|
|
34
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
35
|
+
];
|
|
36
|
+
/**
|
|
37
|
+
* Build the `eth_signTypedData_v4` document for a CowSwap order.
|
|
38
|
+
*
|
|
39
|
+
* The resulting digest (EIP-712 hash of this document) is what the MPC ceremony
|
|
40
|
+
* signs; the 65-byte `r||s||v` signature is submitted to the orderbook alongside
|
|
41
|
+
* the order via `submitCowSwapOrder`. The order's `appDataHash` becomes the
|
|
42
|
+
* signed `appData` field — the orderbook verifies it matches the `appData`
|
|
43
|
+
* string in the submitted order.
|
|
44
|
+
*/
|
|
45
|
+
export const buildCowSwapOrderTypedData = ({ order, chainId, }) => ({
|
|
46
|
+
primaryType: 'Order',
|
|
47
|
+
domain: buildEip712Domain(chainId),
|
|
48
|
+
types: {
|
|
49
|
+
EIP712Domain: eip712DomainFields,
|
|
50
|
+
Order: cowSwapOrderEip712Fields,
|
|
51
|
+
},
|
|
52
|
+
message: {
|
|
53
|
+
sellToken: order.sellToken,
|
|
54
|
+
buyToken: order.buyToken,
|
|
55
|
+
receiver: order.receiver,
|
|
56
|
+
sellAmount: order.sellAmount,
|
|
57
|
+
buyAmount: order.buyAmount,
|
|
58
|
+
validTo: order.validTo,
|
|
59
|
+
appData: order.appDataHash,
|
|
60
|
+
feeAmount: order.feeAmount,
|
|
61
|
+
kind: order.kind,
|
|
62
|
+
partiallyFillable: order.partiallyFillable,
|
|
63
|
+
sellTokenBalance: order.sellTokenBalance,
|
|
64
|
+
buyTokenBalance: order.buyTokenBalance,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=buildCowSwapOrderTypedData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildCowSwapOrderTypedData.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/cowswap/sign/buildCowSwapOrderTypedData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,qBAAqB,CAAA;AAErE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE;CACnC,CAAA;AAEV,MAAM,kBAAkB,GAAG;IACzB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;CACtC,CAAA;AAuCV;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,KAAK,EACL,OAAO,GACyB,EAAyB,EAAE,CAAC,CAAC;IAC7D,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE;QACL,YAAY,EAAE,kBAAkB;QAChC,KAAK,EAAE,wBAAwB;KAChC;IACD,OAAO,EAAE;QACP,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,WAAW;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC;CACF,CAAC,CAAA"}
|
|
@@ -25,19 +25,16 @@ export type FindSwapQuoteInput = Record<TransferDirection, AccountCoin> & {
|
|
|
25
25
|
};
|
|
26
26
|
type SwapQuoteProviderName = 'CowSwap' | 'KyberSwap' | '1inch' | 'LiFi' | 'SwapKit' | 'THORChain' | 'MayaChain';
|
|
27
27
|
/**
|
|
28
|
-
* Declared preference order for
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* because they have hard priority over aggregators regardless of output.
|
|
34
|
-
*
|
|
35
|
-
* Order rationale: KyberSwap and 1inch typically surface the best on-chain
|
|
36
|
-
* liquidity for EVM-only swaps; LiFi covers the broader cross-chain matrix;
|
|
37
|
-
* SwapKit is the catch-all fallback. Adjust as data changes.
|
|
28
|
+
* Declared preference order for economically equivalent quotes. Quotes are
|
|
29
|
+
* first ranked by comparable net output across all providers. Providers within
|
|
30
|
+
* `SWAP_QUOTE_PREFERENCE_BAND_BPS` of the best output are then selected by this
|
|
31
|
+
* order, so users stay close to the best rate while near-ties prefer CowSwap,
|
|
32
|
+
* native routes, and SwapKit economics.
|
|
38
33
|
*
|
|
39
34
|
* @internal Exported for unit-test introspection only.
|
|
40
35
|
*/
|
|
36
|
+
export declare const providerPreferenceOrder: readonly SwapQuoteProviderName[];
|
|
37
|
+
/** @deprecated Use `providerPreferenceOrder`. */
|
|
41
38
|
export declare const aggregatorPreferenceOrder: readonly SwapQuoteProviderName[];
|
|
42
39
|
export declare const findSwapQuote: ({ from, to, amount, referral, vultDiscountTier, affiliateConfig, }: FindSwapQuoteInput) => Promise<SwapQuote>;
|
|
43
40
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAuB,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAM3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAE7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EAEL,sBAAsB,EACvB,MAAM,mEAAmE,CAAA;AAQ1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAA;AAe1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;8CAI8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,KAAK,CAAC,EAAE,4BAA4B,CAAA;IACpC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1C,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,KAAK,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"findSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAuB,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAM3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAE7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EAEL,sBAAsB,EACvB,MAAM,mEAAmE,CAAA;AAQ1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAA;AAe1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;8CAI8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,KAAK,CAAC,EAAE,4BAA4B,CAAA;IACpC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1C,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,KAAK,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAA;AAyB/G;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,qBAAqB,EAY1D,CAAA;AAEV,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,kCAA0B,CAAA;AA4FhE,eAAO,MAAM,aAAa,GAAU,oEAOjC,kBAAkB,KAAG,OAAO,CAAC,SAAS,CAsYxC,CAAA"}
|
|
@@ -23,34 +23,6 @@ import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
|
|
|
23
23
|
import { bigIntToNumber } from '@vultisig/lib-utils/bigint/bigIntToNumber';
|
|
24
24
|
import { isInError } from '@vultisig/lib-utils/error/isInError';
|
|
25
25
|
import { pick } from '@vultisig/lib-utils/record/pick';
|
|
26
|
-
/**
|
|
27
|
-
* Hard native priority: when any direct THORChain or MayaChain route is available,
|
|
28
|
-
* it is always preferred over any aggregator (SwapKit, LiFi, etc.) regardless of
|
|
29
|
-
* gross output. When both THOR and Maya succeed, the one with the higher comparable
|
|
30
|
-
* output wins; among aggregator-only results the normal output ranking applies.
|
|
31
|
-
*
|
|
32
|
-
* Rationale (paaao, 2026-05-22): for L1 swaps that native protocols serve directly,
|
|
33
|
-
* the protocol-aligned route is always preferred. Direct routes capture full
|
|
34
|
-
* vultisig affiliate revenue and avoid the aggregator fee skim; the protocol is
|
|
35
|
-
* the moat. Mirrors the priority-first-success pattern in vultisig-ios's
|
|
36
|
-
* `SwapService.fetchQuote` + `Coin+Swaps.swapProviders`.
|
|
37
|
-
*/
|
|
38
|
-
/**
|
|
39
|
-
* Native swap providers — direct on-chain protocols (no aggregator layer).
|
|
40
|
-
*
|
|
41
|
-
* Adding a new native protocol (e.g. Chainflip-direct in the future) requires:
|
|
42
|
-
* 1. Adding its name to `SwapQuoteProviderName` above
|
|
43
|
-
* 2. Adding it here so `isNativeProvider` recognises it for hard-priority
|
|
44
|
-
* selection in `selectBestEligibleQuote`
|
|
45
|
-
* 3. Wiring its fetcher into `getNativeFetchers`
|
|
46
|
-
*
|
|
47
|
-
* The `satisfies` clause gives compile-time safety against typos, but the
|
|
48
|
-
* semantic mapping (which providers count as "native") still lives in this
|
|
49
|
-
* file and must be kept aligned with the protocol's actual integration mode.
|
|
50
|
-
*/
|
|
51
|
-
const nativeProviderNames = ['THORChain', 'MayaChain'];
|
|
52
|
-
const nativeProviderNamesSet = new Set(nativeProviderNames);
|
|
53
|
-
const isNativeProvider = (name) => nativeProviderNamesSet.has(name);
|
|
54
26
|
const QUOTE_FETCH_TIMEOUT_MS = 30_000;
|
|
55
27
|
const withTimeout = (p, ms) => {
|
|
56
28
|
let timeoutId;
|
|
@@ -62,30 +34,38 @@ const withTimeout = (p, ms) => {
|
|
|
62
34
|
});
|
|
63
35
|
};
|
|
64
36
|
/**
|
|
65
|
-
* Declared preference order for
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* because they have hard priority over aggregators regardless of output.
|
|
71
|
-
*
|
|
72
|
-
* Order rationale: KyberSwap and 1inch typically surface the best on-chain
|
|
73
|
-
* liquidity for EVM-only swaps; LiFi covers the broader cross-chain matrix;
|
|
74
|
-
* SwapKit is the catch-all fallback. Adjust as data changes.
|
|
37
|
+
* Declared preference order for economically equivalent quotes. Quotes are
|
|
38
|
+
* first ranked by comparable net output across all providers. Providers within
|
|
39
|
+
* `SWAP_QUOTE_PREFERENCE_BAND_BPS` of the best output are then selected by this
|
|
40
|
+
* order, so users stay close to the best rate while near-ties prefer CowSwap,
|
|
41
|
+
* native routes, and SwapKit economics.
|
|
75
42
|
*
|
|
76
43
|
* @internal Exported for unit-test introspection only.
|
|
77
44
|
*/
|
|
78
|
-
export const
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
45
|
+
export const providerPreferenceOrder = [
|
|
46
|
+
// CowSwap is slotted FIRST: its solver-driven RFQ fills are MEV-protected and
|
|
47
|
+
// gas-less, so on an exact-output tie it is the preferred route. It only
|
|
48
|
+
// competes for same-chain ERC-20 EVM pairs (see fetcher registration below);
|
|
49
|
+
// for every other pair it simply isn't in the candidate set.
|
|
50
|
+
'CowSwap',
|
|
51
|
+
'THORChain',
|
|
52
|
+
'MayaChain',
|
|
53
|
+
'SwapKit',
|
|
82
54
|
'KyberSwap',
|
|
83
55
|
'1inch',
|
|
84
56
|
'LiFi',
|
|
85
|
-
'SwapKit',
|
|
86
57
|
];
|
|
87
|
-
|
|
88
|
-
const
|
|
58
|
+
/** @deprecated Use `providerPreferenceOrder`. */
|
|
59
|
+
export const aggregatorPreferenceOrder = providerPreferenceOrder;
|
|
60
|
+
const providerPreferenceIndex = new Map(providerPreferenceOrder.map((name, idx) => [name, idx]));
|
|
61
|
+
const getProviderPreferenceRank = (name) => providerPreferenceIndex.get(name) ?? Number.POSITIVE_INFINITY;
|
|
62
|
+
/**
|
|
63
|
+
* Tuning point for issue #605's banded routing rule. 100 bps = 1%.
|
|
64
|
+
* Adjust this when product wants a wider or narrower provider-preference band.
|
|
65
|
+
*/
|
|
66
|
+
const SWAP_QUOTE_PREFERENCE_BAND_BPS = 100n;
|
|
67
|
+
const BPS_DENOMINATOR = 10000n;
|
|
68
|
+
const isWithinPreferenceBand = (outputAmount, bestOutputAmount) => outputAmount * BPS_DENOMINATOR >= bestOutputAmount * (BPS_DENOMINATOR - SWAP_QUOTE_PREFERENCE_BAND_BPS);
|
|
89
69
|
/** Re-base an integer amount from `fromDecimals` fixed-point to `toDecimals`. */
|
|
90
70
|
function rebaseDecimals(value, fromDecimals, toDecimals) {
|
|
91
71
|
if (fromDecimals === toDecimals) {
|
|
@@ -117,40 +97,32 @@ function getComparableOutputAmount(q, to) {
|
|
|
117
97
|
return BigInt(q.quote.general.dstAmount);
|
|
118
98
|
}
|
|
119
99
|
function selectBestEligibleQuote(settled) {
|
|
120
|
-
|
|
121
|
-
let bestAggregator = null;
|
|
122
|
-
let bestAggregatorPreferenceRank = Number.POSITIVE_INFINITY;
|
|
100
|
+
const candidates = [];
|
|
123
101
|
for (let i = 0; i < settled.length; i++) {
|
|
124
102
|
const result = settled[i];
|
|
125
|
-
if (result.status
|
|
126
|
-
|
|
103
|
+
if (result.status === 'fulfilled') {
|
|
104
|
+
candidates.push(result.value);
|
|
127
105
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
106
|
+
}
|
|
107
|
+
if (candidates.length === 0) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
const bestOutputAmount = candidates.reduce((best, candidate) => (candidate.outputAmount > best ? candidate.outputAmount : best), candidates[0].outputAmount);
|
|
111
|
+
let selected = null;
|
|
112
|
+
let selectedPreferenceRank = Number.POSITIVE_INFINITY;
|
|
113
|
+
for (const candidate of candidates) {
|
|
114
|
+
if (!isWithinPreferenceBand(candidate.outputAmount, bestOutputAmount)) {
|
|
115
|
+
continue;
|
|
134
116
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const candidateRank = getAggregatorPreferenceRank(candidate.providerName);
|
|
142
|
-
if (bestAggregator === null ||
|
|
143
|
-
candidate.outputAmount > bestAggregator.outputAmount ||
|
|
144
|
-
(candidate.outputAmount === bestAggregator.outputAmount && candidateRank < bestAggregatorPreferenceRank)) {
|
|
145
|
-
bestAggregator = candidate;
|
|
146
|
-
bestAggregatorPreferenceRank = candidateRank;
|
|
147
|
-
}
|
|
117
|
+
const candidatePreferenceRank = getProviderPreferenceRank(candidate.providerName);
|
|
118
|
+
if (selected === null ||
|
|
119
|
+
candidatePreferenceRank < selectedPreferenceRank ||
|
|
120
|
+
(candidatePreferenceRank === selectedPreferenceRank && candidate.outputAmount > selected.outputAmount)) {
|
|
121
|
+
selected = candidate;
|
|
122
|
+
selectedPreferenceRank = candidatePreferenceRank;
|
|
148
123
|
}
|
|
149
124
|
}
|
|
150
|
-
|
|
151
|
-
// over any aggregator route. Mirrors vultisig-ios's priority-first-success
|
|
152
|
-
// pattern. No output comparison between native and aggregator.
|
|
153
|
-
return (bestNative ?? bestAggregator)?.quote ?? null;
|
|
125
|
+
return selected?.quote ?? null;
|
|
154
126
|
}
|
|
155
127
|
export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTier, affiliateConfig, }) => {
|
|
156
128
|
// Runtime guard: THORName affiliateFeeAddress must be lowercase.
|
|
@@ -193,19 +165,36 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
193
165
|
const fromChain = from.chain;
|
|
194
166
|
const toChain = to.chain;
|
|
195
167
|
const chainAmount = amount;
|
|
196
|
-
// CowSwap
|
|
197
|
-
//
|
|
198
|
-
// `
|
|
199
|
-
//
|
|
200
|
-
//
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
168
|
+
// CowSwap (Phase 2 — off-chain RFQ orders). Gated to same-chain ERC-20 →
|
|
169
|
+
// ERC-20 pairs on a CowSwap-supported EVM chain. Both sides must be ERC-20
|
|
170
|
+
// (`from.id` and `to.id` present): selling native ETH needs the GPv2
|
|
171
|
+
// eth-flow contract (out of scope here) and the off-chain order is settled
|
|
172
|
+
// by solvers against ERC-20 balances. The consumer signs the order's
|
|
173
|
+
// EIP-712 digest and submits it via `submitCowSwapOrder` — see
|
|
174
|
+
// `cowswap_order` handling in `buildSwapKeysignPayload`.
|
|
175
|
+
if (fromChain === toChain &&
|
|
176
|
+
isOneOf(fromChain, cowSwapSupportedChains) &&
|
|
177
|
+
from.id !== undefined &&
|
|
178
|
+
to.id !== undefined) {
|
|
179
|
+
const cowChainConfig = cowSwapChainConfig[fromChain];
|
|
180
|
+
const sellToken = from.id;
|
|
181
|
+
const buyToken = to.id;
|
|
182
|
+
result.push({
|
|
183
|
+
providerName: 'CowSwap',
|
|
184
|
+
fetch: async () => {
|
|
185
|
+
const general = await getCowSwapQuote({
|
|
186
|
+
sellToken,
|
|
187
|
+
buyToken,
|
|
188
|
+
sellAmount: chainAmount,
|
|
189
|
+
from: from.address,
|
|
190
|
+
receiver: from.address,
|
|
191
|
+
chainConfig: cowChainConfig,
|
|
192
|
+
affiliateBps,
|
|
193
|
+
});
|
|
194
|
+
return { quote: { general }, discounts: vultDiscount };
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
}
|
|
209
198
|
if (isOneOf(fromChain, kyberSwapEnabledChains) &&
|
|
210
199
|
isOneOf(toChain, kyberSwapEnabledChains) &&
|
|
211
200
|
fromChain === toChain) {
|
|
@@ -346,7 +335,7 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
346
335
|
// deterministic message selection regardless of `Promise.allSettled`
|
|
347
336
|
// resolution order. (#535 r3 — NeO preferably-blocking response.)
|
|
348
337
|
const belowMinimumProviderOrder = [
|
|
349
|
-
|
|
338
|
+
'CowSwap',
|
|
350
339
|
'KyberSwap',
|
|
351
340
|
'1inch',
|
|
352
341
|
'LiFi',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1290,6 +1290,16 @@
|
|
|
1290
1290
|
"import": "./dist/swap/general/cowswap/config.js",
|
|
1291
1291
|
"default": "./dist/swap/general/cowswap/config.js"
|
|
1292
1292
|
},
|
|
1293
|
+
"./swap/general/cowswap/getCowSwapExplorerOrderUrl": {
|
|
1294
|
+
"types": "./dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.d.ts",
|
|
1295
|
+
"import": "./dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.js",
|
|
1296
|
+
"default": "./dist/swap/general/cowswap/getCowSwapExplorerOrderUrl.js"
|
|
1297
|
+
},
|
|
1298
|
+
"./swap/general/cowswap/keysign/cowSwapKeysignData": {
|
|
1299
|
+
"types": "./dist/swap/general/cowswap/keysign/cowSwapKeysignData.d.ts",
|
|
1300
|
+
"import": "./dist/swap/general/cowswap/keysign/cowSwapKeysignData.js",
|
|
1301
|
+
"default": "./dist/swap/general/cowswap/keysign/cowSwapKeysignData.js"
|
|
1302
|
+
},
|
|
1293
1303
|
"./swap/general/cowswap/permit/buildEip2612Permit": {
|
|
1294
1304
|
"types": "./dist/swap/general/cowswap/permit/buildEip2612Permit.d.ts",
|
|
1295
1305
|
"import": "./dist/swap/general/cowswap/permit/buildEip2612Permit.js",
|
|
@@ -1300,6 +1310,11 @@
|
|
|
1300
1310
|
"import": "./dist/swap/general/cowswap/sign/buildCowSwapOrder.js",
|
|
1301
1311
|
"default": "./dist/swap/general/cowswap/sign/buildCowSwapOrder.js"
|
|
1302
1312
|
},
|
|
1313
|
+
"./swap/general/cowswap/sign/buildCowSwapOrderTypedData": {
|
|
1314
|
+
"types": "./dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.d.ts",
|
|
1315
|
+
"import": "./dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.js",
|
|
1316
|
+
"default": "./dist/swap/general/cowswap/sign/buildCowSwapOrderTypedData.js"
|
|
1317
|
+
},
|
|
1303
1318
|
"./swap/general/cowswap/sign/buildEip712Domain": {
|
|
1304
1319
|
"types": "./dist/swap/general/cowswap/sign/buildEip712Domain.d.ts",
|
|
1305
1320
|
"import": "./dist/swap/general/cowswap/sign/buildEip712Domain.js",
|