rubic-sdk 5.42.0-alpha.oneinch.20 → 5.42.0-alpha.oneinch.21
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/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/models/oneinch-api-types.d.ts +10 -5
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-provider.js +1 -3
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-provider.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-trade.d.ts +0 -2
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-trade.js +2 -49
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-trade.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-api-service.d.ts +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-api-service.js +24 -33
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-api-service.js.map +1 -1
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-utils.d.ts +2 -1
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-utils.js +26 -17
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-utils.js.map +1 -1
- package/package.json +1 -1
@@ -1,10 +1,5 @@
|
|
1
1
|
import { PriceToken, PriceTokenAmount } from '../../../../../../common/tokens';
|
2
2
|
import { EvmBlockchainName } from '../../../../../../core/blockchain/models/blockchain-name';
|
3
|
-
export type OneinchResp<T> = T | {
|
4
|
-
description: string;
|
5
|
-
error: string;
|
6
|
-
statusCode: number;
|
7
|
-
};
|
8
3
|
export interface OneinchQuoteParams {
|
9
4
|
srcToken: PriceTokenAmount<EvmBlockchainName>;
|
10
5
|
dstToken: PriceToken<EvmBlockchainName>;
|
@@ -79,6 +74,16 @@ interface OneinchOrderDomain {
|
|
79
74
|
export interface OneinchStatusResponse {
|
80
75
|
orderHash: string;
|
81
76
|
status: 'pending' | 'executed' | 'expired' | 'cancelled' | 'refunding' | 'refunded';
|
77
|
+
fills: Array<{
|
78
|
+
status: string;
|
79
|
+
txHash: string;
|
80
|
+
escrowEvents: Array<{
|
81
|
+
transactionHash: string;
|
82
|
+
side: 'src' | 'dst';
|
83
|
+
action: 'src_escrow_created' | 'dst_escrow_created' | 'withdrawn' | 'funds_rescued' | 'escrow_cancelled';
|
84
|
+
blockTimestamp: number;
|
85
|
+
}>;
|
86
|
+
}>;
|
82
87
|
}
|
83
88
|
export interface OneinchReadySecretsResponse {
|
84
89
|
fills: Array<{
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.OneinchCcrProvider = void 0;
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
8
|
-
const errors_1 = require("../../../../../common/errors");
|
9
8
|
const tokens_1 = require("../../../../../common/tokens");
|
10
9
|
const get_from_without_fee_1 = require("../../../../common/utils/get-from-without-fee");
|
11
10
|
const cross_chain_trade_type_1 = require("../../models/cross-chain-trade-type");
|
@@ -28,8 +27,7 @@ class OneinchCcrProvider extends cross_chain_provider_1.CrossChainProvider {
|
|
28
27
|
const useProxy = false;
|
29
28
|
const walletAddress = options.fromAddress || this.getWalletAddress(fromBlockchain);
|
30
29
|
try {
|
31
|
-
if (from.isNative)
|
32
|
-
throw new errors_1.NotSupportedTokensError();
|
30
|
+
// if (from.isNative) throw new NotSupportedTokensError();
|
33
31
|
const feeInfo = await this.getFeeInfo(fromBlockchain, options.providerAddress, from, useProxy);
|
34
32
|
const fromWithoutFee = (0, get_from_without_fee_1.getFromWithoutFee)(from, feeInfo.rubicProxy?.platformFee?.percent);
|
35
33
|
const quote = await oneinch_ccr_api_service_1.OneinchCcrApiService.fetchQuote({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"oneinch-ccr-provider.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-provider.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AACrC,
|
1
|
+
{"version":3,"file":"oneinch-ccr-provider.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-provider.ts"],"names":[],"mappings":"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"}
|
@@ -36,8 +36,6 @@ export declare class OneinchCcrTrade extends EvmCrossChainTrade {
|
|
36
36
|
protected get methodName(): string;
|
37
37
|
constructor(params: OneinchCcrTradeParams);
|
38
38
|
swap(options?: SwapTransactionOptions): Promise<string | never>;
|
39
|
-
private needDefaultApprove;
|
40
|
-
private needPermit2Approve;
|
41
39
|
protected getContractParams(_options: GetContractParamsOptions, _skipAmountChangeCheck?: boolean): Promise<ContractParams>;
|
42
40
|
protected getTransactionConfigAndAmount(_receiverAddress?: string): Promise<{
|
43
41
|
config: EvmEncodeConfig;
|
package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-trade.js
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
3
|
exports.OneinchCcrTrade = void 0;
|
7
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
8
4
|
const blockchain_name_1 = require("../../../../../core/blockchain/models/blockchain-name");
|
9
5
|
const web3_pure_1 = require("../../../../../core/blockchain/web3-pure/web3-pure");
|
10
6
|
const check_unsupported_receiver_address_1 = require("../../../../common/utils/check-unsupported-receiver-address");
|
@@ -68,58 +64,15 @@ class OneinchCcrTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
|
|
68
64
|
});
|
69
65
|
this.oneinchOrderHash = swapOrder.orderHash;
|
70
66
|
await oneinch_ccr_api_service_1.OneinchCcrApiService.submitSwapOrder(this.quote, swapOrder, this.walletAddress, secretHashes);
|
71
|
-
const txHash = await oneinch_ccr_utils_1.OneinchCcrUtils.
|
67
|
+
const txHash = await oneinch_ccr_utils_1.OneinchCcrUtils.listenForSrcTxCompleted(swapOrder.orderHash);
|
72
68
|
options.onConfirm?.(txHash);
|
69
|
+
oneinch_ccr_utils_1.OneinchCcrUtils.listenForSecretsReadiness(swapOrder.orderHash, secrets);
|
73
70
|
return txHash;
|
74
71
|
}
|
75
72
|
catch (err) {
|
76
73
|
throw err;
|
77
74
|
}
|
78
75
|
}
|
79
|
-
// public override async needApprove(): Promise<boolean> {
|
80
|
-
// if (this.from.isNative) return false;
|
81
|
-
// const needPermit2Approve = await this.needPermit2Approve();
|
82
|
-
// const needApprove = await this.needDefaultApprove();
|
83
|
-
// return needPermit2Approve || needApprove;
|
84
|
-
// }
|
85
|
-
// public override async approve(
|
86
|
-
// options: EvmBasicTransactionOptions,
|
87
|
-
// _checkNeedApprove: boolean = true,
|
88
|
-
// amount: BigNumber | 'infinity' = 'infinity'
|
89
|
-
// ): Promise<TransactionReceipt> {
|
90
|
-
// this.checkWalletConnected();
|
91
|
-
// await this.checkBlockchainCorrect();
|
92
|
-
// const needDefaultApprove = await this.needDefaultApprove();
|
93
|
-
// const needPermit2Approve = await this.needPermit2Approve();
|
94
|
-
// let txReceipt: TransactionReceipt = {} as TransactionReceipt;
|
95
|
-
// if (needPermit2Approve) {
|
96
|
-
// txReceipt = await this.web3Private.approveOnPermit2(
|
97
|
-
// this.from.address,
|
98
|
-
// this.permit2Address,
|
99
|
-
// this.fromContractAddress,
|
100
|
-
// amount,
|
101
|
-
// new BigNumber(900_000),
|
102
|
-
// options
|
103
|
-
// );
|
104
|
-
// }
|
105
|
-
// if (needDefaultApprove) {
|
106
|
-
// txReceipt = await this.web3Private.approveTokens(
|
107
|
-
// this.from.address,
|
108
|
-
// this.permit2Address,
|
109
|
-
// amount,
|
110
|
-
// options
|
111
|
-
// );
|
112
|
-
// }
|
113
|
-
// return txReceipt;
|
114
|
-
// }
|
115
|
-
async needDefaultApprove() {
|
116
|
-
const allowance = await this.fromWeb3Public.getAllowance(this.from.address, this.walletAddress, this.fromContractAddress);
|
117
|
-
return this.from.weiAmount.gt(allowance);
|
118
|
-
}
|
119
|
-
async needPermit2Approve() {
|
120
|
-
const [allowance, expiration] = await this.fromWeb3Public.getAllowanceAndExpirationOnPermit2(this.from.address, this.walletAddress, this.fromContractAddress, this.permit2Address);
|
121
|
-
return this.from.weiAmount.gt(allowance) || new bignumber_js_1.default(Date.now()).gt(expiration);
|
122
|
-
}
|
123
76
|
async getContractParams(_options, _skipAmountChangeCheck) {
|
124
77
|
throw new Error('[OneinchCcrTrade_getContractParams] Fee is taken in order params `fee` and `feeReceiver`.');
|
125
78
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"oneinch-ccr-trade.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-trade.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"oneinch-ccr-trade.js","sourceRoot":"","sources":["../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/oneinch-ccr-trade.ts"],"names":[],"mappings":"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"}
|
@@ -15,6 +15,6 @@ source=rubic&
|
|
15
15
|
static fetchReadySecrets(orderHash: string): Promise<OneinchReadySecretsResponse>;
|
16
16
|
static submitSecretForSwapOrder(orderHash: string, secret: string): Promise<void>;
|
17
17
|
static fetchTxStatus(orderHash: string): Promise<TxStatusData>;
|
18
|
-
|
18
|
+
static fetchSrcTxHash(orderHash: string): Promise<string | null>;
|
19
19
|
private static getApiTokenAddress;
|
20
20
|
}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.OneinchCcrApiService = void 0;
|
4
|
-
const errors_1 = require("../../../../../../common/errors");
|
5
4
|
const blockchain_id_1 = require("../../../../../../core/blockchain/utils/blockchains-info/constants/blockchain-id");
|
6
5
|
const tx_status_1 = require("../../../../../../core/blockchain/web3-public-service/web3-public/models/tx-status");
|
7
6
|
const injector_1 = require("../../../../../../core/injector/injector");
|
@@ -11,7 +10,7 @@ const oneinch_ccr_utils_1 = require("./oneinch-ccr-utils");
|
|
11
10
|
class OneinchCcrApiService {
|
12
11
|
static async fetchQuote({ srcToken, dstToken, walletAddress }) {
|
13
12
|
try {
|
14
|
-
const res = await
|
13
|
+
const res = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/quoter/v1.0/quote/receive`, {
|
15
14
|
headers: { apikey: this.apiKey },
|
16
15
|
params: {
|
17
16
|
srcChain: blockchain_id_1.blockchainId[srcToken.blockchain],
|
@@ -20,11 +19,10 @@ class OneinchCcrApiService {
|
|
20
19
|
dstTokenAddress: this.getApiTokenAddress(dstToken),
|
21
20
|
amount: srcToken.stringWeiAmount,
|
22
21
|
walletAddress: walletAddress || fake_wallet_address_1.FAKE_WALLET_ADDRESS,
|
23
|
-
enableEstimate: true
|
24
|
-
|
25
|
-
// source: 'rubic'
|
22
|
+
enableEstimate: true,
|
23
|
+
fee: 100
|
26
24
|
}
|
27
|
-
})
|
25
|
+
});
|
28
26
|
return res;
|
29
27
|
}
|
30
28
|
catch (err) {
|
@@ -45,7 +43,7 @@ dstTokenAddress=${this.getApiTokenAddress(dstToken)}&
|
|
45
43
|
amount=${srcToken.stringWeiAmount}&
|
46
44
|
walletAddress=${walletAddress}&
|
47
45
|
preset=${quote.recommendedPreset}`;
|
48
|
-
const res = await
|
46
|
+
const res = await injector_1.Injector.httpClient.post(`${this.xApiUrl}/quoter/v1.0/quote/build?${queryParams}`, { quote: quote, secretsHashList: secretHashes }, { headers: { apikey: this.apiKey } });
|
49
47
|
return res;
|
50
48
|
}
|
51
49
|
catch (err) {
|
@@ -55,7 +53,7 @@ preset=${quote.recommendedPreset}`;
|
|
55
53
|
static async submitSwapOrder(quoteResp, swapResp, walletAddress, secretHashes) {
|
56
54
|
try {
|
57
55
|
const signature = await oneinch_ccr_utils_1.OneinchCcrUtils.signTypedData(swapResp.typedData, walletAddress);
|
58
|
-
|
56
|
+
await injector_1.Injector.httpClient.post(`${this.xApiUrl}/relayer/v1.0/submit`, {
|
59
57
|
signature,
|
60
58
|
order: swapResp.typedData.message,
|
61
59
|
srcChainId: swapResp.typedData.domain.chainId,
|
@@ -63,21 +61,6 @@ preset=${quote.recommendedPreset}`;
|
|
63
61
|
quoteId: quoteResp.quoteId,
|
64
62
|
...(secretHashes.length > 1 && { secretHashes })
|
65
63
|
}, { headers: { apikey: this.apiKey } });
|
66
|
-
// const res = await this.catchApiError(
|
67
|
-
// Injector.httpClient.post(
|
68
|
-
// `${this.xApiUrl}/relayer/v1.0/submit`,
|
69
|
-
// {
|
70
|
-
// signature,
|
71
|
-
// order: swapResp.typedData.message,
|
72
|
-
// srcChainId: swapResp.typedData.domain.chainId,
|
73
|
-
// extension: swapResp.extension,
|
74
|
-
// quoteId: quoteResp.quoteId,
|
75
|
-
// ...(secretHashes.length > 1 && { secretHashes })
|
76
|
-
// },
|
77
|
-
// { headers: { apikey: this.apiKey } }
|
78
|
-
// )
|
79
|
-
// );
|
80
|
-
console.log(`[OneinchCcrApiService_submitSwapOrder] %cResponse is ${res}`, 'color: green; font-size: 24px;');
|
81
64
|
}
|
82
65
|
catch (err) {
|
83
66
|
throw err;
|
@@ -85,7 +68,7 @@ preset=${quote.recommendedPreset}`;
|
|
85
68
|
}
|
86
69
|
static async fetchReadySecrets(orderHash) {
|
87
70
|
try {
|
88
|
-
const readySecrets = await
|
71
|
+
const readySecrets = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/orders/v1.0/order/ready-to-accept-secret-fills/${orderHash}`, { headers: { apikey: this.apiKey } });
|
89
72
|
return readySecrets;
|
90
73
|
}
|
91
74
|
catch (err) {
|
@@ -94,10 +77,10 @@ preset=${quote.recommendedPreset}`;
|
|
94
77
|
}
|
95
78
|
static async submitSecretForSwapOrder(orderHash, secret) {
|
96
79
|
try {
|
97
|
-
await
|
80
|
+
await injector_1.Injector.httpClient.post(`${this.xApiUrl}/relayer/v1.0/submit/secret`, {
|
98
81
|
secret,
|
99
82
|
orderHash
|
100
|
-
}, { headers: { apikey: this.apiKey } })
|
83
|
+
}, { headers: { apikey: this.apiKey } });
|
101
84
|
}
|
102
85
|
catch (err) {
|
103
86
|
throw err;
|
@@ -105,7 +88,7 @@ preset=${quote.recommendedPreset}`;
|
|
105
88
|
}
|
106
89
|
static async fetchTxStatus(orderHash) {
|
107
90
|
try {
|
108
|
-
const { status } = await
|
91
|
+
const { status, fills } = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/orders/v1.0/order/status/${orderHash}`);
|
109
92
|
if (status === 'cancelled' || status === 'expired') {
|
110
93
|
return {
|
111
94
|
hash: null,
|
@@ -113,8 +96,12 @@ preset=${quote.recommendedPreset}`;
|
|
113
96
|
};
|
114
97
|
}
|
115
98
|
if (status === 'executed') {
|
99
|
+
const dstWithdrawnEvent = fills
|
100
|
+
.at(-1)
|
101
|
+
?.escrowEvents.find(e => e.action === 'withdrawn' && e.side === 'dst');
|
102
|
+
const dstTxHash = dstWithdrawnEvent?.transactionHash;
|
116
103
|
return {
|
117
|
-
hash:
|
104
|
+
hash: dstTxHash || null,
|
118
105
|
status: tx_status_1.TX_STATUS.SUCCESS
|
119
106
|
};
|
120
107
|
}
|
@@ -124,11 +111,15 @@ preset=${quote.recommendedPreset}`;
|
|
124
111
|
return { status: tx_status_1.TX_STATUS.PENDING, hash: null };
|
125
112
|
}
|
126
113
|
}
|
127
|
-
static async
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
114
|
+
static async fetchSrcTxHash(orderHash) {
|
115
|
+
try {
|
116
|
+
const { fills } = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/orders/v1.0/order/status/${orderHash}`);
|
117
|
+
const srcEscrowFirstEvent = fills[0]?.escrowEvents.find(e => e.side === 'src' && e.action === 'src_escrow_created');
|
118
|
+
return srcEscrowFirstEvent?.transactionHash || null;
|
119
|
+
}
|
120
|
+
catch (err) {
|
121
|
+
throw err;
|
122
|
+
}
|
132
123
|
}
|
133
124
|
static getApiTokenAddress(token) {
|
134
125
|
return token.isNative ? oneinch_ccr_native_address_1.ONEINCH_NATIVE_ADDRESS : token.address;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"oneinch-ccr-api-service.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-api-service.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"oneinch-ccr-api-service.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-api-service.ts"],"names":[],"mappings":"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"}
|
@@ -5,7 +5,8 @@ export declare class OneinchCcrUtils {
|
|
5
5
|
* submits each ready secret created in createSecretHashes array untill all secrets will be submitted
|
6
6
|
* @warning used only for orders with more than 1 secrets
|
7
7
|
*/
|
8
|
-
static listenForSecretsReadiness(orderHash: string, secrets: string[]): Promise<
|
8
|
+
static listenForSecretsReadiness(orderHash: string, secrets: string[]): Promise<void>;
|
9
|
+
static listenForSrcTxCompleted(orderHash: string): Promise<SrcTxHash>;
|
9
10
|
/**
|
10
11
|
* @returns signature of signed calldata
|
11
12
|
*/
|
@@ -12,25 +12,34 @@ class OneinchCcrUtils {
|
|
12
12
|
static async listenForSecretsReadiness(orderHash, secrets) {
|
13
13
|
const submittedSecrets = {};
|
14
14
|
const deadlineMS = Date.now() + 1000 * 900; // 15 minutes
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
srcTxHash = secret.srcEscrowDeployTxHash;
|
15
|
+
(async () => {
|
16
|
+
while (Date.now() < deadlineMS) {
|
17
|
+
await (0, waitFor_1.waitFor)(30000);
|
18
|
+
const isAllSecretsSubmitted = secrets.every((hash, ind) => submittedSecrets[ind] === hash);
|
19
|
+
if (isAllSecretsSubmitted)
|
20
|
+
break;
|
21
|
+
const readySecrets = await oneinch_ccr_api_service_1.OneinchCcrApiService.fetchReadySecrets(orderHash).catch(() => null);
|
22
|
+
if (!readySecrets || !readySecrets.fills.length)
|
23
|
+
continue;
|
24
|
+
for (const secret of readySecrets.fills) {
|
25
|
+
const isSubmitted = !!submittedSecrets[secret.idx];
|
26
|
+
if (!isSubmitted) {
|
27
|
+
await oneinch_ccr_api_service_1.OneinchCcrApiService.submitSecretForSwapOrder(orderHash, secrets[secret.idx]);
|
28
|
+
submittedSecrets[secret.idx] = secrets[secret.idx];
|
29
|
+
}
|
30
|
+
// if (secret.idx === 0) {
|
31
|
+
// srcTxHash = secret.srcEscrowDeployTxHash;
|
32
|
+
// }
|
32
33
|
}
|
33
34
|
}
|
35
|
+
})();
|
36
|
+
}
|
37
|
+
static async listenForSrcTxCompleted(orderHash) {
|
38
|
+
const deadlineMS = Date.now() + 1000 * 600; // 10 minutes
|
39
|
+
let srcTxHash = null;
|
40
|
+
while (Date.now() < deadlineMS || srcTxHash) {
|
41
|
+
await (0, waitFor_1.waitFor)(10000);
|
42
|
+
srcTxHash = await oneinch_ccr_api_service_1.OneinchCcrApiService.fetchSrcTxHash(orderHash);
|
34
43
|
}
|
35
44
|
return srcTxHash;
|
36
45
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"oneinch-ccr-utils.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-utils.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,sDAAmD;AAGnD,uEAAiE;AAKjE,MAAa,eAAe;IACxB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,yBAAyB,CACzC,SAAiB,EACjB,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,EAAiC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAK,GAAG,GAAG,CAAC,CAAC,aAAa;
|
1
|
+
{"version":3,"file":"oneinch-ccr-utils.js","sourceRoot":"","sources":["../../../../../../../src/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-utils.ts"],"names":[],"mappings":"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"}
|