@vultisig/core-chain 4.0.1 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/chains/cardano/cip30/buildCoseStructures.d.ts +1 -1
- package/dist/chains/cardano/cip30/buildCoseStructures.js +2 -2
- package/dist/chains/cardano/cip30/buildCoseStructures.js.map +1 -1
- package/dist/chains/cardano/config.d.ts +31 -0
- package/dist/chains/cardano/config.d.ts.map +1 -1
- package/dist/chains/cardano/config.js +31 -0
- package/dist/chains/cardano/config.js.map +1 -1
- package/dist/chains/cosmos/cosmosHrp.d.ts +39 -0
- package/dist/chains/cosmos/cosmosHrp.d.ts.map +1 -0
- package/dist/chains/cosmos/cosmosHrp.js +65 -0
- package/dist/chains/cosmos/cosmosHrp.js.map +1 -0
- package/dist/chains/utxo/tx/buildSignBitcoinFromPsbt.d.ts +1 -1
- package/dist/chains/utxo/tx/buildSignBitcoinFromPsbt.d.ts.map +1 -1
- package/dist/chains/utxo/tx/buildSignBitcoinFromPsbt.js +1 -1
- package/dist/chains/utxo/tx/buildSignBitcoinFromPsbt.js.map +1 -1
- package/dist/security/tokenTransferGuards.d.ts +78 -0
- package/dist/security/tokenTransferGuards.d.ts.map +1 -0
- package/dist/security/tokenTransferGuards.js +203 -0
- package/dist/security/tokenTransferGuards.js.map +1 -0
- 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/dist/tx/status/resolvers/ton.d.ts +6 -0
- package/dist/tx/status/resolvers/ton.d.ts.map +1 -1
- package/dist/tx/status/resolvers/ton.js +39 -10
- package/dist/tx/status/resolvers/ton.js.map +1 -1
- package/package.json +22 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransferGuards.js","sourceRoot":"","sources":["../../../../../packages/core/chain/security/tokenTransferGuards.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"}
|