@vultisig/core-chain 2.16.5 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/dist/swap/general/kyber/api/quote.d.ts +3 -1
- package/dist/swap/general/kyber/api/quote.d.ts.map +1 -1
- package/dist/swap/general/kyber/api/quote.js +4 -1
- package/dist/swap/general/kyber/api/quote.js.map +1 -1
- package/dist/swap/general/kyber/api/route.d.ts +3 -1
- package/dist/swap/general/kyber/api/route.d.ts.map +1 -1
- package/dist/swap/general/kyber/api/route.js +2 -2
- package/dist/swap/general/kyber/api/route.js.map +1 -1
- package/dist/swap/general/kyber/api/tx.d.ts +3 -1
- package/dist/swap/general/kyber/api/tx.d.ts.map +1 -1
- package/dist/swap/general/kyber/api/tx.js +2 -2
- package/dist/swap/general/kyber/api/tx.js.map +1 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.d.ts +4 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.js +3 -4
- package/dist/swap/general/lifi/api/getLifiSwapQuote.js.map +1 -1
- package/dist/swap/general/oneInch/api/getOneInchSwapQuote.d.ts +3 -1
- package/dist/swap/general/oneInch/api/getOneInchSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/oneInch/api/getOneInchSwapQuote.js +2 -2
- package/dist/swap/general/oneInch/api/getOneInchSwapQuote.js.map +1 -1
- package/dist/swap/native/halts/getNativeSwapTradingHalt.d.ts +18 -0
- package/dist/swap/native/halts/getNativeSwapTradingHalt.d.ts.map +1 -0
- package/dist/swap/native/halts/getNativeSwapTradingHalt.js +73 -0
- package/dist/swap/native/halts/getNativeSwapTradingHalt.js.map +1 -0
- package/dist/swap/quote/findSwapQuote.d.ts +18 -1
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +104 -9
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/package.json +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.17.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#757](https://github.com/vultisig/vultisig-sdk/pull/757) [`0567316`](https://github.com/vultisig/vultisig-sdk/commit/056731699c9d1c9f16d9c9eb049e747c73f1c33d) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - feat(swap): support an external recipient for native + CowSwap swaps
|
|
8
|
+
|
|
9
|
+
`findSwapQuote` now accepts an optional `recipient` address. When set, the
|
|
10
|
+
swapped output is routed to that address via the native THORChain/MayaChain
|
|
11
|
+
memo `destination` and the CowSwap order `receiver`. Aggregators that would pay
|
|
12
|
+
the swap initiator (1inch, KyberSwap, LiFi, SwapKit) are skipped for
|
|
13
|
+
custom-recipient swaps so funds are never silently misrouted. When `recipient`
|
|
14
|
+
is omitted, routing and payout are unchanged.
|
|
15
|
+
|
|
16
|
+
Part of wiring the Advanced Swap settings (vultisig/vultisig-windows#4131);
|
|
17
|
+
external recipient for the remaining aggregators is a follow-up.
|
|
18
|
+
|
|
19
|
+
- [#757](https://github.com/vultisig/vultisig-sdk/pull/757) [`e240dae`](https://github.com/vultisig/vultisig-sdk/commit/e240dae5df253b544e688c3e41d3037ec30fbdc0) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - feat(swap): support a custom slippage tolerance in findSwapQuote
|
|
20
|
+
|
|
21
|
+
`findSwapQuote` now accepts an optional `slippageTolerance` (in percent, e.g.
|
|
22
|
+
`0.5` = 0.5%). It is forwarded to the general aggregators that accept a slippage
|
|
23
|
+
override, each converted to that provider's native unit: 1inch and SwapKit
|
|
24
|
+
(percent), KyberSwap (basis points), and LiFi (fraction). CowSwap (RFQ limit
|
|
25
|
+
order) and the native THORChain/MayaChain protocols use their own protection
|
|
26
|
+
and ignore it. When omitted, every provider keeps its existing default — no
|
|
27
|
+
behavior change.
|
|
28
|
+
|
|
29
|
+
Part of wiring the Advanced Swap settings (vultisig/vultisig-windows#4131).
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- [#757](https://github.com/vultisig/vultisig-sdk/pull/757) [`a3dbf1b`](https://github.com/vultisig/vultisig-sdk/commit/a3dbf1b55f0e83cacdefbbee3532a01d8f7ba3af) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - fix(swap): validate recipient and slippage overrides in findSwapQuote
|
|
34
|
+
|
|
35
|
+
`findSwapQuote` now trims the optional `recipient` and treats empty/whitespace
|
|
36
|
+
strings as no recipient, so a blank value no longer gates off initiator-paying
|
|
37
|
+
aggregators or gets forwarded as a native `destination` / CowSwap `receiver`.
|
|
38
|
+
It also rejects an invalid `slippageTolerance` (negative, `NaN`, or non-finite)
|
|
39
|
+
up front with a `SwapError` instead of letting the bad value propagate into
|
|
40
|
+
every provider call.
|
|
41
|
+
|
|
42
|
+
## 2.16.6
|
|
43
|
+
|
|
44
|
+
### Patch Changes
|
|
45
|
+
|
|
46
|
+
- [#711](https://github.com/vultisig/vultisig-sdk/pull/711) [`ea8afd2`](https://github.com/vultisig/vultisig-sdk/commit/ea8afd2d468380e1f5e36cae50ba9111c7b2c1bd) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Preflight THORChain native swap quotes against inbound halt flags before requesting a quote.
|
|
47
|
+
|
|
3
48
|
## 2.16.5
|
|
4
49
|
|
|
5
50
|
### Patch Changes
|
|
@@ -7,7 +7,9 @@ type Input = Record<TransferDirection, AccountCoin<KyberSwapEnabledChain>> & {
|
|
|
7
7
|
amount: bigint;
|
|
8
8
|
affiliateBps?: number;
|
|
9
9
|
kyberConfig?: KyberSwapBaseAffiliateConfig;
|
|
10
|
+
/** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to `kyberSwapSlippageTolerance`. */
|
|
11
|
+
slippageTolerance?: number;
|
|
10
12
|
};
|
|
11
|
-
export declare const getKyberSwapQuote: ({ from, to, amount, affiliateBps, kyberConfig, }: Input) => Promise<GeneralSwapQuote>;
|
|
13
|
+
export declare const getKyberSwapQuote: ({ from, to, amount, affiliateBps, kyberConfig, slippageTolerance, }: Input) => Promise<GeneralSwapQuote>;
|
|
12
14
|
export {};
|
|
13
15
|
//# sourceMappingURL=quote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/quote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAIxD,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/quote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAIxD,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAA;IAC1C,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,qEAOrC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CA4ClC,CAAA"}
|
|
@@ -2,13 +2,14 @@ import { attempt } from '@vultisig/lib-utils/attempt';
|
|
|
2
2
|
import { isInError } from '@vultisig/lib-utils/error/isInError';
|
|
3
3
|
import { getKyberSwapRoute } from './route.js';
|
|
4
4
|
import { getKyberSwapTx } from './tx.js';
|
|
5
|
-
export const getKyberSwapQuote = async ({ from, to, amount, affiliateBps, kyberConfig, }) => {
|
|
5
|
+
export const getKyberSwapQuote = async ({ from, to, amount, affiliateBps, kyberConfig, slippageTolerance, }) => {
|
|
6
6
|
const { routeSummary, routerAddress } = await getKyberSwapRoute({
|
|
7
7
|
from,
|
|
8
8
|
to,
|
|
9
9
|
amount,
|
|
10
10
|
affiliateBps,
|
|
11
11
|
kyberConfig,
|
|
12
|
+
slippageTolerance,
|
|
12
13
|
});
|
|
13
14
|
const tx = await attempt(getKyberSwapTx({
|
|
14
15
|
from,
|
|
@@ -19,6 +20,7 @@ export const getKyberSwapQuote = async ({ from, to, amount, affiliateBps, kyberC
|
|
|
19
20
|
enableGasEstimation: true,
|
|
20
21
|
affiliateBps,
|
|
21
22
|
kyberConfig,
|
|
23
|
+
slippageTolerance,
|
|
22
24
|
}));
|
|
23
25
|
if ('error' in tx) {
|
|
24
26
|
const { error } = tx;
|
|
@@ -32,6 +34,7 @@ export const getKyberSwapQuote = async ({ from, to, amount, affiliateBps, kyberC
|
|
|
32
34
|
enableGasEstimation: false,
|
|
33
35
|
affiliateBps,
|
|
34
36
|
kyberConfig,
|
|
37
|
+
slippageTolerance,
|
|
35
38
|
});
|
|
36
39
|
}
|
|
37
40
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/quote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAM/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"quote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/quote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAM/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAUrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,IAAI,EACJ,EAAE,EACF,MAAM,EACN,YAAY,EACZ,WAAW,EACX,iBAAiB,GACX,EAA6B,EAAE;IACrC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAiB,CAAC;QAC9D,IAAI;QACJ,EAAE;QACF,MAAM;QACN,YAAY;QACZ,WAAW;QACX,iBAAiB;KAClB,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,cAAc,CAAC;QACb,IAAI;QACJ,EAAE;QACF,YAAY;QACZ,aAAa;QACb,MAAM;QACN,mBAAmB,EAAE,IAAI;QACzB,YAAY;QACZ,WAAW;QACX,iBAAiB;KAClB,CAAC,CACH,CAAA;IAED,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;QACpB,IAAI,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACvC,OAAO,cAAc,CAAC;gBACpB,IAAI;gBACJ,EAAE;gBACF,YAAY;gBACZ,aAAa;gBACb,MAAM;gBACN,mBAAmB,EAAE,KAAK;gBAC1B,YAAY;gBACZ,WAAW;gBACX,iBAAiB;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;IAED,OAAO,EAAE,CAAC,IAAI,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -6,11 +6,13 @@ type Input = Record<TransferDirection, AccountCoin<KyberSwapEnabledChain>> & {
|
|
|
6
6
|
amount: bigint;
|
|
7
7
|
affiliateBps?: number;
|
|
8
8
|
kyberConfig?: KyberSwapBaseAffiliateConfig;
|
|
9
|
+
/** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to `kyberSwapSlippageTolerance`. */
|
|
10
|
+
slippageTolerance?: number;
|
|
9
11
|
};
|
|
10
12
|
type KyberSwapRoute = {
|
|
11
13
|
routeSummary: any;
|
|
12
14
|
routerAddress: string;
|
|
13
15
|
};
|
|
14
|
-
export declare const getKyberSwapRoute: ({ from, to, amount, affiliateBps, kyberConfig, }: Input) => Promise<KyberSwapRoute>;
|
|
16
|
+
export declare const getKyberSwapRoute: ({ from, to, amount, affiliateBps, kyberConfig, slippageTolerance, }: Input) => Promise<KyberSwapRoute>;
|
|
15
17
|
export {};
|
|
16
18
|
//# sourceMappingURL=route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAIL,4BAA4B,EAE7B,MAAM,WAAW,CAAA;AAGlB,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAIL,4BAA4B,EAE7B,MAAM,WAAW,CAAA;AAGlB,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAA;IAC1C,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAkBD,eAAO,MAAM,iBAAiB,GAAU,qEAOrC,KAAK,KAAG,OAAO,CAAC,cAAc,CAsBhC,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
|
3
3
|
import { evmNativeCoinAddress } from '../../../../chains/evm/config.js';
|
|
4
4
|
import { getKyberSwapAffiliateParams, kyberSwapAffiliateConfig, kyberSwapSlippageTolerance, } from '../config.js';
|
|
5
5
|
import { getKyberSwapBaseUrl } from './baseUrl.js';
|
|
6
|
-
export const getKyberSwapRoute = async ({ from, to, amount, affiliateBps, kyberConfig = kyberSwapAffiliateConfig, }) => {
|
|
6
|
+
export const getKyberSwapRoute = async ({ from, to, amount, affiliateBps, kyberConfig = kyberSwapAffiliateConfig, slippageTolerance = kyberSwapSlippageTolerance, }) => {
|
|
7
7
|
const [tokenIn, tokenOut] = [from, to].map(({ id }) => id || evmNativeCoinAddress);
|
|
8
8
|
const routeParams = {
|
|
9
9
|
tokenIn,
|
|
@@ -11,7 +11,7 @@ export const getKyberSwapRoute = async ({ from, to, amount, affiliateBps, kyberC
|
|
|
11
11
|
amountIn: amount.toString(),
|
|
12
12
|
saveGas: true,
|
|
13
13
|
gasInclude: true,
|
|
14
|
-
slippageTolerance
|
|
14
|
+
slippageTolerance,
|
|
15
15
|
...getKyberSwapAffiliateParams(affiliateBps, kyberConfig),
|
|
16
16
|
};
|
|
17
17
|
const routeUrl = addQueryParams(`${getKyberSwapBaseUrl(from.chain)}/routes`, routeParams);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EAGxB,0BAA0B,GAC3B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EAGxB,0BAA0B,GAC3B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AA+B/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,IAAI,EACJ,EAAE,EACF,MAAM,EACN,YAAY,EACZ,WAAW,GAAG,wBAAwB,EACtC,iBAAiB,GAAG,0BAA0B,GACxC,EAA2B,EAAE;IACnC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,oBAAoB,CAAC,CAAA;IAElF,MAAM,WAAW,GAAyB;QACxC,OAAO;QACP,QAAQ;QACR,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,iBAAiB;QACjB,GAAG,2BAA2B,CAAC,YAAY,EAAE,WAAW,CAAC;KAC1D,CAAA;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAEzF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAyB,QAAQ,EAAE;QAChE,OAAO,EAAE;YACP,aAAa,EAAE,WAAW,CAAC,MAAM;SAClC;KACF,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -10,7 +10,9 @@ type GetKyberSwapTxInput = Record<TransferDirection, AccountCoin<KyberSwapEnable
|
|
|
10
10
|
enableGasEstimation: boolean;
|
|
11
11
|
affiliateBps?: number;
|
|
12
12
|
kyberConfig?: KyberSwapBaseAffiliateConfig;
|
|
13
|
+
/** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to `kyberSwapSlippageTolerance`. */
|
|
14
|
+
slippageTolerance?: number;
|
|
13
15
|
};
|
|
14
|
-
export declare const getKyberSwapTx: ({ from, to, routeSummary, routerAddress, amount, enableGasEstimation, affiliateBps, kyberConfig, }: GetKyberSwapTxInput) => Promise<GeneralSwapQuote>;
|
|
16
|
+
export declare const getKyberSwapTx: ({ from, to, routeSummary, routerAddress, amount, enableGasEstimation, affiliateBps, kyberConfig, slippageTolerance, }: GetKyberSwapTxInput) => Promise<GeneralSwapQuote>;
|
|
15
17
|
export {};
|
|
16
18
|
//# sourceMappingURL=tx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/tx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAIL,4BAA4B,EAG7B,MAAM,WAAW,CAAA;AAGlB,KAAK,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;IACzF,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/tx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAIL,4BAA4B,EAG7B,MAAM,WAAW,CAAA;AAGlB,KAAK,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,GAAG;IACzF,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,4BAA4B,CAAA;IAC1C,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAsCD,eAAO,MAAM,cAAc,GAAU,uHAUlC,mBAAmB,KAAG,OAAO,CAAC,gBAAgB,CA4DhD,CAAA"}
|
|
@@ -19,12 +19,12 @@ const getKyberSwapAffiliateFee = ({ amountOut, to, affiliateBps, }) => {
|
|
|
19
19
|
amount: grossAmountOut - netAmountOut,
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
export const getKyberSwapTx = async ({ from, to, routeSummary, routerAddress, amount, enableGasEstimation, affiliateBps, kyberConfig = kyberSwapAffiliateConfig, }) => {
|
|
22
|
+
export const getKyberSwapTx = async ({ from, to, routeSummary, routerAddress, amount, enableGasEstimation, affiliateBps, kyberConfig = kyberSwapAffiliateConfig, slippageTolerance = kyberSwapSlippageTolerance, }) => {
|
|
23
23
|
const buildPayload = {
|
|
24
24
|
routeSummary,
|
|
25
25
|
sender: from.address,
|
|
26
26
|
recipient: from.address,
|
|
27
|
-
slippageTolerance
|
|
27
|
+
slippageTolerance,
|
|
28
28
|
deadline: Math.round(convertDuration(Date.now() + convertDuration(kyberSwapTxLifespan, 'min', 'ms'), 'ms', 's')),
|
|
29
29
|
enableGasEstimation,
|
|
30
30
|
...getKyberSwapAffiliateParams(affiliateBps, kyberConfig),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAI1E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAI5D,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,wBAAwB,EAExB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/kyber/api/tx.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,9 @@ type Input = Record<TransferDirection, AccountCoinKey<LifiSwapEnabledChain> & {
|
|
|
11
11
|
/** Consumer-supplied LI.FI integrator override. When omitted, falls back
|
|
12
12
|
* to the global `lifiConfig.integratorName` (vultisig-0 by default). */
|
|
13
13
|
lifiAffiliateConfig?: LifiAffiliateConfig;
|
|
14
|
+
/** Slippage tolerance as a fraction (e.g. 0.01 = 1%). When omitted, falls
|
|
15
|
+
* back to the stable/non-stable pair default. */
|
|
16
|
+
slippage?: number;
|
|
14
17
|
};
|
|
15
18
|
/** @internal exported for unit tests only */
|
|
16
19
|
export declare const STABLE_TICKERS: ReadonlySet<string>;
|
|
@@ -20,6 +23,6 @@ export declare const isStablePair: (from: {
|
|
|
20
23
|
}, to: {
|
|
21
24
|
ticker?: string;
|
|
22
25
|
}) => boolean;
|
|
23
|
-
export declare const getLifiSwapQuote: ({ amount, affiliateBps, lifiAffiliateConfig, ...transfer }: Input) => Promise<GeneralSwapQuote>;
|
|
26
|
+
export declare const getLifiSwapQuote: ({ amount, affiliateBps, lifiAffiliateConfig, slippage: slippageOverride, ...transfer }: Input) => Promise<GeneralSwapQuote>;
|
|
24
27
|
export {};
|
|
25
28
|
//# sourceMappingURL=getLifiSwapQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLifiSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,mBAAmB,EAGpB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AAKpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,oBAAoB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IACnG,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;4EACwE;IACxE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"getLifiSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,mBAAmB,EAGpB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAmB,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AAKpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,oBAAoB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IACnG,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;4EACwE;IACxE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;qDACiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAKD,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAa7C,CAAA;AAKF,6CAA6C;AAC7C,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OACxB,CAAA;AAkG1D,eAAO,MAAM,gBAAgB,GAAU,wFAMpC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CAiLlC,CAAA"}
|
|
@@ -122,14 +122,13 @@ const resolveSwapFeeChain = (chainId, fallback) => {
|
|
|
122
122
|
}
|
|
123
123
|
return resolved;
|
|
124
124
|
};
|
|
125
|
-
export const getLifiSwapQuote = async ({ amount, affiliateBps, lifiAffiliateConfig, ...transfer }) => {
|
|
125
|
+
export const getLifiSwapQuote = async ({ amount, affiliateBps, lifiAffiliateConfig, slippage: slippageOverride, ...transfer }) => {
|
|
126
126
|
ensureLifiConfigured();
|
|
127
127
|
const [fromChain, toChain] = [transfer.from, transfer.to].map(({ chain }) => lifiSwapChainId[chain]);
|
|
128
128
|
const [fromToken, toToken] = [transfer.from, transfer.to].map(({ id, chain }) => id ?? chainFeeCoin[chain].ticker);
|
|
129
129
|
const [fromAddress, toAddress] = [transfer.from, transfer.to].map(({ address }) => address);
|
|
130
|
-
const slippage =
|
|
131
|
-
? STABLE_PAIR_LIFI_SLIPPAGE_TOLERANCE
|
|
132
|
-
: DEFAULT_LIFI_SLIPPAGE_TOLERANCE;
|
|
130
|
+
const slippage = slippageOverride ??
|
|
131
|
+
(isStablePair(transfer.from, transfer.to) ? STABLE_PAIR_LIFI_SLIPPAGE_TOLERANCE : DEFAULT_LIFI_SLIPPAGE_TOLERANCE);
|
|
133
132
|
// Defensive: log when affiliate + slippage combined cost crosses the
|
|
134
133
|
// 3% ceiling. Today affiliateBps is typically 0 and slippage is 1%,
|
|
135
134
|
// so 100bps total — well under the ceiling — but a future bump to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLifiSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EACL,aAAa,EAEb,UAAU,EACV,SAAS,GACV,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,eAAe,EAAwB,MAAM,8DAA8D,CAAA;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAA;AAKtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"getLifiSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/lifi/api/getLifiSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,9 @@ type Input = {
|
|
|
9
9
|
amount: bigint;
|
|
10
10
|
affiliateBps?: number;
|
|
11
11
|
oneInchConfig?: OneInchAffiliateConfig;
|
|
12
|
+
/** Slippage tolerance in percent (e.g. 0.5 = 0.5%). Defaults to 0.5. */
|
|
13
|
+
slippage?: number;
|
|
12
14
|
};
|
|
13
|
-
export declare const getOneInchSwapQuote: ({ account, fromCoinId, toCoinId, amount, affiliateBps, oneInchConfig, }: Input) => Promise<GeneralSwapQuote>;
|
|
15
|
+
export declare const getOneInchSwapQuote: ({ account, fromCoinId, toCoinId, amount, affiliateBps, oneInchConfig, slippage, }: Input) => Promise<GeneralSwapQuote>;
|
|
14
16
|
export {};
|
|
15
17
|
//# sourceMappingURL=getOneInchSwapQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOneInchSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/oneInch/api/getOneInchSwapQuote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAErF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AAQzG,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"getOneInchSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/oneInch/api/getOneInchSwapQuote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAErF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AAQzG,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,sBAAsB,CAAA;IACtC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAID,eAAO,MAAM,mBAAmB,GAAU,mFAQvC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CAkClC,CAAA"}
|
|
@@ -7,7 +7,7 @@ import { addQueryParams } from '@vultisig/lib-utils/query/addQueryParams';
|
|
|
7
7
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
8
8
|
import { evmNativeCoinAddress } from '../../../../chains/evm/config.js';
|
|
9
9
|
const getBaseUrl = (chainId) => `${rootApiUrl}/1inch/swap/v6.0/${chainId}/swap`;
|
|
10
|
-
export const getOneInchSwapQuote = async ({ account, fromCoinId, toCoinId, amount, affiliateBps, oneInchConfig = oneInchAffiliateConfig, }) => {
|
|
10
|
+
export const getOneInchSwapQuote = async ({ account, fromCoinId, toCoinId, amount, affiliateBps, oneInchConfig = oneInchAffiliateConfig, slippage = 0.5, }) => {
|
|
11
11
|
const chain = account.chain;
|
|
12
12
|
const chainId = hexToNumber(getEvmChainId(chain));
|
|
13
13
|
const params = {
|
|
@@ -15,7 +15,7 @@ export const getOneInchSwapQuote = async ({ account, fromCoinId, toCoinId, amoun
|
|
|
15
15
|
dst: isFeeCoin({ id: toCoinId, chain: account.chain }) ? evmNativeCoinAddress : toCoinId,
|
|
16
16
|
amount: amount.toString(),
|
|
17
17
|
from: account.address,
|
|
18
|
-
slippage
|
|
18
|
+
slippage,
|
|
19
19
|
disableEstimate: true,
|
|
20
20
|
includeGas: true,
|
|
21
21
|
...(affiliateBps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOneInchSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/oneInch/api/getOneInchSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAGrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"getOneInchSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/oneInch/api/getOneInchSwapQuote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAGrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAepE,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,UAAU,oBAAoB,OAAO,OAAO,CAAA;AAEvF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,aAAa,GAAG,sBAAsB,EACtC,QAAQ,GAAG,GAAG,GACR,EAA6B,EAAE;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAiB,CAAA;IACvC,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAEjD,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU;QAC5F,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ;QACxF,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;QACzB,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,QAAQ;QACR,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,IAAI;QAChB,GAAG,CAAC,YAAY;YACd,CAAC,CAAC;gBACE,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,GAAG,EAAE,YAAY,GAAG,GAAG;aACxB;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;IAED,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;IAEvD,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,GAA6B,MAAM,QAAQ,CAA2B,GAAG,CAAC,CAAA;IAEjG,OAAO;QACL,SAAS;QACT,QAAQ,EAAE,OAAO;QACjB,EAAE,EAAE;YACF,GAAG,EAAE;gBACH,GAAG,EAAE;gBACL,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9C;SACF;KACF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getThorchainInboundAddress } from '@vultisig/core-chain/chains/cosmos/thor/getThorchainInboundAddress';
|
|
2
|
+
import { AccountCoin } from '@vultisig/core-chain/coin/AccountCoin';
|
|
3
|
+
import { NativeSwapChain } from '../NativeSwapChain.js';
|
|
4
|
+
export type NativeSwapTradingHalt = {
|
|
5
|
+
swapChain: NativeSwapChain;
|
|
6
|
+
haltedChains: string[];
|
|
7
|
+
reasons: string[];
|
|
8
|
+
};
|
|
9
|
+
type NativeSwapTradingHaltDeps = {
|
|
10
|
+
fetchInboundAddresses?: typeof getThorchainInboundAddress;
|
|
11
|
+
};
|
|
12
|
+
export declare const getNativeSwapTradingHalt: ({ from, to, swapChain, }: {
|
|
13
|
+
from: AccountCoin;
|
|
14
|
+
to: AccountCoin;
|
|
15
|
+
swapChain: NativeSwapChain;
|
|
16
|
+
}, deps?: NativeSwapTradingHaltDeps) => Promise<NativeSwapTradingHalt | null>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=getNativeSwapTradingHalt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNativeSwapTradingHalt.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/native/halts/getNativeSwapTradingHalt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oEAAoE,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAInE,OAAO,EAAE,eAAe,EAA+C,MAAM,oBAAoB,CAAA;AAEjG,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,eAAe,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,qBAAqB,CAAC,EAAE,OAAO,0BAA0B,CAAA;CAC1D,CAAA;AAkCD,eAAO,MAAM,wBAAwB,GACnC,0BAIG;IACD,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,SAAS,EAAE,eAAe,CAAA;CAC3B,EACD,OAAM,yBAA8B,KACnC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAoDtC,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { getThorchainInboundAddress } from '@vultisig/core-chain/chains/cosmos/thor/getThorchainInboundAddress';
|
|
3
|
+
import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
|
|
4
|
+
import { withoutDuplicates } from '@vultisig/lib-utils/array/withoutDuplicates';
|
|
5
|
+
import { nativeSwapChainIds, nativeSwapEnabledChains } from '../NativeSwapChain.js';
|
|
6
|
+
const CACHE_TTL_MS = 5_000;
|
|
7
|
+
let inboundCache;
|
|
8
|
+
const cached = (entry, load) => {
|
|
9
|
+
if (entry && Date.now() - entry.at < CACHE_TTL_MS) {
|
|
10
|
+
return entry;
|
|
11
|
+
}
|
|
12
|
+
return { at: Date.now(), value: load() };
|
|
13
|
+
};
|
|
14
|
+
const chainIdFor = (coin) => isOneOf(coin.chain, nativeSwapEnabledChains) ? nativeSwapChainIds[coin.chain] : null;
|
|
15
|
+
const getInboundAddresses = async (deps) => {
|
|
16
|
+
if (deps.fetchInboundAddresses) {
|
|
17
|
+
return deps.fetchInboundAddresses();
|
|
18
|
+
}
|
|
19
|
+
inboundCache = cached(inboundCache, () => {
|
|
20
|
+
const promise = getThorchainInboundAddress();
|
|
21
|
+
promise.catch(() => {
|
|
22
|
+
inboundCache = undefined;
|
|
23
|
+
});
|
|
24
|
+
return promise;
|
|
25
|
+
});
|
|
26
|
+
return inboundCache.value;
|
|
27
|
+
};
|
|
28
|
+
export const getNativeSwapTradingHalt = async ({ from, to, swapChain, }, deps = {}) => {
|
|
29
|
+
if (swapChain !== Chain.THORChain) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const chainIds = withoutDuplicates([chainIdFor(from), chainIdFor(to)].filter((id) => id !== null));
|
|
33
|
+
if (chainIds.length === 0) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const inbound = await getInboundAddresses(deps);
|
|
38
|
+
const byChain = new Map(inbound.map(info => [info.chain.toUpperCase(), info]));
|
|
39
|
+
const reasons = [];
|
|
40
|
+
const haltedChains = new Set();
|
|
41
|
+
if (inbound.some(info => info.global_trading_paused)) {
|
|
42
|
+
reasons.push('global trading paused');
|
|
43
|
+
haltedChains.add('GLOBAL');
|
|
44
|
+
}
|
|
45
|
+
for (const chainId of chainIds) {
|
|
46
|
+
const info = byChain.get(chainId.toUpperCase());
|
|
47
|
+
if (!info) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (info.halted) {
|
|
51
|
+
reasons.push(`${info.chain} chain is halted`);
|
|
52
|
+
haltedChains.add(info.chain);
|
|
53
|
+
}
|
|
54
|
+
if (info.chain_trading_paused) {
|
|
55
|
+
reasons.push(`${info.chain} chain trading paused`);
|
|
56
|
+
haltedChains.add(info.chain);
|
|
57
|
+
}
|
|
58
|
+
// Intentionally ignore chain_lp_actions_paused; LP action pauses do not block swaps.
|
|
59
|
+
}
|
|
60
|
+
if (reasons.length === 0) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
swapChain,
|
|
65
|
+
haltedChains: [...haltedChains],
|
|
66
|
+
reasons,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=getNativeSwapTradingHalt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNativeSwapTradingHalt.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/native/halts/getNativeSwapTradingHalt.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,23 @@ export type FindSwapQuoteInput = Record<TransferDirection, AccountCoin> & {
|
|
|
22
22
|
referral?: string;
|
|
23
23
|
vultDiscountTier?: VultDiscountTier | null;
|
|
24
24
|
affiliateConfig?: SwapAffiliateConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Optional external recipient for the swapped output. When omitted the swap
|
|
27
|
+
* pays out to the user's own derived address (existing behavior). When set,
|
|
28
|
+
* only providers that route the output to an explicit address are used —
|
|
29
|
+
* native THORChain/MayaChain (memo destination) and CowSwap (order
|
|
30
|
+
* `receiver`); aggregators that would silently pay the initiator are skipped
|
|
31
|
+
* so funds are never sent to the wrong address.
|
|
32
|
+
*/
|
|
33
|
+
recipient?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Optional slippage tolerance, expressed in PERCENT (e.g. `0.5` = 0.5%,
|
|
36
|
+
* `3` = 3%). When omitted each provider keeps its own default. Applied to the
|
|
37
|
+
* general aggregators that accept a slippage override (1inch, KyberSwap, LiFi,
|
|
38
|
+
* SwapKit); CowSwap (RFQ limit order) and the native THORChain/MayaChain
|
|
39
|
+
* protocols use their own protection mechanisms and ignore this value.
|
|
40
|
+
*/
|
|
41
|
+
slippageTolerance?: number;
|
|
25
42
|
};
|
|
26
43
|
type SwapQuoteProviderName = 'CowSwap' | 'KyberSwap' | '1inch' | 'LiFi' | 'SwapKit' | 'THORChain' | 'MayaChain';
|
|
27
44
|
/**
|
|
@@ -36,6 +53,6 @@ type SwapQuoteProviderName = 'CowSwap' | 'KyberSwap' | '1inch' | 'LiFi' | 'SwapK
|
|
|
36
53
|
export declare const providerPreferenceOrder: readonly SwapQuoteProviderName[];
|
|
37
54
|
/** @deprecated Use `providerPreferenceOrder`. */
|
|
38
55
|
export declare const aggregatorPreferenceOrder: readonly SwapQuoteProviderName[];
|
|
39
|
-
export declare const findSwapQuote: ({ from, to, amount, referral, vultDiscountTier, affiliateConfig, }: FindSwapQuoteInput) => Promise<SwapQuote>;
|
|
56
|
+
export declare const findSwapQuote: ({ from, to, amount, referral, vultDiscountTier, affiliateConfig, recipient, slippageTolerance, }: FindSwapQuoteInput) => Promise<SwapQuote>;
|
|
40
57
|
export {};
|
|
41
58
|
//# sourceMappingURL=findSwapQuote.d.ts.map
|
|
@@ -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;
|
|
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;AAoB1F,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;IACrC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,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;AA4LhE,eAAO,MAAM,aAAa,GAAU,kGASjC,kBAAkB,KAAG,OAAO,CAAC,SAAS,CAybxC,CAAA"}
|
|
@@ -13,8 +13,9 @@ import { getSwapKitQuote } from '@vultisig/core-chain/swap/general/swapkit/api/g
|
|
|
13
13
|
import { swapKitEnabledChains, swapKitSourceChains, } from '@vultisig/core-chain/swap/general/swapkit/SwapKitEnabledChains';
|
|
14
14
|
import { SwapKitAmountBelowMinimumError } from '@vultisig/core-chain/swap/general/swapkit/SwapKitErrors';
|
|
15
15
|
import { getNativeSwapQuote } from '@vultisig/core-chain/swap/native/api/getNativeSwapQuote';
|
|
16
|
+
import { getNativeSwapTradingHalt } from '@vultisig/core-chain/swap/native/halts/getNativeSwapTradingHalt';
|
|
16
17
|
import { getNativeSwapMinAmountIn, } from '@vultisig/core-chain/swap/native/minimum/getNativeSwapMinAmountIn';
|
|
17
|
-
import { nativeSwapChains, nativeSwapEnabledChainsRecord } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
18
|
+
import { nativeSwapChains, nativeSwapEnabledChainsRecord, } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
18
19
|
import { getNativeSwapDecimals } from '@vultisig/core-chain/swap/native/utils/getNativeSwapDecimals';
|
|
19
20
|
import { NoSwapRoutesError } from '@vultisig/core-chain/swap/NoSwapRoutesError';
|
|
20
21
|
import { SwapError, SwapErrorCode } from '@vultisig/core-chain/swap/SwapError';
|
|
@@ -59,6 +60,20 @@ export const providerPreferenceOrder = [
|
|
|
59
60
|
export const aggregatorPreferenceOrder = providerPreferenceOrder;
|
|
60
61
|
const providerPreferenceIndex = new Map(providerPreferenceOrder.map((name, idx) => [name, idx]));
|
|
61
62
|
const getProviderPreferenceRank = (name) => providerPreferenceIndex.get(name) ?? Number.POSITIVE_INFINITY;
|
|
63
|
+
const formatTradingHaltedMessage = (reason) => `This swap route is temporarily unavailable — ${reason}. Please try again later.`;
|
|
64
|
+
const getNativeTradingHaltError = async ({ from, to, swapChain, }) => {
|
|
65
|
+
const tradingHalt = await getNativeSwapTradingHalt({ from, to, swapChain });
|
|
66
|
+
return tradingHalt
|
|
67
|
+
? new SwapError(SwapErrorCode.TradingHalted, formatTradingHaltedMessage(tradingHalt.reasons.join('; ')))
|
|
68
|
+
: null;
|
|
69
|
+
};
|
|
70
|
+
const assertNativeTradingOpen = async (input) => {
|
|
71
|
+
const tradingHaltError = await getNativeTradingHaltError(input);
|
|
72
|
+
if (tradingHaltError) {
|
|
73
|
+
throw tradingHaltError;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const asTradingHaltedSwapError = (reason) => reason instanceof SwapError && reason.code === SwapErrorCode.TradingHalted ? reason : null;
|
|
62
77
|
/**
|
|
63
78
|
* Tuning point for issue #605's banded routing rule. 100 bps = 1%.
|
|
64
79
|
* Adjust this when product wants a wider or narrower provider-preference band.
|
|
@@ -124,7 +139,49 @@ function selectBestEligibleQuote(settled) {
|
|
|
124
139
|
}
|
|
125
140
|
return selected?.quote ?? null;
|
|
126
141
|
}
|
|
127
|
-
|
|
142
|
+
// `slippageTolerance` is a percent (e.g. 0.5 = 0.5%). Reject invalid values up
|
|
143
|
+
// front so they don't propagate into every provider call and fail with
|
|
144
|
+
// non-actionable downstream errors. Cap at 50%: above that every provider
|
|
145
|
+
// effectively accepts any output including near-zero, which is economically
|
|
146
|
+
// indefensible and guards against decimal-unit typos (e.g. 100 instead of 1.00).
|
|
147
|
+
const SLIPPAGE_TOLERANCE_MAX_PERCENT = 50;
|
|
148
|
+
const assertValidSlippageTolerance = (slippageTolerance) => {
|
|
149
|
+
if (slippageTolerance !== undefined &&
|
|
150
|
+
(!Number.isFinite(slippageTolerance) || slippageTolerance < 0 || slippageTolerance > SLIPPAGE_TOLERANCE_MAX_PERCENT)) {
|
|
151
|
+
throw new SwapError(SwapErrorCode.InvalidConfig, `slippageTolerance must be a finite, non-negative percent value no greater than ${SLIPPAGE_TOLERANCE_MAX_PERCENT}. Received "${slippageTolerance}".`);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
// Matches a checksummed or lowercase EVM address: 0x followed by exactly 40 hex chars.
|
|
155
|
+
const isEvmAddress = (address) => /^0x[0-9a-fA-F]{40}$/.test(address);
|
|
156
|
+
// Validate a custom swap recipient is a properly-formatted EVM address before it
|
|
157
|
+
// reaches CowSwap. CowSwap lowercases the receiver but does zero format validation —
|
|
158
|
+
// a plausible-but-wrong address (right hex length, wrong wallet) would produce a
|
|
159
|
+
// valid order that sends buy tokens to the wrong wallet with no on-chain recovery,
|
|
160
|
+
// so throw early with a clear error. Only enforce the EVM format when the pair can
|
|
161
|
+
// actually reach CowSwap (same-chain EVM ERC-20 on a supported chain); for native
|
|
162
|
+
// THOR/Maya pairs the node validates the destination downstream, so a malformed
|
|
163
|
+
// non-EVM address fails there and the EVM check is skipped. Extracted from
|
|
164
|
+
// findSwapQuote to keep that function's cognitive complexity within the gate.
|
|
165
|
+
const assertValidCustomRecipient = (recipient, from, to) => {
|
|
166
|
+
if (recipient === undefined || isEvmAddress(recipient))
|
|
167
|
+
return;
|
|
168
|
+
const cowSwapPathReachable = isChainOfKind(from.chain, 'evm') &&
|
|
169
|
+
from.id !== undefined &&
|
|
170
|
+
isChainOfKind(to.chain, 'evm') &&
|
|
171
|
+
to.id !== undefined &&
|
|
172
|
+
from.chain === to.chain &&
|
|
173
|
+
isOneOf(from.chain, cowSwapSupportedChains);
|
|
174
|
+
if (cowSwapPathReachable) {
|
|
175
|
+
throw new SwapError(SwapErrorCode.InvalidConfig, `recipient "${recipient}" is not a valid EVM address. Expected a 0x-prefixed 40-character hex string.`);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
const toProviderSlippage = (slippageTolerance) => ({
|
|
179
|
+
oneInchPercent: slippageTolerance,
|
|
180
|
+
swapKitPercent: slippageTolerance,
|
|
181
|
+
lifiFraction: slippageTolerance !== undefined ? slippageTolerance / 100 : undefined,
|
|
182
|
+
kyberBps: slippageTolerance !== undefined ? Math.round(slippageTolerance * 100) : undefined,
|
|
183
|
+
});
|
|
184
|
+
export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTier, affiliateConfig, recipient, slippageTolerance, }) => {
|
|
128
185
|
// Runtime guard: THORName affiliateFeeAddress must be lowercase.
|
|
129
186
|
// THORChain memo parsing is case-sensitive — passing 'STVS' instead of 'stvs'
|
|
130
187
|
// silently routes affiliate fees to the vultisig-0 default instead of the
|
|
@@ -137,16 +194,37 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
137
194
|
const affiliateBps = getSwapAffiliateBps(vultDiscountTier ?? null);
|
|
138
195
|
const vultDiscount = vultDiscountTier ? [{ vult: { tier: vultDiscountTier } }] : [];
|
|
139
196
|
const referralDiscount = referral ? [{ referral: {} }] : [];
|
|
197
|
+
// When the caller requests an external recipient, restrict routing to the
|
|
198
|
+
// providers that send the swapped output to an explicit address (native +
|
|
199
|
+
// CowSwap). Aggregators that pay the initiator would silently misroute funds,
|
|
200
|
+
// so they are not offered for custom-recipient swaps until they thread the
|
|
201
|
+
// receiver through (tracked in vultisig/vultisig-windows#4131).
|
|
202
|
+
// Trim and treat empty/whitespace strings as no recipient, so route gating
|
|
203
|
+
// and recipient forwarding only react to a genuine custom address.
|
|
204
|
+
const normalizedRecipient = recipient?.trim() || undefined;
|
|
205
|
+
const hasCustomRecipient = normalizedRecipient !== undefined;
|
|
206
|
+
// Validate a custom recipient up front (see assertValidCustomRecipient) so a
|
|
207
|
+
// malformed address can't reach CowSwap and misroute the fill. No-op when the
|
|
208
|
+
// recipient is undefined.
|
|
209
|
+
assertValidCustomRecipient(normalizedRecipient, from, to);
|
|
210
|
+
// `slippageTolerance` is a percent (e.g. 0.5 = 0.5%). Reject invalid values
|
|
211
|
+
// up front so they don't propagate into every provider call and fail with
|
|
212
|
+
// non-actionable downstream errors.
|
|
213
|
+
assertValidSlippageTolerance(slippageTolerance);
|
|
214
|
+
// Convert the slippage tolerance to each aggregator's native unit (see
|
|
215
|
+
// toProviderSlippage); `undefined` leaves each provider on its own default.
|
|
216
|
+
const { oneInchPercent: oneInchSlippagePercent, swapKitPercent: swapKitSlippagePercent, lifiFraction: lifiSlippageFraction, kyberBps: kyberSlippageBps, } = toProviderSlippage(slippageTolerance);
|
|
140
217
|
const involvedChains = [from.chain, to.chain];
|
|
141
218
|
const matchingSwapChains = nativeSwapChains.filter(swapChain => involvedChains.every(chain => isOneOf(chain, nativeSwapEnabledChainsRecord[swapChain])));
|
|
142
219
|
const getNativeFetchers = () => matchingSwapChains.map(swapChain => ({
|
|
143
220
|
providerName: swapChain === Chain.THORChain ? 'THORChain' : 'MayaChain',
|
|
144
221
|
fetch: async () => {
|
|
222
|
+
await assertNativeTradingOpen({ from, to, swapChain });
|
|
145
223
|
const fromDecimals = from.decimals;
|
|
146
224
|
const amountNumber = bigIntToNumber(amount, fromDecimals);
|
|
147
225
|
const native = await getNativeSwapQuote({
|
|
148
226
|
swapChain,
|
|
149
|
-
destination: to.address,
|
|
227
|
+
destination: normalizedRecipient ?? to.address,
|
|
150
228
|
from,
|
|
151
229
|
to,
|
|
152
230
|
amount: amountNumber,
|
|
@@ -172,6 +250,12 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
172
250
|
// by solvers against ERC-20 balances. The consumer signs the order's
|
|
173
251
|
// EIP-712 digest and submits it via `submitCowSwapOrder` — see
|
|
174
252
|
// `cowswap_order` handling in `buildSwapKeysignPayload`.
|
|
253
|
+
//
|
|
254
|
+
// Because of that ERC-20 gate, a native-ETH (`from.id === undefined`) pair
|
|
255
|
+
// never reaches this fetcher, so the `receiver` guard below is unreachable
|
|
256
|
+
// for native-token swaps. A custom recipient on such a pair is therefore
|
|
257
|
+
// only ever honoured through the native THORChain/MayaChain `destination`
|
|
258
|
+
// path above — not here.
|
|
175
259
|
if (fromChain === toChain &&
|
|
176
260
|
isOneOf(fromChain, cowSwapSupportedChains) &&
|
|
177
261
|
from.id !== undefined &&
|
|
@@ -187,7 +271,7 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
187
271
|
buyToken,
|
|
188
272
|
sellAmount: chainAmount,
|
|
189
273
|
from: from.address,
|
|
190
|
-
receiver: from.address,
|
|
274
|
+
receiver: normalizedRecipient ?? from.address,
|
|
191
275
|
chainConfig: cowChainConfig,
|
|
192
276
|
affiliateBps,
|
|
193
277
|
});
|
|
@@ -195,7 +279,8 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
195
279
|
},
|
|
196
280
|
});
|
|
197
281
|
}
|
|
198
|
-
if (
|
|
282
|
+
if (!hasCustomRecipient &&
|
|
283
|
+
isOneOf(fromChain, kyberSwapEnabledChains) &&
|
|
199
284
|
isOneOf(toChain, kyberSwapEnabledChains) &&
|
|
200
285
|
fromChain === toChain) {
|
|
201
286
|
result.push({
|
|
@@ -213,12 +298,13 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
213
298
|
amount: chainAmount,
|
|
214
299
|
affiliateBps,
|
|
215
300
|
kyberConfig: affiliateConfig?.kyber,
|
|
301
|
+
slippageTolerance: kyberSlippageBps,
|
|
216
302
|
});
|
|
217
303
|
return { quote: { general }, discounts: vultDiscount };
|
|
218
304
|
},
|
|
219
305
|
});
|
|
220
306
|
}
|
|
221
|
-
if (isOneOf(from.chain, oneInchSwapEnabledChains) && from.chain === to.chain) {
|
|
307
|
+
if (!hasCustomRecipient && isOneOf(from.chain, oneInchSwapEnabledChains) && from.chain === to.chain) {
|
|
222
308
|
result.push({
|
|
223
309
|
providerName: '1inch',
|
|
224
310
|
fetch: async () => {
|
|
@@ -229,12 +315,13 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
229
315
|
amount: chainAmount,
|
|
230
316
|
affiliateBps,
|
|
231
317
|
oneInchConfig: affiliateConfig?.oneInch,
|
|
318
|
+
slippage: oneInchSlippagePercent,
|
|
232
319
|
});
|
|
233
320
|
return { quote: { general }, discounts: vultDiscount };
|
|
234
321
|
},
|
|
235
322
|
});
|
|
236
323
|
}
|
|
237
|
-
if (isOneOf(fromChain, lifiSwapEnabledChains) && isOneOf(toChain, lifiSwapEnabledChains)) {
|
|
324
|
+
if (!hasCustomRecipient && isOneOf(fromChain, lifiSwapEnabledChains) && isOneOf(toChain, lifiSwapEnabledChains)) {
|
|
238
325
|
result.push({
|
|
239
326
|
providerName: 'LiFi',
|
|
240
327
|
fetch: async () => {
|
|
@@ -250,12 +337,13 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
250
337
|
amount: chainAmount,
|
|
251
338
|
affiliateBps,
|
|
252
339
|
lifiAffiliateConfig: affiliateConfig?.lifi,
|
|
340
|
+
slippage: lifiSlippageFraction,
|
|
253
341
|
});
|
|
254
342
|
return { quote: { general }, discounts: vultDiscount };
|
|
255
343
|
},
|
|
256
344
|
});
|
|
257
345
|
}
|
|
258
|
-
if (isOneOf(fromChain, swapKitSourceChains) && isOneOf(toChain, swapKitEnabledChains)) {
|
|
346
|
+
if (!hasCustomRecipient && isOneOf(fromChain, swapKitSourceChains) && isOneOf(toChain, swapKitEnabledChains)) {
|
|
259
347
|
result.push({
|
|
260
348
|
providerName: 'SwapKit',
|
|
261
349
|
fetch: async () => {
|
|
@@ -270,6 +358,7 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
270
358
|
},
|
|
271
359
|
amount: chainAmount,
|
|
272
360
|
affiliateBps,
|
|
361
|
+
slippage: swapKitSlippagePercent,
|
|
273
362
|
});
|
|
274
363
|
return { quote: { general }, discounts: vultDiscount };
|
|
275
364
|
},
|
|
@@ -304,6 +393,7 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
304
393
|
// only fall back to the computed minimum if they all fail. (#604, CodeRabbit)
|
|
305
394
|
const thorIsSoleRoute = generalFetchers.length === 0 && matchingSwapChains.length === 1 && matchingSwapChains[0] === Chain.THORChain;
|
|
306
395
|
if (thorIsSoleRoute) {
|
|
396
|
+
await assertNativeTradingOpen({ from, to, swapChain: Chain.THORChain });
|
|
307
397
|
const nativeMin = await computeNativeMin();
|
|
308
398
|
if (nativeMin && amount < nativeMin.minAmountInBaseUnits) {
|
|
309
399
|
throw belowNativeMinimumError(nativeMin, from);
|
|
@@ -368,12 +458,14 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
368
458
|
};
|
|
369
459
|
const belowMinimumByProvider = new Map();
|
|
370
460
|
const haltedProviders = new Set();
|
|
461
|
+
let proactiveTradingHalt = null;
|
|
371
462
|
for (let i = 0; i < settled.length; i++) {
|
|
372
463
|
const result = settled[i];
|
|
373
464
|
if (result.status !== 'rejected') {
|
|
374
465
|
continue;
|
|
375
466
|
}
|
|
376
467
|
const msg = result.reason instanceof Error ? result.reason.message : String(result.reason);
|
|
468
|
+
proactiveTradingHalt ??= asTradingHaltedSwapError(result.reason);
|
|
377
469
|
// SwapKit raises this only after confirming the pair is structurally
|
|
378
470
|
// supported, so it is unambiguously an amount problem (#4418). Reuse the
|
|
379
471
|
// same copy as the THORChain dust-threshold path.
|
|
@@ -400,13 +492,16 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
400
492
|
: [...belowMinimumByProvider.values()][0];
|
|
401
493
|
throw new SwapError(SwapErrorCode.AmountBelowMinimum, `Amount below the minimum required by a swap provider. ${belowMinimumMessage}`);
|
|
402
494
|
}
|
|
495
|
+
if (proactiveTradingHalt) {
|
|
496
|
+
throw proactiveTradingHalt;
|
|
497
|
+
}
|
|
403
498
|
// Trading-halt takes precedence over the speculative computed minimum and the
|
|
404
499
|
// generic fallback: when a native protocol reports a halt, NO amount can route,
|
|
405
500
|
// so telling the user to "increase the amount" would be actively misleading. A
|
|
406
501
|
// genuine provider-reported below-minimum (handled above) still wins, since
|
|
407
502
|
// that provider is responding and the amount is the actionable lever. (#604)
|
|
408
503
|
if (haltedProviders.size > 0) {
|
|
409
|
-
throw new SwapError(SwapErrorCode.TradingHalted, `
|
|
504
|
+
throw new SwapError(SwapErrorCode.TradingHalted, formatTradingHaltedMessage(`trading is halted on ${[...haltedProviders].join(', ')}`));
|
|
410
505
|
}
|
|
411
506
|
// No provider returned a parseable below-minimum hint. Before falling back to
|
|
412
507
|
// the generic "no route" message, check the proactively-computed THORChain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAoB,MAAM,qCAAqC,CAAA;AAE3F,OAAO,EAAE,eAAe,EAAE,MAAM,+DAA+D,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAA;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAEvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAA;AAE9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,EACL,mBAAmB,GAEpB,MAAM,mEAAmE,CAAA;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,+DAA+D,CAAA;AAC/F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gEAAgE,CAAA;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yDAAyD,CAAA;AAExG,OAAO,EAAE,kBAAkB,EAAE,MAAM,yDAAyD,CAAA;AAC5F,OAAO,EACL,wBAAwB,GAEzB,MAAM,mEAAmE,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAA;AAClH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AAqCtD,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAErC,MAAM,WAAW,GAAG,CAAI,CAAa,EAAE,EAAU,EAAc,EAAE;IAC/D,IAAI,SAAoD,CAAA;IACxD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACtD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACpD,YAAY,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqC;IACvE,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,6DAA6D;IAC7D,SAAS;IACT,WAAW;IACX,WAAW;IACX,SAAS;IACT,WAAW;IACX,OAAO;IACP,MAAM;CACE,CAAA;AAEV,iDAAiD;AACjD,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAA;AAEhE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACrC,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACxD,CAAA;AAED,MAAM,yBAAyB,GAAG,CAAC,IAA2B,EAAU,EAAE,CACxE,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAA;AAE/D;;;GAGG;AACH,MAAM,8BAA8B,GAAG,IAAI,CAAA;AAC3C,MAAM,eAAe,GAAG,MAAO,CAAA;AAE/B,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAE,gBAAwB,EAAW,EAAE,CACzF,YAAY,GAAG,eAAe,IAAI,gBAAgB,GAAG,CAAC,eAAe,GAAG,8BAA8B,CAAC,CAAA;AAEzG,iFAAiF;AACjF,SAAS,cAAc,CAAC,KAAa,EAAE,YAAoB,EAAE,UAAkB;IAC7E,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,UAAU,GAAG,YAAY,EAAE,CAAC;QAC9B,OAAO,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,yBAAyB,CAAC,CAAY,EAAE,EAAe;IAC9D,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACtD,OAAO,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgD;IAC/E,MAAM,UAAU,GAAsB,EAAE,CAAA;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EACpF,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAC3B,CAAA;IAED,IAAI,QAAQ,GAA2B,IAAI,CAAA;IAC3C,IAAI,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAErD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACtE,SAAQ;QACV,CAAC;QAED,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACjF,IACE,QAAQ,KAAK,IAAI;YACjB,uBAAuB,GAAG,sBAAsB;YAChD,CAAC,uBAAuB,KAAK,sBAAsB,IAAI,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,EACtG,CAAC;YACD,QAAQ,GAAG,SAAS,CAAA;YACpB,sBAAsB,GAAG,uBAAuB,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAA;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,IAAI,EACJ,EAAE,EACF,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,eAAe,GACI,EAAsB,EAAE;IAC3C,iEAAiE;IACjE,8EAA8E;IAC9E,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,yBAAyB,GAAG,eAAe,EAAE,MAAM,EAAE,mBAAmB,CAAA;IAC9E,IACE,yBAAyB,KAAK,SAAS;QACvC,yBAAyB,KAAK,yBAAyB,CAAC,WAAW,EAAE,EACrE,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,oGAAoG,yBAAyB,8CAA8C,CAC5K,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAA;IAElE,MAAM,YAAY,GAAmB,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnG,MAAM,gBAAgB,GAAmB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3E,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAC7D,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CACxF,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAuB,EAAE,CACjD,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,YAAY,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;QACvE,KAAK,EAAE,KAAK,IAAwB,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAA;YAClC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,SAAS;gBACT,WAAW,EAAE,EAAE,CAAC,OAAO;gBACvB,IAAI;gBACJ,EAAE;gBACF,MAAM,EAAE,YAAY;gBACpB,QAAQ;gBACR,YAAY;gBACZ,qBAAqB,EAAE,eAAe,EAAE,MAAM;aAC/C,CAAC,CAAA;YAEF,OAAO;gBACL,KAAK,EAAE,EAAE,MAAM,EAAE;gBACjB,SAAS,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY;aACjG,CAAA;QACH,CAAC;KACF,CAAC,CAAC,CAAA;IAEL,MAAM,kBAAkB,GAAG,GAAuB,EAAE;QAClD,MAAM,MAAM,GAAuB,EAAE,CAAA;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAA;QACxB,MAAM,WAAW,GAAG,MAAM,CAAA;QAE1B,yEAAyE;QACzE,2EAA2E;QAC3E,qEAAqE;QACrE,2EAA2E;QAC3E,qEAAqE;QACrE,+DAA+D;QAC/D,yDAAyD;QACzD,IACE,SAAS,KAAK,OAAO;YACrB,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC;YAC1C,IAAI,CAAC,EAAE,KAAK,SAAS;YACrB,EAAE,CAAC,EAAE,KAAK,SAAS,EACnB,CAAC;YACD,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAA;YACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAA;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,SAAS;gBACvB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;wBACpC,SAAS;wBACT,QAAQ;wBACR,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE,IAAI,CAAC,OAAO;wBAClB,QAAQ,EAAE,IAAI,CAAC,OAAO;wBACtB,WAAW,EAAE,cAAc;wBAC3B,YAAY;qBACb,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IACE,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC;YAC1C,OAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC;YACxC,SAAS,KAAK,OAAO,EACrB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,WAAW;gBACzB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;wBACtC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,OAAO;yBACf;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,WAAW,EAAE,eAAe,EAAE,KAAK;qBACpC,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;YAC7E,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,OAAO;gBACrB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;wBACxC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;wBACzC,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM;wBAClC,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM;wBAC5B,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,aAAa,EAAE,eAAe,EAAE,OAAO;qBACxC,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACzF,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,MAAM;gBACpB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;wBACrC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,OAAO;yBACf;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,mBAAmB,EAAE,eAAe,EAAE,IAAI;qBAC3C,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,SAAS;gBACvB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;wBACpC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,OAAO;yBACf;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;qBACb,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,uBAAuB,GAC3B,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAErG,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAC5C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,MAAM,QAAQ,GAAG,uBAAuB;QACtC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC;QACzC,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,eAAe,CAAC,CAAA;IAE3C,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAiB,EAAE,CAAA;IAC/B,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,GAA0C,EAAE,CACnE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACpE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3B,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,eAAe,GACnB,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9G,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAC1C,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACzD,MAAM,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAA4B,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAA;QACxE,OAAO;YACL,KAAK;YACL,YAAY,EAAE,yBAAyB,CAAC,KAAK,EAAE,EAAE,CAAC;YAClD,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAE7C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,6BAA6B;IAC7B,EAAE;IACF,8EAA8E;IAC9E,8DAA8D;IAC9D,6EAA6E;IAC7E,wEAAwE;IACxE,4EAA4E;IAC5E,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,yBAAyB,GAA4B;QACzD,SAAS;QACT,WAAW;QACX,OAAO;QACP,MAAM;QACN,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAC/B,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACpC,CAAA;IACH,CAAC,CAAA;IAED,iFAAiF;IACjF,sEAAsE;IACtE,+EAA+E;IAC/E,8EAA8E;IAC9E,gFAAgF;IAChF,gEAAgE;IAChE,6DAA6D;IAC7D,sDAAsD;IACtD,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAC/B,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxB,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC9B,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACpC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiC,CAAA;IACvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAA;IAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAW,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAElG,qEAAqE;QACrE,yEAAyE;QACzE,kDAAkD;QAClD,IACE,MAAM,CAAC,MAAM,YAAY,8BAA8B;YACvD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;YAC1C,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,+DAA+D,CAAC,CAAA;QACpH,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;YAC7C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpC,sEAAsE;QACtE,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,MAAM,mBAAmB,GAAG,SAAS;YACnC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAE;YACxC,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,kBAAkB,EAChC,yDAAyD,mBAAmB,EAAE,CAC/E,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,qEAAqE,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAChI,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAC1C,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;QACzD,MAAM,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,eAAe,GAAG,OAAO;SAC5B,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAA;IACrC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,YAAY,EAAyC,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,CAAA;IAEzF,6EAA6E;IAC7E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,iBAAiB,GAAG,OAAO;SAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACtH,CAAC,CAAC,IAAI,CACT;SACA,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IACrD,OAAO,CAAC,IAAI,CACV,gCAAgC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,MAAM,0BAA0B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrH,CAAA;IAED,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,kBAAkB,EAChC,oCAAoC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,GAA0B,EAAE,IAAiB,EAAa,EAAE,CAC3F,IAAI,SAAS,CACX,aAAa,CAAC,kBAAkB,EAChC,0DAA0D,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,+BAA+B,CAC7H,CAAA"}
|
|
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.
|
|
3
|
+
"version": "2.17.0",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1507,6 +1507,11 @@
|
|
|
1507
1507
|
"import": "./dist/swap/native/asset/toNativeSwapAsset.js",
|
|
1508
1508
|
"default": "./dist/swap/native/asset/toNativeSwapAsset.js"
|
|
1509
1509
|
},
|
|
1510
|
+
"./swap/native/halts/getNativeSwapTradingHalt": {
|
|
1511
|
+
"types": "./dist/swap/native/halts/getNativeSwapTradingHalt.d.ts",
|
|
1512
|
+
"import": "./dist/swap/native/halts/getNativeSwapTradingHalt.js",
|
|
1513
|
+
"default": "./dist/swap/native/halts/getNativeSwapTradingHalt.js"
|
|
1514
|
+
},
|
|
1510
1515
|
"./swap/native/limitSwapMemo": {
|
|
1511
1516
|
"types": "./dist/swap/native/limitSwapMemo.d.ts",
|
|
1512
1517
|
"import": "./dist/swap/native/limitSwapMemo.js",
|