rubic-sdk 5.42.0-alpha.oneinch.20 → 5.42.0-alpha.oneinch.22
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-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 +4 -1
- package/lib/features/cross-chain/calculation-manager/providers/oneinch-provider/services/oneinch-ccr-api-service.js +27 -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<{
|
@@ -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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"}
|
@@ -4,6 +4,9 @@ export declare class OneinchCcrApiService {
|
|
4
4
|
private static readonly apiUrl;
|
5
5
|
private static readonly xApiUrl;
|
6
6
|
private static readonly apiKey;
|
7
|
+
/**
|
8
|
+
* @TODO add fee and source
|
9
|
+
*/
|
7
10
|
static fetchQuote({ srcToken, dstToken, walletAddress }: OneinchQuoteParams): Promise<OneinchCcrQuoteResponse>;
|
8
11
|
/**
|
9
12
|
* @TODO add fee=100&
|
@@ -15,6 +18,6 @@ source=rubic&
|
|
15
18
|
static fetchReadySecrets(orderHash: string): Promise<OneinchReadySecretsResponse>;
|
16
19
|
static submitSecretForSwapOrder(orderHash: string, secret: string): Promise<void>;
|
17
20
|
static fetchTxStatus(orderHash: string): Promise<TxStatusData>;
|
18
|
-
|
21
|
+
static fetchSrcTxHash(orderHash: string): Promise<string | null>;
|
19
22
|
private static getApiTokenAddress;
|
20
23
|
}
|
@@ -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");
|
@@ -9,9 +8,12 @@ const fake_wallet_address_1 = require("../../../../../common/constants/fake-wall
|
|
9
8
|
const oneinch_ccr_native_address_1 = require("../constants/oneinch-ccr-native-address");
|
10
9
|
const oneinch_ccr_utils_1 = require("./oneinch-ccr-utils");
|
11
10
|
class OneinchCcrApiService {
|
11
|
+
/**
|
12
|
+
* @TODO add fee and source
|
13
|
+
*/
|
12
14
|
static async fetchQuote({ srcToken, dstToken, walletAddress }) {
|
13
15
|
try {
|
14
|
-
const res = await
|
16
|
+
const res = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/quoter/v1.0/quote/receive`, {
|
15
17
|
headers: { apikey: this.apiKey },
|
16
18
|
params: {
|
17
19
|
srcChain: blockchain_id_1.blockchainId[srcToken.blockchain],
|
@@ -20,11 +22,10 @@ class OneinchCcrApiService {
|
|
20
22
|
dstTokenAddress: this.getApiTokenAddress(dstToken),
|
21
23
|
amount: srcToken.stringWeiAmount,
|
22
24
|
walletAddress: walletAddress || fake_wallet_address_1.FAKE_WALLET_ADDRESS,
|
23
|
-
enableEstimate: true
|
24
|
-
|
25
|
-
// source: 'rubic'
|
25
|
+
enableEstimate: true,
|
26
|
+
fee: 100
|
26
27
|
}
|
27
|
-
})
|
28
|
+
});
|
28
29
|
return res;
|
29
30
|
}
|
30
31
|
catch (err) {
|
@@ -45,7 +46,7 @@ dstTokenAddress=${this.getApiTokenAddress(dstToken)}&
|
|
45
46
|
amount=${srcToken.stringWeiAmount}&
|
46
47
|
walletAddress=${walletAddress}&
|
47
48
|
preset=${quote.recommendedPreset}`;
|
48
|
-
const res = await
|
49
|
+
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
50
|
return res;
|
50
51
|
}
|
51
52
|
catch (err) {
|
@@ -55,7 +56,7 @@ preset=${quote.recommendedPreset}`;
|
|
55
56
|
static async submitSwapOrder(quoteResp, swapResp, walletAddress, secretHashes) {
|
56
57
|
try {
|
57
58
|
const signature = await oneinch_ccr_utils_1.OneinchCcrUtils.signTypedData(swapResp.typedData, walletAddress);
|
58
|
-
|
59
|
+
await injector_1.Injector.httpClient.post(`${this.xApiUrl}/relayer/v1.0/submit`, {
|
59
60
|
signature,
|
60
61
|
order: swapResp.typedData.message,
|
61
62
|
srcChainId: swapResp.typedData.domain.chainId,
|
@@ -63,21 +64,6 @@ preset=${quote.recommendedPreset}`;
|
|
63
64
|
quoteId: quoteResp.quoteId,
|
64
65
|
...(secretHashes.length > 1 && { secretHashes })
|
65
66
|
}, { 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
67
|
}
|
82
68
|
catch (err) {
|
83
69
|
throw err;
|
@@ -85,7 +71,7 @@ preset=${quote.recommendedPreset}`;
|
|
85
71
|
}
|
86
72
|
static async fetchReadySecrets(orderHash) {
|
87
73
|
try {
|
88
|
-
const readySecrets = await
|
74
|
+
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
75
|
return readySecrets;
|
90
76
|
}
|
91
77
|
catch (err) {
|
@@ -94,10 +80,10 @@ preset=${quote.recommendedPreset}`;
|
|
94
80
|
}
|
95
81
|
static async submitSecretForSwapOrder(orderHash, secret) {
|
96
82
|
try {
|
97
|
-
await
|
83
|
+
await injector_1.Injector.httpClient.post(`${this.xApiUrl}/relayer/v1.0/submit/secret`, {
|
98
84
|
secret,
|
99
85
|
orderHash
|
100
|
-
}, { headers: { apikey: this.apiKey } })
|
86
|
+
}, { headers: { apikey: this.apiKey } });
|
101
87
|
}
|
102
88
|
catch (err) {
|
103
89
|
throw err;
|
@@ -105,7 +91,7 @@ preset=${quote.recommendedPreset}`;
|
|
105
91
|
}
|
106
92
|
static async fetchTxStatus(orderHash) {
|
107
93
|
try {
|
108
|
-
const { status } = await
|
94
|
+
const { status, fills } = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/orders/v1.0/order/status/${orderHash}`);
|
109
95
|
if (status === 'cancelled' || status === 'expired') {
|
110
96
|
return {
|
111
97
|
hash: null,
|
@@ -113,8 +99,12 @@ preset=${quote.recommendedPreset}`;
|
|
113
99
|
};
|
114
100
|
}
|
115
101
|
if (status === 'executed') {
|
102
|
+
const dstWithdrawnEvent = fills
|
103
|
+
.at(-1)
|
104
|
+
?.escrowEvents.find(e => e.action === 'withdrawn' && e.side === 'dst');
|
105
|
+
const dstTxHash = dstWithdrawnEvent?.transactionHash;
|
116
106
|
return {
|
117
|
-
hash:
|
107
|
+
hash: dstTxHash || null,
|
118
108
|
status: tx_status_1.TX_STATUS.SUCCESS
|
119
109
|
};
|
120
110
|
}
|
@@ -124,11 +114,15 @@ preset=${quote.recommendedPreset}`;
|
|
124
114
|
return { status: tx_status_1.TX_STATUS.PENDING, hash: null };
|
125
115
|
}
|
126
116
|
}
|
127
|
-
static async
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
117
|
+
static async fetchSrcTxHash(orderHash) {
|
118
|
+
try {
|
119
|
+
const { fills } = await injector_1.Injector.httpClient.get(`${this.xApiUrl}/orders/v1.0/order/status/${orderHash}`);
|
120
|
+
const srcEscrowFirstEvent = fills[0]?.escrowEvents.find(e => e.side === 'src' && e.action === 'src_escrow_created');
|
121
|
+
return srcEscrowFirstEvent?.transactionHash || null;
|
122
|
+
}
|
123
|
+
catch (err) {
|
124
|
+
throw err;
|
125
|
+
}
|
132
126
|
}
|
133
127
|
static getApiTokenAddress(token) {
|
134
128
|
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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"}
|