@vultisig/core-chain 4.0.0 → 4.1.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 +20 -0
- package/dist/chains/evm/chainInfo.d.ts +2 -0
- package/dist/chains/evm/chainInfo.d.ts.map +1 -1
- package/dist/chains/evm/chainInfo.js +6 -1
- package/dist/chains/evm/chainInfo.js.map +1 -1
- package/dist/swap/general/GeneralSwapProvider.d.ts +1 -1
- package/dist/swap/general/GeneralSwapProvider.d.ts.map +1 -1
- package/dist/swap/general/GeneralSwapProvider.js +2 -1
- package/dist/swap/general/GeneralSwapProvider.js.map +1 -1
- package/dist/swap/general/GeneralSwapQuote.d.ts +13 -1
- package/dist/swap/general/GeneralSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/ruji/api/getRujiTradeSwapQuote.d.ts +12 -0
- package/dist/swap/general/ruji/api/getRujiTradeSwapQuote.d.ts.map +1 -0
- package/dist/swap/general/ruji/api/getRujiTradeSwapQuote.js +136 -0
- package/dist/swap/general/ruji/api/getRujiTradeSwapQuote.js.map +1 -0
- package/dist/swap/general/ruji/config.d.ts +16 -0
- package/dist/swap/general/ruji/config.d.ts.map +1 -0
- package/dist/swap/general/ruji/config.js +19 -0
- package/dist/swap/general/ruji/config.js.map +1 -0
- package/dist/swap/keysign/getSwapDestinationAddress.d.ts.map +1 -1
- package/dist/swap/keysign/getSwapDestinationAddress.js +1 -0
- package/dist/swap/keysign/getSwapDestinationAddress.js.map +1 -1
- package/dist/swap/quote/SwapQuote.d.ts +2 -0
- package/dist/swap/quote/SwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.d.ts +4 -4
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +153 -19
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.d.ts +2 -1
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.d.ts.map +1 -1
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.js +2 -1
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.js.map +1 -1
- package/dist/swap/swapEnabledChains.d.ts.map +1 -1
- package/dist/swap/swapEnabledChains.js +2 -0
- package/dist/swap/swapEnabledChains.js.map +1 -1
- package/dist/swap/utils/getSwapExplorerUrl/index.d.ts +2 -2
- package/dist/swap/utils/getSwapExplorerUrl/index.d.ts.map +1 -1
- package/dist/swap/utils/getSwapExplorerUrl/index.js +2 -1
- package/dist/swap/utils/getSwapExplorerUrl/index.js.map +1 -1
- package/package.json +12 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 4.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2234](https://github.com/vultisig/vultisig-sdk/pull/2234) [`0697060`](https://github.com/vultisig/vultisig-sdk/commit/0697060107c7fe1c8ec818d3e0eae01557d9d96f) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add RUJI Trade quoting and CosmWasm execution for native RUNE and bRUNE swaps through the SDK's normal swap flow.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#2235](https://github.com/vultisig/vultisig-sdk/pull/2235) [`3fff7cf`](https://github.com/vultisig/vultisig-sdk/commit/3fff7cfdfe23d2d5622f7caa87a6f1525329f07e) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - fix(swap): stop reporting a native trading halt when an aggregator could still fill
|
|
12
|
+
|
|
13
|
+
`findSwapQuotes` collapsed a THORChain/MayaChain halt plus a transient aggregator failure into `TradingHalted` for the whole pair, so an ETH→SOL quote surfaced "trading halted" whenever LiFi/SwapKit happened to time out. A halt is scoped to the native protocol that raised it: those aggregators now get one automatic re-attempt, and when they are still unreachable the error reports the transient failure instead of a halt the user cannot retry out of. Halt-only pairs still throw `TradingHalted`.
|
|
14
|
+
|
|
15
|
+
## 4.0.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#2228](https://github.com/vultisig/vultisig-sdk/pull/2228) [`bbe43cb`](https://github.com/vultisig/vultisig-sdk/commit/bbe43cb91976138015ab4ad29c14a7b0e14f8cb4) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Export `getEvmNumericChainId` from the SDK root and React Native public entries. The accessor is derived from the canonical EVM chain registry, and the React Native transaction builder now consumes it instead of maintaining a duplicate numeric chain-id table.
|
|
20
|
+
|
|
21
|
+
- [#2227](https://github.com/vultisig/vultisig-sdk/pull/2227) [`6d3c754`](https://github.com/vultisig/vultisig-sdk/commit/6d3c754ed1abe6153e648243ff0339ff0ba50bf1) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add TRON Stake 2.0 expired-unfreeze withdrawal signing with strict native-TRX payload validation and WalletCore 4.7.3 support.
|
|
22
|
+
|
|
3
23
|
## 4.0.0
|
|
4
24
|
|
|
5
25
|
### Major Changes
|
|
@@ -173,5 +173,7 @@ export declare const evmChainInfo: Record<EvmChain, {
|
|
|
173
173
|
*/
|
|
174
174
|
export declare const getEvmRpcUrl: (chain: EvmChain) => string;
|
|
175
175
|
export declare const getEvmChainId: (chain: EvmChain) => string;
|
|
176
|
+
/** Returns the canonical numeric EIP-155 chain ID for a supported EVM chain. */
|
|
177
|
+
export declare const getEvmNumericChainId: (chain: EvmChain) => number;
|
|
176
178
|
export declare const getEvmChainByChainId: (chainId: string) => EvmChain | undefined;
|
|
177
179
|
//# sourceMappingURL=chainInfo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chainInfo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/evm/chainInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AA2BrD,eAAO,MAAM,2BAA2B,QAAuD,CAAA;AAG/F,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBtB,CAAA;AAGF,eAAO,MAAM,yBAAyB,QAAqD,CAAA;AAG3F,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBpB,CAAA;
|
|
1
|
+
{"version":3,"file":"chainInfo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/evm/chainInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AA2BrD,eAAO,MAAM,2BAA2B,QAAuD,CAAA;AAG/F,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBtB,CAAA;AAGF,eAAO,MAAM,yBAAyB,QAAqD,CAAA;AAG3F,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBpB,CAAA;AAuCF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;mBA3Dc,CAAC;4BACT,CAAC;kBAA+C,CAAC;uBACxC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEvC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,QAAQ,KAAG,MAA+D,CAAA;AAE9G,eAAO,MAAM,aAAa,GAAI,OAAO,QAAQ,KAAG,MAE/C,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,GAAI,OAAO,QAAQ,KAAG,MAEtD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,QAAQ,GAAG,SAEjE,CAAA"}
|
|
@@ -82,7 +82,8 @@ const evmDefaultChainInfo = {
|
|
|
82
82
|
[EvmChain.Sei]: sei,
|
|
83
83
|
[EvmChain.Robinhood]: robinhood,
|
|
84
84
|
};
|
|
85
|
-
const
|
|
85
|
+
const evmNumericChainId = recordMap(evmDefaultChainInfo, chain => chain.id);
|
|
86
|
+
const evmChainId = recordMap(evmNumericChainId, numberToHex);
|
|
86
87
|
export const evmChainInfo = recordMap(evmDefaultChainInfo, (chain, chainKey) => {
|
|
87
88
|
const rpcUrl = evmChainRpcUrls[chainKey];
|
|
88
89
|
return {
|
|
@@ -102,6 +103,10 @@ export const getEvmRpcUrl = (chain) => getCustomRpcOverride(chain) ?? evmChainRp
|
|
|
102
103
|
export const getEvmChainId = (chain) => {
|
|
103
104
|
return evmChainId[chain];
|
|
104
105
|
};
|
|
106
|
+
/** Returns the canonical numeric EIP-155 chain ID for a supported EVM chain. */
|
|
107
|
+
export const getEvmNumericChainId = (chain) => {
|
|
108
|
+
return evmNumericChainId[chain];
|
|
109
|
+
};
|
|
105
110
|
export const getEvmChainByChainId = (chainId) => {
|
|
106
111
|
return mirrorRecord(evmChainId)[chainId];
|
|
107
112
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chainInfo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/evm/chainInfo.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chainInfo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/evm/chainInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const generalSwapProviders: readonly ["1inch", "li.fi", "kyber", "swapkit", "cowswap", "jupiter"];
|
|
1
|
+
export declare const generalSwapProviders: readonly ["1inch", "li.fi", "kyber", "swapkit", "cowswap", "jupiter", "ruji"];
|
|
2
2
|
export type GeneralSwapProvider = (typeof generalSwapProviders)[number];
|
|
3
3
|
export declare const generalSwapProviderName: Record<GeneralSwapProvider, string>;
|
|
4
4
|
//# sourceMappingURL=GeneralSwapProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSwapProvider.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapProvider.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"GeneralSwapProvider.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapProvider.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,+EAAgF,CAAA;AAEjH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAQvE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const generalSwapProviders = ['1inch', 'li.fi', 'kyber', 'swapkit', 'cowswap', 'jupiter'];
|
|
1
|
+
export const generalSwapProviders = ['1inch', 'li.fi', 'kyber', 'swapkit', 'cowswap', 'jupiter', 'ruji'];
|
|
2
2
|
export const generalSwapProviderName = {
|
|
3
3
|
'1inch': '1Inch',
|
|
4
4
|
'li.fi': 'LI.FI',
|
|
@@ -6,5 +6,6 @@ export const generalSwapProviderName = {
|
|
|
6
6
|
swapkit: 'SwapKit',
|
|
7
7
|
cowswap: 'CowSwap',
|
|
8
8
|
jupiter: 'Jupiter',
|
|
9
|
+
ruji: 'RUJI Trade',
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=GeneralSwapProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSwapProvider.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapProvider.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"GeneralSwapProvider.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapProvider.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAIjH,MAAM,CAAC,MAAM,uBAAuB,GAAwC;IAC1E,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,YAAY;CACnB,CAAA"}
|
|
@@ -65,9 +65,19 @@ export type GeneralSwapTx = {
|
|
|
65
65
|
* the order signature, avoiding a separate ERC-20 approve transaction. */
|
|
66
66
|
permitRequired?: true;
|
|
67
67
|
};
|
|
68
|
+
} | {
|
|
69
|
+
cosmosWasm: {
|
|
70
|
+
sender: string;
|
|
71
|
+
contract: string;
|
|
72
|
+
executeMsg: string;
|
|
73
|
+
funds: Array<{
|
|
74
|
+
denom: string;
|
|
75
|
+
amount: string;
|
|
76
|
+
}>;
|
|
77
|
+
};
|
|
68
78
|
};
|
|
69
79
|
/**
|
|
70
|
-
* Quote returned by
|
|
80
|
+
* Quote returned by a general-purpose swap provider.
|
|
71
81
|
*
|
|
72
82
|
* Consumers building a "View on Explorer" link should call
|
|
73
83
|
* `getSwapExplorerUrl({ provider, txHash, fromChain })` from
|
|
@@ -80,6 +90,8 @@ export type GeneralSwapQuote = {
|
|
|
80
90
|
dstAmount: string;
|
|
81
91
|
provider: GeneralSwapProvider;
|
|
82
92
|
routeProvider?: string;
|
|
93
|
+
/** Absolute provider quote expiry in milliseconds, when supplied. */
|
|
94
|
+
expiresAt?: number;
|
|
83
95
|
/**
|
|
84
96
|
* Signed price impact of the route as a FRACTION, not a percent: `0.0133`
|
|
85
97
|
* means 1.33% of output lost, and a negative value is a favorable trade.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GACrB;IACE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB;;;;;;;;;;;;;;WAcG;QACH,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,GACD;IACE,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF,GACD;IACE,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,GACD;IACE,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,gBAAgB,CAAA;QACtB,iBAAiB,EAAE,OAAO,CAAA;QAC1B,gBAAgB,EAAE,mBAAmB,CAAA;QACrC,eAAe,EAAE,mBAAmB,CAAA;QACpC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf;;kFAE0E;QAC1E,cAAc,CAAC,EAAE,IAAI,CAAA;KACtB,CAAA;CACF,CAAA;AAEL;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,EAAE,EAAE,aAAa,CAAA;CAClB,CAAA"}
|
|
1
|
+
{"version":3,"file":"GeneralSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GACrB;IACE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB;;;;;;;;;;;;;;WAcG;QACH,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,GACD;IACE,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF,GACD;IACE,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,GACD;IACE,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,gBAAgB,CAAA;QACtB,iBAAiB,EAAE,OAAO,CAAA;QAC1B,gBAAgB,EAAE,mBAAmB,CAAA;QACrC,eAAe,EAAE,mBAAmB,CAAA;QACpC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf;;kFAE0E;QAC1E,cAAc,CAAC,EAAE,IAAI,CAAA;KACtB,CAAA;CACF,GACD;IACE,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAChD,CAAA;CACF,CAAA;AAEL;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,EAAE,EAAE,aAAa,CAAA;CAClB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AccountCoin } from '@vultisig/core-chain/coin/AccountCoin';
|
|
2
|
+
import { GeneralSwapQuote } from '@vultisig/core-chain/swap/general/GeneralSwapQuote';
|
|
3
|
+
export declare const isRujiTradeSwapPair: (from: AccountCoin, to: AccountCoin) => boolean;
|
|
4
|
+
export type GetRujiTradeSwapQuoteInput = {
|
|
5
|
+
from: AccountCoin;
|
|
6
|
+
to: AccountCoin;
|
|
7
|
+
amount: bigint;
|
|
8
|
+
destination: string;
|
|
9
|
+
slippageBps?: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const getRujiTradeSwapQuote: ({ from, to, amount, destination, slippageBps, }: GetRujiTradeSwapQuoteInput) => Promise<GeneralSwapQuote>;
|
|
12
|
+
//# sourceMappingURL=getRujiTradeSwapQuote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRujiTradeSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/ruji/api/getRujiTradeSwapQuote.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAyDrF,eAAO,MAAM,mBAAmB,GAAI,MAAM,WAAW,EAAE,IAAI,WAAW,KAAG,OAKxE,CAAA;AAiED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAU,iDAMzC,0BAA0B,KAAG,OAAO,CAAC,gBAAgB,CAmEvD,CAAA"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { fromBech32 } from '@cosmjs/encoding';
|
|
2
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
3
|
+
import { getCosmosWasmSmartQueryUrl } from '@vultisig/core-chain/chains/cosmos/cosmosRpcUrl';
|
|
4
|
+
import { rujiraGraphQlEndpoint } from '@vultisig/core-chain/chains/cosmos/thor/rujira/config';
|
|
5
|
+
import { rujiTradeAsset, rujiTradeDefaultSlippageBps, rujiTradeQuoteTtlMs, rujiTradeRuneBruneMarketContract, } from '@vultisig/core-chain/swap/general/ruji/config';
|
|
6
|
+
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
7
|
+
const finMarketsQuery = `
|
|
8
|
+
query FinMarkets {
|
|
9
|
+
fin {
|
|
10
|
+
address
|
|
11
|
+
assetBase { asset }
|
|
12
|
+
assetQuote { asset }
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
`;
|
|
16
|
+
const getRujiTradeAsset = (coin) => {
|
|
17
|
+
if (coin.chain !== Chain.THORChain)
|
|
18
|
+
return null;
|
|
19
|
+
if (coin.id?.toLowerCase() === rujiTradeAsset.brune.finDenom) {
|
|
20
|
+
return rujiTradeAsset.brune;
|
|
21
|
+
}
|
|
22
|
+
if (coin.id === undefined && coin.ticker.toUpperCase() === 'RUNE') {
|
|
23
|
+
return rujiTradeAsset.rune;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
};
|
|
27
|
+
export const isRujiTradeSwapPair = (from, to) => {
|
|
28
|
+
const fromAsset = getRujiTradeAsset(from);
|
|
29
|
+
const toAsset = getRujiTradeAsset(to);
|
|
30
|
+
return !!fromAsset && !!toAsset && fromAsset !== toAsset;
|
|
31
|
+
};
|
|
32
|
+
const assertThorAddress = (address, label) => {
|
|
33
|
+
const normalized = address.trim();
|
|
34
|
+
try {
|
|
35
|
+
const decoded = fromBech32(normalized);
|
|
36
|
+
if (decoded.prefix !== 'thor' || (decoded.data.length !== 20 && decoded.data.length !== 32)) {
|
|
37
|
+
throw new Error('wrong prefix');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
throw new Error(`RUJI Trade ${label} must be a valid THORChain address.`);
|
|
42
|
+
}
|
|
43
|
+
return normalized;
|
|
44
|
+
};
|
|
45
|
+
const assertUnsignedInteger = (value, label) => {
|
|
46
|
+
if (!value || !/^\d+$/.test(value)) {
|
|
47
|
+
throw new Error(`RUJI Trade returned an invalid ${label}.`);
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
};
|
|
51
|
+
const findFinMarket = async (fromAsset, toAsset) => {
|
|
52
|
+
const response = await queryUrl(rujiraGraphQlEndpoint, {
|
|
53
|
+
body: { query: finMarketsQuery },
|
|
54
|
+
});
|
|
55
|
+
if (response.errors?.length) {
|
|
56
|
+
throw new Error(`RUJI Trade market discovery failed: ${response.errors.map(error => error.message ?? 'unknown error').join('; ')}`);
|
|
57
|
+
}
|
|
58
|
+
const expected = new Set([fromAsset.quoteAsset.toLowerCase(), toAsset.quoteAsset.toLowerCase()]);
|
|
59
|
+
const matchingMarkets = response.data?.fin?.filter(candidate => {
|
|
60
|
+
const actual = new Set([candidate.assetBase.asset.toLowerCase(), candidate.assetQuote.asset.toLowerCase()]);
|
|
61
|
+
return actual.size === expected.size && [...actual].every(asset => expected.has(asset));
|
|
62
|
+
});
|
|
63
|
+
const market = matchingMarkets?.find(candidate => candidate.address.trim().toLowerCase() === rujiTradeRuneBruneMarketContract);
|
|
64
|
+
if (!market) {
|
|
65
|
+
if (matchingMarkets?.length) {
|
|
66
|
+
throw new Error('RUJI Trade market discovery returned an untrusted RUNE ↔ bRUNE FIN contract.');
|
|
67
|
+
}
|
|
68
|
+
throw new Error(`No RUJI Trade FIN market found for ${fromAsset.quoteAsset} ↔ ${toAsset.quoteAsset}.`);
|
|
69
|
+
}
|
|
70
|
+
const address = assertThorAddress(market.address, 'market contract');
|
|
71
|
+
return { ...market, address };
|
|
72
|
+
};
|
|
73
|
+
const calculateMinimumOutput = (expectedOutput, slippageBps) => {
|
|
74
|
+
const minimumOutput = (BigInt(expectedOutput) * BigInt(10_000 - slippageBps)) / 10000n;
|
|
75
|
+
if (minimumOutput <= 0n) {
|
|
76
|
+
throw new Error('RUJI Trade quote is too small to retain a non-zero slippage guard.');
|
|
77
|
+
}
|
|
78
|
+
return minimumOutput.toString();
|
|
79
|
+
};
|
|
80
|
+
export const getRujiTradeSwapQuote = async ({ from, to, amount, destination, slippageBps = rujiTradeDefaultSlippageBps, }) => {
|
|
81
|
+
const fromAsset = getRujiTradeAsset(from);
|
|
82
|
+
const toAsset = getRujiTradeAsset(to);
|
|
83
|
+
if (!fromAsset || !toAsset || fromAsset === toAsset) {
|
|
84
|
+
throw new Error('RUJI Trade only supports THORChain RUNE ↔ bRUNE swaps.');
|
|
85
|
+
}
|
|
86
|
+
if (amount <= 0n) {
|
|
87
|
+
throw new Error('RUJI Trade swap amount must be greater than zero.');
|
|
88
|
+
}
|
|
89
|
+
if (!Number.isInteger(slippageBps) || slippageBps < 0 || slippageBps > 5_000) {
|
|
90
|
+
throw new Error('RUJI Trade slippage must be an integer between 0 and 5000 basis points.');
|
|
91
|
+
}
|
|
92
|
+
const sender = assertThorAddress(from.address, 'sender');
|
|
93
|
+
const normalizedDestination = assertThorAddress(destination, 'destination');
|
|
94
|
+
const market = await findFinMarket(fromAsset, toAsset);
|
|
95
|
+
const configUrl = getCosmosWasmSmartQueryUrl({ chain: Chain.THORChain, id: market.address }, { config: {} });
|
|
96
|
+
const simulationUrl = getCosmosWasmSmartQueryUrl({ chain: Chain.THORChain, id: market.address }, { simulate: { denom: fromAsset.finDenom, amount: amount.toString() } });
|
|
97
|
+
const [configResponse, simulationResponse] = await Promise.all([
|
|
98
|
+
queryUrl(configUrl),
|
|
99
|
+
queryUrl(simulationUrl),
|
|
100
|
+
]);
|
|
101
|
+
const denoms = configResponse.data?.denoms?.map(denom => denom.toLowerCase());
|
|
102
|
+
const expectedDenoms = new Set([rujiTradeAsset.rune.finDenom, rujiTradeAsset.brune.finDenom]);
|
|
103
|
+
const actualDenoms = denoms ? new Set(denoms) : undefined;
|
|
104
|
+
if (!actualDenoms ||
|
|
105
|
+
actualDenoms.size !== expectedDenoms.size ||
|
|
106
|
+
![...actualDenoms].every(denom => expectedDenoms.has(denom))) {
|
|
107
|
+
throw new Error('RUJI Trade FIN contract config does not match the RUNE ↔ bRUNE market.');
|
|
108
|
+
}
|
|
109
|
+
const expectedOutput = assertUnsignedInteger(simulationResponse.data?.returned, 'simulated output');
|
|
110
|
+
assertUnsignedInteger(simulationResponse.data?.fee, 'protocol fee');
|
|
111
|
+
if (BigInt(expectedOutput) <= 0n) {
|
|
112
|
+
throw new Error('RUJI Trade returned a zero-output quote.');
|
|
113
|
+
}
|
|
114
|
+
const executeMsg = JSON.stringify({
|
|
115
|
+
swap: {
|
|
116
|
+
min: {
|
|
117
|
+
min_return: calculateMinimumOutput(expectedOutput, slippageBps),
|
|
118
|
+
to: normalizedDestination,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
return {
|
|
123
|
+
dstAmount: expectedOutput,
|
|
124
|
+
provider: 'ruji',
|
|
125
|
+
expiresAt: Date.now() + rujiTradeQuoteTtlMs,
|
|
126
|
+
tx: {
|
|
127
|
+
cosmosWasm: {
|
|
128
|
+
sender,
|
|
129
|
+
contract: market.address,
|
|
130
|
+
executeMsg,
|
|
131
|
+
funds: [{ denom: fromAsset.finDenom, amount: amount.toString() }],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=getRujiTradeSwapQuote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRujiTradeSwapQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/ruji/api/getRujiTradeSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const rujiTradeSwapEnabledChains: readonly ["THORChain"];
|
|
2
|
+
/** Supported FIN market for the only supported RUJI Trade pair: THOR.RUNE ↔ x/brune. */
|
|
3
|
+
export declare const rujiTradeRuneBruneMarketContract = "thor1vk6trmz42cjrh4zcxczeaacnsv3snv4f22x8ccu203dqde7vtaxsyevlec";
|
|
4
|
+
export declare const rujiTradeAsset: {
|
|
5
|
+
readonly rune: {
|
|
6
|
+
readonly quoteAsset: "THOR.RUNE";
|
|
7
|
+
readonly finDenom: "rune";
|
|
8
|
+
};
|
|
9
|
+
readonly brune: {
|
|
10
|
+
readonly quoteAsset: "x/brune";
|
|
11
|
+
readonly finDenom: "x/brune";
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare const rujiTradeDefaultSlippageBps = 100;
|
|
15
|
+
export declare const rujiTradeQuoteTtlMs = 60000;
|
|
16
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/ruji/config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,wBAA6B,CAAA;AAEpE,wFAAwF;AACxF,eAAO,MAAM,gCAAgC,oEAAoE,CAAA;AAEjH,eAAO,MAAM,cAAc;;;;;;;;;CASjB,CAAA;AAEV,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAG9C,eAAO,MAAM,mBAAmB,QAAS,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
export const rujiTradeSwapEnabledChains = [Chain.THORChain];
|
|
3
|
+
/** Supported FIN market for the only supported RUJI Trade pair: THOR.RUNE ↔ x/brune. */
|
|
4
|
+
export const rujiTradeRuneBruneMarketContract = 'thor1vk6trmz42cjrh4zcxczeaacnsv3snv4f22x8ccu203dqde7vtaxsyevlec';
|
|
5
|
+
export const rujiTradeAsset = {
|
|
6
|
+
rune: {
|
|
7
|
+
quoteAsset: 'THOR.RUNE',
|
|
8
|
+
finDenom: 'rune',
|
|
9
|
+
},
|
|
10
|
+
brune: {
|
|
11
|
+
quoteAsset: 'x/brune',
|
|
12
|
+
finDenom: 'x/brune',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
export const rujiTradeDefaultSlippageBps = 100;
|
|
16
|
+
// RUJI's native swap module treats a two-minute quote as non-executable during its final minute.
|
|
17
|
+
// Expose that same effective signing window so callers refresh before the safety buffer begins.
|
|
18
|
+
export const rujiTradeQuoteTtlMs = 60_000;
|
|
19
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/general/ruji/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAU,CAAA;AAEpE,wFAAwF;AACxF,MAAM,CAAC,MAAM,gCAAgC,GAAG,iEAAiE,CAAA;AAEjH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE;QACJ,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,MAAM;KACjB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,SAAS;KACpB;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAA;AAC9C,iGAAiG;AACjG,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapDestinationAddress.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/keysign/getSwapDestinationAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAInE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,8BAA8B,KAAG,
|
|
1
|
+
{"version":3,"file":"getSwapDestinationAddress.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/keysign/getSwapDestinationAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAInE,OAAO,EAAE,SAAS,EAAmB,MAAM,2CAA2C,CAAA;AAMtF,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,8BAA8B,KAAG,MAqB5F,CAAA"}
|
|
@@ -8,6 +8,7 @@ export const getSwapDestinationAddress = ({ quote, fromCoin }) => matchRecordUni
|
|
|
8
8
|
evm: ({ to }) => to,
|
|
9
9
|
solana: () => '',
|
|
10
10
|
transfer: ({ to }) => to,
|
|
11
|
+
cosmosWasm: ({ contract }) => contract,
|
|
11
12
|
// CowSwap orders are settled by the solver network. The destination
|
|
12
13
|
// address used for ERC-20 allowance checks (build.ts spender) must be
|
|
13
14
|
// the GPv2VaultRelayer contract — NOT the settlement contract or empty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapDestinationAddress.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/keysign/getSwapDestinationAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAG5F,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAOtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAkC,EAAU,EAAE,CACvG,gBAAgB,CAA0B,KAAK,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,KAAK,CAAC,EAAE,CACf,gBAAgB,CAAwB,KAAK,CAAC,EAAE,EAAE;QAChD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACnB,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;QAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACxB,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,mEAAmE;QACnE,wBAAwB;QACxB,aAAa,EAAE,GAAG,EAAE,CAAC,yBAAyB;KAC/C,CAAC;IACJ,MAAM,EAAE,KAAK,CAAC,EAAE;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAExF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAA;IAC7E,CAAC;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"getSwapDestinationAddress.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/keysign/getSwapDestinationAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAG5F,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAOtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAkC,EAAU,EAAE,CACvG,gBAAgB,CAA0B,KAAK,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,KAAK,CAAC,EAAE,CACf,gBAAgB,CAAwB,KAAK,CAAC,EAAE,EAAE;QAChD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACnB,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;QAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACxB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ;QACtC,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,mEAAmE;QACnE,wBAAwB;QACxB,aAAa,EAAE,GAAG,EAAE,CAAC,yBAAyB;KAC/C,CAAC;IACJ,MAAM,EAAE,KAAK,CAAC,EAAE;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAExF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAA;IAC7E,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -14,6 +14,8 @@ export type SwapQuoteResult = {
|
|
|
14
14
|
export type SwapQuote = {
|
|
15
15
|
quote: SwapQuoteResult;
|
|
16
16
|
discounts: SwapDiscount[];
|
|
17
|
+
/** Effective output recipient bound by `findSwapQuote`. Absent on legacy/manually constructed quotes. */
|
|
18
|
+
recipient?: string;
|
|
17
19
|
/** Source amount, in base units, bound by `findSwapQuote`. Absent on legacy/manually constructed quotes. */
|
|
18
20
|
requestedAmount?: bigint;
|
|
19
21
|
/** Absolute quote expiry in milliseconds, bound by `findSwapQuote`. Absent on legacy/manually constructed quotes. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/SwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE3C,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;KAC3B,CAAC,IAAI,QAAQ,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;KAAE;CAC/C,CAAC,QAAQ,CAAC,CAAA;AAEX,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,eAAe,CAAA;IACtB,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,4GAA4G;IAC5G,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qHAAqH;IACrH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GACpC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"SwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/SwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE3C,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;KAC3B,CAAC,IAAI,QAAQ,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;KAAE;CAC/C,CAAC,QAAQ,CAAC,CAAA;AAEX,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,eAAe,CAAA;IACtB,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4GAA4G;IAC5G,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qHAAqH;IACrH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GACpC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAA"}
|
|
@@ -29,8 +29,8 @@ export type FindSwapQuoteInput = Record<TransferDirection, AccountCoin> & {
|
|
|
29
29
|
* Optional external recipient for the swapped output. When omitted the swap
|
|
30
30
|
* pays out to the user's own derived address (existing behavior). When set,
|
|
31
31
|
* only providers that route the output to an explicit address are used —
|
|
32
|
-
* native THORChain/MayaChain (memo destination)
|
|
33
|
-
* `
|
|
32
|
+
* native THORChain/MayaChain (memo destination), CowSwap (order `receiver`),
|
|
33
|
+
* and RUJI Trade (FIN execute `to`); aggregators that would silently pay the initiator are skipped
|
|
34
34
|
* so funds are never sent to the wrong address.
|
|
35
35
|
*/
|
|
36
36
|
recipient?: string;
|
|
@@ -38,7 +38,7 @@ export type FindSwapQuoteInput = Record<TransferDirection, AccountCoin> & {
|
|
|
38
38
|
* Optional slippage tolerance, expressed in PERCENT (e.g. `0.5` = 0.5%,
|
|
39
39
|
* `3` = 3%). When omitted each provider keeps its own default. Applied to the
|
|
40
40
|
* general aggregators that accept a slippage override (1inch, KyberSwap, LiFi,
|
|
41
|
-
* SwapKit); CowSwap (RFQ limit order) and the native THORChain/MayaChain
|
|
41
|
+
* SwapKit, RUJI Trade); CowSwap (RFQ limit order) and the native THORChain/MayaChain
|
|
42
42
|
* protocols use their own protection mechanisms and ignore this value.
|
|
43
43
|
*/
|
|
44
44
|
slippageTolerance?: number;
|
|
@@ -55,7 +55,7 @@ export type FindSwapQuoteInput = Record<TransferDirection, AccountCoin> & {
|
|
|
55
55
|
*/
|
|
56
56
|
excludeProviders?: SwapQuoteProviderExcludeName[];
|
|
57
57
|
};
|
|
58
|
-
export type SwapQuoteProviderName = 'CowSwap' | 'KyberSwap' | '1inch' | 'LiFi' | 'SwapKit' | 'Jupiter' | 'THORChain' | 'MayaChain';
|
|
58
|
+
export type SwapQuoteProviderName = 'CowSwap' | 'KyberSwap' | '1inch' | 'LiFi' | 'SwapKit' | 'Jupiter' | 'RUJI Trade' | 'THORChain' | 'MayaChain';
|
|
59
59
|
export type SwapQuoteProviderExcludeName = SwapQuoteProviderName | GeneralSwapProvider;
|
|
60
60
|
/**
|
|
61
61
|
* A single fetched swap route: the fully bound quote (request amount, expiry,
|
|
@@ -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;AAEnE,OAAO,EAAuB,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAI3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAI9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAE7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EAEL,sBAAsB,EACvB,MAAM,mEAAmE,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;AAEnE,OAAO,EAAuB,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAI3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAI9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAE7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAEnF,OAAO,EAEL,sBAAsB,EACvB,MAAM,mEAAmE,CAAA;AAY1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAA;AAqB1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,aAAa,CAAA;AAE5D;;;;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;IAC1B,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,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;IAC1B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,4BAA4B,EAAE,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,YAAY,GACZ,WAAW,GACX,WAAW,CAAA;AAEf,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,GAAG,mBAAmB,CAAA;AAStF;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,cAAc,CAAA;IACrB,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAeD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAAa,CAAA;AAoD1D;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,qBAAqB,EAkB1D,CAAA;AAEV,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,kCAA0B,CAAA;AAulBhE;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,4EAA4E;IAC5E,IAAI,EAAE,cAAc,CAAA;IACpB;;;;;OAKG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC7B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,OAAO,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAmhB5F,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAU,OAAO,kBAAkB,KAAG,OAAO,CAAC,cAAc,CAClD,CAAA"}
|
|
@@ -12,6 +12,7 @@ import { getLifiSwapQuote } from '@vultisig/core-chain/swap/general/lifi/api/get
|
|
|
12
12
|
import { lifiSwapEnabledChains } from '@vultisig/core-chain/swap/general/lifi/LifiSwapEnabledChains';
|
|
13
13
|
import { getOneInchSwapQuote, } from '@vultisig/core-chain/swap/general/oneInch/api/getOneInchSwapQuote';
|
|
14
14
|
import { oneInchSwapEnabledChains } from '@vultisig/core-chain/swap/general/oneInch/OneInchSwapEnabledChains';
|
|
15
|
+
import { getRujiTradeSwapQuote, isRujiTradeSwapPair, } from '@vultisig/core-chain/swap/general/ruji/api/getRujiTradeSwapQuote';
|
|
15
16
|
import { getSwapKitQuote } from '@vultisig/core-chain/swap/general/swapkit/api/getSwapKitQuote';
|
|
16
17
|
import { swapKitEnabledChains, swapKitSourceChains, } from '@vultisig/core-chain/swap/general/swapkit/SwapKitEnabledChains';
|
|
17
18
|
import { SwapKitAmountBelowMinimumError } from '@vultisig/core-chain/swap/general/swapkit/SwapKitErrors';
|
|
@@ -30,6 +31,14 @@ import { HttpResponseError } from '@vultisig/lib-utils/fetch/HttpResponseError';
|
|
|
30
31
|
import { pick } from '@vultisig/lib-utils/record/pick';
|
|
31
32
|
import { cloneSwapSafetyValue, getSwapQuoteSafetyFingerprint } from './getSwapQuoteSafetyFingerprint.js';
|
|
32
33
|
const QUOTE_FETCH_TIMEOUT_MS = 30_000;
|
|
34
|
+
/**
|
|
35
|
+
* Budget for the single automatic re-attempt of an aggregator that failed
|
|
36
|
+
* transiently while a native protocol reported a halt (see
|
|
37
|
+
* `retryTransientFetchersAfterNativeHalt`). Deliberately shorter than the first
|
|
38
|
+
* attempt: the provider has already had the full budget and is warm, so a second
|
|
39
|
+
* full window would only double the wait before the all-fail classification.
|
|
40
|
+
*/
|
|
41
|
+
const QUOTE_FETCH_RETRY_TIMEOUT_MS = 10_000;
|
|
33
42
|
/**
|
|
34
43
|
* General aggregators do not expose a uniform quote deadline. Keep the bound
|
|
35
44
|
* transaction usable for a normal review-and-sign round trip while the SDK's
|
|
@@ -37,19 +46,23 @@ const QUOTE_FETCH_TIMEOUT_MS = 30_000;
|
|
|
37
46
|
* Provider-supplied deadlines (currently CoW's `validTo`) still win when sooner.
|
|
38
47
|
*/
|
|
39
48
|
export const GENERAL_QUOTE_PREPARATION_TTL_MS = 5 * 60_000;
|
|
40
|
-
const bindQuoteSafetyMetadata = (quote, from, to, requestedAmount) => {
|
|
49
|
+
const bindQuoteSafetyMetadata = (quote, from, to, recipient, requestedAmount) => {
|
|
41
50
|
const now = Date.now();
|
|
42
|
-
const expiresAt = 'native' in quote.quote
|
|
51
|
+
const expiresAt = 'native' in quote.quote
|
|
52
|
+
? quote.quote.native.expiry * 1000
|
|
53
|
+
: (quote.quote.general.expiresAt ?? now + GENERAL_QUOTE_PREPARATION_TTL_MS);
|
|
43
54
|
const effectiveExpiresAt = 'general' in quote.quote && 'cowswap_order' in quote.quote.general.tx
|
|
44
55
|
? Math.min(expiresAt, quote.quote.general.tx.cowswap_order.validTo * 1000)
|
|
45
56
|
: expiresAt;
|
|
46
57
|
return {
|
|
47
58
|
...quote,
|
|
59
|
+
recipient,
|
|
48
60
|
requestedAmount,
|
|
49
61
|
expiresAt: effectiveExpiresAt,
|
|
50
62
|
safetyFingerprint: getSwapQuoteSafetyFingerprint({
|
|
51
63
|
from,
|
|
52
64
|
to,
|
|
65
|
+
recipient,
|
|
53
66
|
requestedAmount,
|
|
54
67
|
expiresAt: effectiveExpiresAt,
|
|
55
68
|
quote: quote.quote,
|
|
@@ -85,6 +98,7 @@ export const providerPreferenceOrder = [
|
|
|
85
98
|
// competes for same-chain ERC-20 EVM pairs (see fetcher registration below);
|
|
86
99
|
// for every other pair it simply isn't in the candidate set.
|
|
87
100
|
'CowSwap',
|
|
101
|
+
'RUJI Trade',
|
|
88
102
|
'THORChain',
|
|
89
103
|
'MayaChain',
|
|
90
104
|
// Jupiter is slotted ahead of the EVM/multi-chain aggregators: it only enters
|
|
@@ -108,6 +122,7 @@ const swapQuoteProviderExcludeAlias = {
|
|
|
108
122
|
swapkit: 'SwapKit',
|
|
109
123
|
cowswap: 'CowSwap',
|
|
110
124
|
jupiter: 'Jupiter',
|
|
125
|
+
ruji: 'RUJI Trade',
|
|
111
126
|
};
|
|
112
127
|
const swapQuoteProviderExcludeNames = new Set([
|
|
113
128
|
...providerPreferenceOrder,
|
|
@@ -209,6 +224,102 @@ const isTransientProviderFailure = (reason) => {
|
|
|
209
224
|
lower.includes('skip api network error') ||
|
|
210
225
|
TRANSIENT_PROVIDER_CODE_RE.test(msg));
|
|
211
226
|
};
|
|
227
|
+
/**
|
|
228
|
+
* The providers whose failure can legitimately mean "this pair is halted".
|
|
229
|
+
* `assertNativeTradingOpen` only ever runs inside a THORChain/MayaChain fetcher,
|
|
230
|
+
* so a halt is scoped to the native protocol that raised it — every other
|
|
231
|
+
* fetcher is an aggregator with its own, independent route.
|
|
232
|
+
*/
|
|
233
|
+
const nativeSwapProviderNames = new Set(['THORChain', 'MayaChain']);
|
|
234
|
+
const isTradingHaltedRejection = (reason) => asTradingHaltedSwapError(reason) !== null ||
|
|
235
|
+
isTradingHaltedMsg(reason instanceof Error ? reason.message : String(reason));
|
|
236
|
+
/**
|
|
237
|
+
* Indexes of the rejected non-native fetchers that failed transiently — the
|
|
238
|
+
* retry set. Native fetchers are excluded: re-asking the protocol that raised
|
|
239
|
+
* the halt would only re-confirm it.
|
|
240
|
+
*/
|
|
241
|
+
const getTransientAggregatorIndexes = (settled, fetchers) => settled.flatMap((result, index) => result.status === 'rejected' &&
|
|
242
|
+
!nativeSwapProviderNames.has(fetchers[index].providerName) &&
|
|
243
|
+
isTransientProviderFailure(result.reason)
|
|
244
|
+
? [index]
|
|
245
|
+
: []);
|
|
246
|
+
/**
|
|
247
|
+
* Providers that failed transiently without reporting a halt themselves — routes
|
|
248
|
+
* that never declined this pair and could still fill it. A halt raised elsewhere
|
|
249
|
+
* cannot speak for them, so their presence rules out reporting the pair as
|
|
250
|
+
* halted. Unlike the retry set this includes a non-halted native protocol: when
|
|
251
|
+
* THORChain is halted and MayaChain merely timed out, MayaChain is unreachable,
|
|
252
|
+
* not halted.
|
|
253
|
+
*/
|
|
254
|
+
const getUnreachableProviderNames = (settled, fetchers) => settled.flatMap((result, index) => result.status === 'rejected' &&
|
|
255
|
+
!isTradingHaltedRejection(result.reason) &&
|
|
256
|
+
isTransientProviderFailure(result.reason)
|
|
257
|
+
? [fetchers[index].providerName]
|
|
258
|
+
: []);
|
|
259
|
+
/**
|
|
260
|
+
* One extra attempt at the aggregators that failed transiently while a native
|
|
261
|
+
* protocol reported a halt. Without it a THORChain halt plus a LiFi/SwapKit
|
|
262
|
+
* timeout collapses into "trading halted" for the whole pair, even though the
|
|
263
|
+
* aggregator — which the halt never applied to — usually answers on the very
|
|
264
|
+
* next tap. Returns the results unchanged when nothing qualifies, otherwise the
|
|
265
|
+
* original results with each retried outcome merged back in at its fetcher index.
|
|
266
|
+
*/
|
|
267
|
+
const retryTransientFetchersAfterNativeHalt = async ({ settled, fetchers, runFetchers, }) => {
|
|
268
|
+
const nativeHalted = settled.some((result, index) => result.status === 'rejected' &&
|
|
269
|
+
nativeSwapProviderNames.has(fetchers[index].providerName) &&
|
|
270
|
+
isTradingHaltedRejection(result.reason));
|
|
271
|
+
if (!nativeHalted) {
|
|
272
|
+
return settled;
|
|
273
|
+
}
|
|
274
|
+
const retryIndexes = getTransientAggregatorIndexes(settled, fetchers);
|
|
275
|
+
if (isEmpty(retryIndexes)) {
|
|
276
|
+
return settled;
|
|
277
|
+
}
|
|
278
|
+
const retried = await runFetchers(retryIndexes.map(index => fetchers[index]), QUOTE_FETCH_RETRY_TIMEOUT_MS);
|
|
279
|
+
const merged = [...settled];
|
|
280
|
+
retryIndexes.forEach((fetcherIndex, retryIndex) => {
|
|
281
|
+
merged[fetcherIndex] = retried[retryIndex];
|
|
282
|
+
});
|
|
283
|
+
return merged;
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* How an all-fail round in which some provider reported a halt should be
|
|
287
|
+
* reported, or `null` when nothing halted and the caller should fall through to
|
|
288
|
+
* its size/no-route classification.
|
|
289
|
+
*
|
|
290
|
+
* Trading-halt takes precedence over the speculative computed minimum and the
|
|
291
|
+
* generic fallback: when a protocol reports a halt, NO amount can route through
|
|
292
|
+
* it,
|
|
293
|
+
* so telling the user to "increase the amount" would be actively misleading. A
|
|
294
|
+
* genuine provider-reported below-minimum (handled by the caller first) still
|
|
295
|
+
* wins, since that provider is responding and the amount is the actionable
|
|
296
|
+
* lever. (#604)
|
|
297
|
+
*
|
|
298
|
+
* The halt only speaks for the provider that raised it, though. Any other route
|
|
299
|
+
* that was merely unreachable — an aggregator still failing after its retry, or a
|
|
300
|
+
* second native protocol that timed out — never declined this pair, so reporting
|
|
301
|
+
* a halt would send the user off to wait out an outage that was never blocking
|
|
302
|
+
* their route, while the truthful answer is that the route which could have
|
|
303
|
+
* filled simply could not be reached. (#2167)
|
|
304
|
+
*/
|
|
305
|
+
const getHaltAllFailError = ({ settled, fetchers, proactiveTradingHalt, haltedProviders, }) => {
|
|
306
|
+
if (!proactiveTradingHalt && haltedProviders.size === 0) {
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
const unreachableProviders = getUnreachableProviderNames(settled, fetchers);
|
|
310
|
+
if (isEmpty(unreachableProviders)) {
|
|
311
|
+
return (proactiveTradingHalt ??
|
|
312
|
+
new SwapError(SwapErrorCode.TradingHalted, formatTradingHaltedMessage(`trading is halted on ${[...haltedProviders].join(', ')}`)));
|
|
313
|
+
}
|
|
314
|
+
// Worded to stay classifiable downstream: it names the transient category
|
|
315
|
+
// (which `isTransientProviderFailure` and agent-backend-ts's
|
|
316
|
+
// `isTransientQuoteError` both key off) and deliberately avoids the halt
|
|
317
|
+
// wordings, so a consumer re-classifying this message does not read it back as
|
|
318
|
+
// a hard halt.
|
|
319
|
+
return new SwapError(SwapErrorCode.AllProvidersFailed, `Swap quote lookup failed: ${unreachableProviders.join(', ')} could not be reached due to a transient ` +
|
|
320
|
+
`network/timeout error, and the remaining route(s) (${[...haltedProviders].join(', ')}) are ` +
|
|
321
|
+
`temporarily unavailable. This is not a missing route — retry the same swap shortly.`);
|
|
322
|
+
};
|
|
212
323
|
/**
|
|
213
324
|
* Tuning point for issue #605's banded routing rule. 50 bps = 0.5%.
|
|
214
325
|
* Adjust this when product wants a wider or narrower provider-preference band.
|
|
@@ -240,7 +351,8 @@ const getGeneralDestinationSideFeeAmount = ({ quote, to }) => {
|
|
|
240
351
|
general.provider === 'kyber' ||
|
|
241
352
|
general.provider === 'swapkit' ||
|
|
242
353
|
general.provider === 'jupiter' ||
|
|
243
|
-
general.provider === 'cowswap'
|
|
354
|
+
general.provider === 'cowswap' ||
|
|
355
|
+
general.provider === 'ruji';
|
|
244
356
|
if (!providerAlreadyNet && explicitFee && isSameCoinKey(explicitFee, to)) {
|
|
245
357
|
return rebaseDecimals(explicitFee.amount, explicitFee.decimals, to.decimals);
|
|
246
358
|
}
|
|
@@ -424,6 +536,7 @@ const toProviderSlippage = (slippageTolerance) => {
|
|
|
424
536
|
lifiFraction: slippageTolerance !== undefined ? slippageTolerance / 100 : undefined,
|
|
425
537
|
kyberBps: bps,
|
|
426
538
|
jupiterBps: bps,
|
|
539
|
+
rujiBps: bps,
|
|
427
540
|
};
|
|
428
541
|
};
|
|
429
542
|
/**
|
|
@@ -449,8 +562,8 @@ export const findSwapQuotes = async (input) => {
|
|
|
449
562
|
const vultDiscount = vultDiscountTier ? [{ vult: { tier: vultDiscountTier } }] : [];
|
|
450
563
|
const referralDiscount = referral ? [{ referral: {} }] : [];
|
|
451
564
|
// When the caller requests an external recipient, restrict routing to the
|
|
452
|
-
// providers that send the swapped output to an explicit address (native
|
|
453
|
-
// CowSwap). Aggregators that pay the initiator would silently misroute funds,
|
|
565
|
+
// providers that send the swapped output to an explicit address (native,
|
|
566
|
+
// CowSwap, and RUJI Trade). Aggregators that pay the initiator would silently misroute funds,
|
|
454
567
|
// so they are not offered for custom-recipient swaps until they thread the
|
|
455
568
|
// receiver through (tracked in vultisig/vultisig-windows#4131).
|
|
456
569
|
// Trim and treat empty/whitespace strings as no recipient, so route gating
|
|
@@ -467,7 +580,7 @@ export const findSwapQuotes = async (input) => {
|
|
|
467
580
|
assertValidSlippageTolerance(slippageTolerance);
|
|
468
581
|
// Convert the slippage tolerance to each aggregator's native unit (see
|
|
469
582
|
// toProviderSlippage); `undefined` leaves each provider on its own default.
|
|
470
|
-
const { oneInchPercent: oneInchSlippagePercent, swapKitPercent: swapKitSlippagePercent, lifiFraction: lifiSlippageFraction, kyberBps: kyberSlippageBps, jupiterBps: jupiterSlippageBps, nativeBps: nativeSlippageBps, } = toProviderSlippage(slippageTolerance);
|
|
583
|
+
const { oneInchPercent: oneInchSlippagePercent, swapKitPercent: swapKitSlippagePercent, lifiFraction: lifiSlippageFraction, kyberBps: kyberSlippageBps, jupiterBps: jupiterSlippageBps, rujiBps: rujiSlippageBps, nativeBps: nativeSlippageBps, } = toProviderSlippage(slippageTolerance);
|
|
471
584
|
const involvedChains = [from.chain, to.chain];
|
|
472
585
|
const matchingSwapChains = nativeSwapChains.filter(swapChain => involvedChains.every(chain => isOneOf(chain, nativeSwapEnabledChainsRecord[swapChain])));
|
|
473
586
|
const getNativeFetchers = () => matchingSwapChains.map(swapChain => ({
|
|
@@ -498,6 +611,21 @@ export const findSwapQuotes = async (input) => {
|
|
|
498
611
|
const fromChain = from.chain;
|
|
499
612
|
const toChain = to.chain;
|
|
500
613
|
const chainAmount = amount;
|
|
614
|
+
if (isRujiTradeSwapPair(from, to)) {
|
|
615
|
+
result.push({
|
|
616
|
+
providerName: 'RUJI Trade',
|
|
617
|
+
fetch: async () => {
|
|
618
|
+
const general = await getRujiTradeSwapQuote({
|
|
619
|
+
from,
|
|
620
|
+
to,
|
|
621
|
+
amount: chainAmount,
|
|
622
|
+
destination: normalizedRecipient ?? to.address,
|
|
623
|
+
slippageBps: rujiSlippageBps,
|
|
624
|
+
});
|
|
625
|
+
return { quote: { general }, discounts: [] };
|
|
626
|
+
},
|
|
627
|
+
});
|
|
628
|
+
}
|
|
501
629
|
// CowSwap (Phase 2 — off-chain RFQ orders). Gated to same-chain ERC-20 →
|
|
502
630
|
// ERC-20 pairs on a CowSwap-supported EVM chain. Both sides must be ERC-20
|
|
503
631
|
// (`from.id` and `to.id` present): selling native ETH needs the GPv2
|
|
@@ -698,8 +826,8 @@ export const findSwapQuotes = async (input) => {
|
|
|
698
826
|
throw belowNativeMinimumError(nativeMin, from);
|
|
699
827
|
}
|
|
700
828
|
}
|
|
701
|
-
const
|
|
702
|
-
const quote = bindQuoteSafetyMetadata(await withTimeout(fetcher.fetch(),
|
|
829
|
+
const runFetchers = (list, timeoutMs) => Promise.allSettled(list.map(async (fetcher) => {
|
|
830
|
+
const quote = bindQuoteSafetyMetadata(await withTimeout(fetcher.fetch(), timeoutMs), from, to, normalizedRecipient ?? to.address, amount);
|
|
703
831
|
return {
|
|
704
832
|
quote,
|
|
705
833
|
outputAmount: getComparableOutputAmount(quote, to, fetcher.providerName),
|
|
@@ -707,10 +835,19 @@ export const findSwapQuotes = async (input) => {
|
|
|
707
835
|
providerName: fetcher.providerName,
|
|
708
836
|
};
|
|
709
837
|
}));
|
|
838
|
+
let settled = await runFetchers(fetchers, QUOTE_FETCH_TIMEOUT_MS);
|
|
710
839
|
const best = selectBestEligibleQuote(settled);
|
|
711
840
|
if (best) {
|
|
712
841
|
return { best, ranked: rankQuoteCandidates(settled) };
|
|
713
842
|
}
|
|
843
|
+
// A native halt is not a verdict on the aggregators that ran alongside it, so
|
|
844
|
+
// give the ones that merely blipped (timeout / network / 5xx) a second chance
|
|
845
|
+
// before the all-fail classification below can report the pair as halted.
|
|
846
|
+
settled = await retryTransientFetchersAfterNativeHalt({ settled, fetchers, runFetchers });
|
|
847
|
+
const bestAfterRetry = selectBestEligibleQuote(settled);
|
|
848
|
+
if (bestAfterRetry) {
|
|
849
|
+
return { best: bestAfterRetry, ranked: rankQuoteCandidates(settled) };
|
|
850
|
+
}
|
|
714
851
|
// Scan rejected results for actionable size-related signals. Prefer the most
|
|
715
852
|
// specific message available: a provider's "below minimum" hint beats the
|
|
716
853
|
// generic no-route fallback.
|
|
@@ -726,6 +863,7 @@ export const findSwapQuotes = async (input) => {
|
|
|
726
863
|
// resolution order. (#535 r3 — NeO preferably-blocking response.)
|
|
727
864
|
const belowMinimumProviderOrder = [
|
|
728
865
|
'CowSwap',
|
|
866
|
+
'RUJI Trade',
|
|
729
867
|
'KyberSwap',
|
|
730
868
|
'1inch',
|
|
731
869
|
'Jupiter',
|
|
@@ -755,7 +893,10 @@ export const findSwapQuotes = async (input) => {
|
|
|
755
893
|
if (isBelowMinimumMsg(msg) && !belowMinimumByProvider.has(fetchers[i].providerName)) {
|
|
756
894
|
belowMinimumByProvider.set(fetchers[i].providerName, msg);
|
|
757
895
|
}
|
|
758
|
-
|
|
896
|
+
// Matches the typed `SwapError` from `assertNativeTradingOpen` as well as a
|
|
897
|
+
// provider's halt wording, so the halt reporting below always knows which
|
|
898
|
+
// protocol raised it.
|
|
899
|
+
if (isTradingHaltedRejection(result.reason)) {
|
|
759
900
|
haltedProviders.add(fetchers[i].providerName);
|
|
760
901
|
}
|
|
761
902
|
}
|
|
@@ -767,16 +908,9 @@ export const findSwapQuotes = async (input) => {
|
|
|
767
908
|
: [...belowMinimumByProvider.values()][0];
|
|
768
909
|
throw new SwapError(SwapErrorCode.AmountBelowMinimum, `Amount below the minimum required by a swap provider. ${belowMinimumMessage}`);
|
|
769
910
|
}
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
// Trading-halt takes precedence over the speculative computed minimum and the
|
|
774
|
-
// generic fallback: when a native protocol reports a halt, NO amount can route,
|
|
775
|
-
// so telling the user to "increase the amount" would be actively misleading. A
|
|
776
|
-
// genuine provider-reported below-minimum (handled above) still wins, since
|
|
777
|
-
// that provider is responding and the amount is the actionable lever. (#604)
|
|
778
|
-
if (haltedProviders.size > 0) {
|
|
779
|
-
throw new SwapError(SwapErrorCode.TradingHalted, formatTradingHaltedMessage(`trading is halted on ${[...haltedProviders].join(', ')}`));
|
|
911
|
+
const haltError = getHaltAllFailError({ settled, fetchers, proactiveTradingHalt, haltedProviders });
|
|
912
|
+
if (haltError) {
|
|
913
|
+
throw haltError;
|
|
780
914
|
}
|
|
781
915
|
// No provider returned a parseable below-minimum hint. Before falling back to
|
|
782
916
|
// 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":"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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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"}
|
|
@@ -3,6 +3,7 @@ import type { SwapQuoteResult } from './SwapQuote.js';
|
|
|
3
3
|
type Input = {
|
|
4
4
|
from: AccountCoin;
|
|
5
5
|
to: AccountCoin;
|
|
6
|
+
recipient?: string;
|
|
6
7
|
requestedAmount: bigint;
|
|
7
8
|
expiresAt: number;
|
|
8
9
|
quote: SwapQuoteResult;
|
|
@@ -15,6 +16,6 @@ export declare const cloneSwapSafetyValue: <T>(value: T) => T;
|
|
|
15
16
|
* Pure and platform-neutral so preparation can recompute the same value before
|
|
16
17
|
* any wallet/key/payload work.
|
|
17
18
|
*/
|
|
18
|
-
export declare const getSwapQuoteSafetyFingerprint: ({ from, to, requestedAmount, expiresAt, quote }: Input) => string;
|
|
19
|
+
export declare const getSwapQuoteSafetyFingerprint: ({ from, to, recipient, requestedAmount, expiresAt, quote, }: Input) => string;
|
|
19
20
|
export {};
|
|
20
21
|
//# sourceMappingURL=getSwapQuoteSafetyFingerprint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapQuoteSafetyFingerprint.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/getSwapQuoteSafetyFingerprint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,CAWlD,CAAA;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GAAI,
|
|
1
|
+
{"version":3,"file":"getSwapQuoteSafetyFingerprint.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/getSwapQuoteSafetyFingerprint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,CAWlD,CAAA;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GAAI,6DAO3C,KAAK,KAAG,MAeR,CAAA"}
|
|
@@ -56,10 +56,11 @@ const coinIdentity = ({ chain, address, id, ticker, decimals }) => ({
|
|
|
56
56
|
* Pure and platform-neutral so preparation can recompute the same value before
|
|
57
57
|
* any wallet/key/payload work.
|
|
58
58
|
*/
|
|
59
|
-
export const getSwapQuoteSafetyFingerprint = ({ from, to, requestedAmount, expiresAt, quote }) => bytesToHex(sha256(new TextEncoder().encode(canonicalize({
|
|
59
|
+
export const getSwapQuoteSafetyFingerprint = ({ from, to, recipient, requestedAmount, expiresAt, quote, }) => bytesToHex(sha256(new TextEncoder().encode(canonicalize({
|
|
60
60
|
version: 1,
|
|
61
61
|
from: coinIdentity(from),
|
|
62
62
|
to: coinIdentity(to),
|
|
63
|
+
recipient,
|
|
63
64
|
requestedAmount,
|
|
64
65
|
expiresAt,
|
|
65
66
|
quote,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSwapQuoteSafetyFingerprint.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/getSwapQuoteSafetyFingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"getSwapQuoteSafetyFingerprint.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/getSwapQuoteSafetyFingerprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,ghCASpB,CAAA"}
|
|
@@ -3,6 +3,7 @@ import { jupiterSwapEnabledChains } from '@vultisig/core-chain/swap/general/jupi
|
|
|
3
3
|
import { kyberSwapEnabledChains } from '@vultisig/core-chain/swap/general/kyber/chains';
|
|
4
4
|
import { lifiSwapEnabledChains } from '@vultisig/core-chain/swap/general/lifi/LifiSwapEnabledChains';
|
|
5
5
|
import { oneInchSwapEnabledChains } from '@vultisig/core-chain/swap/general/oneInch/OneInchSwapEnabledChains';
|
|
6
|
+
import { rujiTradeSwapEnabledChains } from '@vultisig/core-chain/swap/general/ruji/config';
|
|
6
7
|
import { swapKitEnabledChains } from '@vultisig/core-chain/swap/general/swapkit/SwapKitEnabledChains';
|
|
7
8
|
import { nativeSwapEnabledChains } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
8
9
|
// EVERY provider's enabled-chain list must appear in this union (sdk#1151).
|
|
@@ -17,6 +18,7 @@ export const swapEnabledChains = [
|
|
|
17
18
|
...kyberSwapEnabledChains,
|
|
18
19
|
...oneInchSwapEnabledChains,
|
|
19
20
|
...jupiterSwapEnabledChains,
|
|
21
|
+
...rujiTradeSwapEnabledChains,
|
|
20
22
|
...lifiSwapEnabledChains,
|
|
21
23
|
...swapKitEnabledChains,
|
|
22
24
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapEnabledChains.js","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAA;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAA;AAE1F,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,mEAAmE;AACnE,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,uBAAuB;IAC1B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;IACzB,GAAG,wBAAwB;IAC3B,GAAG,wBAAwB;IAC3B,GAAG,qBAAqB;IACxB,GAAG,oBAAoB;CACf,CAAA"}
|
|
1
|
+
{"version":3,"file":"swapEnabledChains.js","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAA;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAA;AAE1F,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,mEAAmE;AACnE,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,uBAAuB;IAC1B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;IACzB,GAAG,wBAAwB;IAC3B,GAAG,wBAAwB;IAC3B,GAAG,0BAA0B;IAC7B,GAAG,qBAAqB;IACxB,GAAG,oBAAoB;CACf,CAAA"}
|
|
@@ -5,13 +5,13 @@ import { Chain } from '@vultisig/core-chain/Chain';
|
|
|
5
5
|
* - `li.fi` → scan.li.fi (or orb.helius.dev for Solana settlement)
|
|
6
6
|
* - `swapkit` → track.swapkit.dev
|
|
7
7
|
* - `cowswap` → explorer.cow.fi order page
|
|
8
|
-
* - `thorchain` / `mayachain` → native chain scanner
|
|
8
|
+
* - `thorchain` / `ruji` / `mayachain` → native chain scanner
|
|
9
9
|
* - `1inch`, `kyber`, `jupiter` → source-chain explorer fallback
|
|
10
10
|
*
|
|
11
11
|
* Keep this union in sync with iOS `ExplorerLinkBuilder.swift` and Android
|
|
12
12
|
* `ExplorerLinkRepository.getSwapProgressLink`.
|
|
13
13
|
*/
|
|
14
|
-
export declare const swapExplorerProviders: readonly ["1inch", "li.fi", "kyber", "swapkit", "cowswap", "jupiter", "mayachain", "thorchain"];
|
|
14
|
+
export declare const swapExplorerProviders: readonly ["1inch", "li.fi", "kyber", "swapkit", "cowswap", "jupiter", "ruji", "mayachain", "thorchain"];
|
|
15
15
|
export type SwapExplorerProvider = (typeof swapExplorerProviders)[number];
|
|
16
16
|
export type GetSwapExplorerUrlInput = {
|
|
17
17
|
provider: SwapExplorerProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/utils/getSwapExplorerUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAMlD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/utils/getSwapExplorerUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAMlD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,yGAA+D,CAAA;AAEjG,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzE,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,oBAAoB,CAAA;IAC9B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,SAAS,EAAE,KAAK,CAAA;CACjB,CAAA;AAKD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAAI,iCAAiC,uBAAuB,KAAG,MAmC7F,CAAA"}
|
|
@@ -9,7 +9,7 @@ import { getBlockExplorerUrl } from '@vultisig/core-chain/utils/getBlockExplorer
|
|
|
9
9
|
* - `li.fi` → scan.li.fi (or orb.helius.dev for Solana settlement)
|
|
10
10
|
* - `swapkit` → track.swapkit.dev
|
|
11
11
|
* - `cowswap` → explorer.cow.fi order page
|
|
12
|
-
* - `thorchain` / `mayachain` → native chain scanner
|
|
12
|
+
* - `thorchain` / `ruji` / `mayachain` → native chain scanner
|
|
13
13
|
* - `1inch`, `kyber`, `jupiter` → source-chain explorer fallback
|
|
14
14
|
*
|
|
15
15
|
* Keep this union in sync with iOS `ExplorerLinkBuilder.swift` and Android
|
|
@@ -39,6 +39,7 @@ export const getSwapExplorerUrl = ({ provider, txHash, fromChain }) => {
|
|
|
39
39
|
}
|
|
40
40
|
return `https://scan.li.fi/tx/${txHash}`;
|
|
41
41
|
case 'thorchain':
|
|
42
|
+
case 'ruji':
|
|
42
43
|
return `https://runescan.io/tx/${stripHexPrefix(txHash)}`;
|
|
43
44
|
case 'mayachain':
|
|
44
45
|
return `https://www.explorer.mayachain.info/tx/${stripHexPrefix(txHash)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/utils/getSwapExplorerUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sEAAsE,CAAA;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAA;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAA;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AAEpF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAU,CAAA;AAgBjG,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAC/C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAA2B,EAAU,EAAE;IACrG,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,0BAA0B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,KAAK,OAAO;YACV,wEAAwE;YACxE,sCAAsC;YACtC,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO,6BAA6B,MAAM,EAAE,CAAA;YAC9C,CAAC;YACD,OAAO,yBAAyB,MAAM,EAAE,CAAA;QAC1C,KAAK,WAAW;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/swap/utils/getSwapExplorerUrl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sEAAsE,CAAA;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAA;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAA;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AAEpF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAU,CAAA;AAgBjG,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAC/C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAE3E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAA2B,EAAU,EAAE;IACrG,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,0BAA0B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,KAAK,OAAO;YACV,wEAAwE;YACxE,sCAAsC;YACtC,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO,6BAA6B,MAAM,EAAE,CAAA;YAC9C,CAAC;YACD,OAAO,yBAAyB,MAAM,EAAE,CAAA;QAC1C,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,0BAA0B,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;QAC3D,KAAK,WAAW;YACd,OAAO,0CAA0C,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;QAC3E,KAAK,SAAS;YACZ,OAAO,CACL,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;gBAClD,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACvE,CAAA;QACH,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,qEAAqE;YACrE,iEAAiE;YACjE,OAAO,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/E,OAAO,CAAC,CAAC,CAAC;YACR,0EAA0E;YAC1E,uEAAuE;YACvE,iEAAiE;YACjE,MAAM,WAAW,GAAU,QAAQ,CAAA;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1853,6 +1853,16 @@
|
|
|
1853
1853
|
"import": "./dist/swap/general/priceImpactGuard.js",
|
|
1854
1854
|
"default": "./dist/swap/general/priceImpactGuard.js"
|
|
1855
1855
|
},
|
|
1856
|
+
"./swap/general/ruji/api/getRujiTradeSwapQuote": {
|
|
1857
|
+
"types": "./dist/swap/general/ruji/api/getRujiTradeSwapQuote.d.ts",
|
|
1858
|
+
"import": "./dist/swap/general/ruji/api/getRujiTradeSwapQuote.js",
|
|
1859
|
+
"default": "./dist/swap/general/ruji/api/getRujiTradeSwapQuote.js"
|
|
1860
|
+
},
|
|
1861
|
+
"./swap/general/ruji/config": {
|
|
1862
|
+
"types": "./dist/swap/general/ruji/config.d.ts",
|
|
1863
|
+
"import": "./dist/swap/general/ruji/config.js",
|
|
1864
|
+
"default": "./dist/swap/general/ruji/config.js"
|
|
1865
|
+
},
|
|
1856
1866
|
"./swap/general/swapkit/api/getSwapKitQuote": {
|
|
1857
1867
|
"types": "./dist/swap/general/swapkit/api/getSwapKitQuote.d.ts",
|
|
1858
1868
|
"import": "./dist/swap/general/swapkit/api/getSwapKitQuote.js",
|
|
@@ -2389,7 +2399,7 @@
|
|
|
2389
2399
|
"@solana/web3.js": "^1.98.4",
|
|
2390
2400
|
"@ton/core": "^0.63.1",
|
|
2391
2401
|
"@ton/crypto": "^3.3.0",
|
|
2392
|
-
"@trustwallet/wallet-core": "^4.7.
|
|
2402
|
+
"@trustwallet/wallet-core": "^4.7.3",
|
|
2393
2403
|
"@vultisig/core-config": "0.9.1",
|
|
2394
2404
|
"@vultisig/lib-utils": "0.10.6",
|
|
2395
2405
|
"bip32": "^5.0.1",
|