@rabby-wallet/rabby-swap 0.0.86-alpha.2 → 0.0.87-alpha.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/dist/consts.d.ts +2 -0
- package/dist/consts.js +2 -0
- package/dist/dexs/0xapi_v2.js +1 -0
- package/dist/dexs/kyberswap.js +1 -0
- package/dist/dexs/magpie.js +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/list.js +6 -0
- package/dist/utils.d.ts +9 -0
- package/dist/utils.js +22 -4
- package/package.json +1 -1
package/dist/consts.d.ts
CHANGED
package/dist/consts.js
CHANGED
package/dist/dexs/0xapi_v2.js
CHANGED
package/dist/dexs/kyberswap.js
CHANGED
package/dist/dexs/magpie.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WrapTokenAddressMap, DEX_SUPPORT_CHAINS, DEX_ROUTER_WHITELIST, DEX_SPENDER_WHITELIST } from "./list";
|
|
2
2
|
import { getQuote } from "./quote";
|
|
3
|
-
import { DEX_ENUM } from "./consts";
|
|
3
|
+
import { ARC_ERC20_USDC, DEX_ENUM } from "./consts";
|
|
4
4
|
import { UNI_NATIVE_TO_ADDRESSES } from "./dexs/uni";
|
|
5
5
|
export * from "./tokenPools";
|
|
6
6
|
export * from "./verify";
|
|
7
|
-
export { WrapTokenAddressMap, DEX_ENUM, DEX_SUPPORT_CHAINS, getQuote, DEX_ROUTER_WHITELIST, DEX_SPENDER_WHITELIST, UNI_NATIVE_TO_ADDRESSES, };
|
|
7
|
+
export { WrapTokenAddressMap, ARC_ERC20_USDC, DEX_ENUM, DEX_SUPPORT_CHAINS, getQuote, DEX_ROUTER_WHITELIST, DEX_SPENDER_WHITELIST, UNI_NATIVE_TO_ADDRESSES, };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WrapTokenAddressMap, DEX_SUPPORT_CHAINS, DEX_ROUTER_WHITELIST, DEX_SPENDER_WHITELIST, } from "./list";
|
|
2
2
|
import { getQuote } from "./quote";
|
|
3
|
-
import { DEX_ENUM } from "./consts";
|
|
3
|
+
import { ARC_ERC20_USDC, DEX_ENUM } from "./consts";
|
|
4
4
|
import { UNI_NATIVE_TO_ADDRESSES } from "./dexs/uni";
|
|
5
5
|
export * from "./tokenPools";
|
|
6
6
|
export * from "./verify";
|
|
7
|
-
export { WrapTokenAddressMap, DEX_ENUM, DEX_SUPPORT_CHAINS, getQuote, DEX_ROUTER_WHITELIST, DEX_SPENDER_WHITELIST, UNI_NATIVE_TO_ADDRESSES, };
|
|
7
|
+
export { WrapTokenAddressMap, ARC_ERC20_USDC, DEX_ENUM, DEX_SUPPORT_CHAINS, getQuote, DEX_ROUTER_WHITELIST, DEX_SPENDER_WHITELIST, UNI_NATIVE_TO_ADDRESSES, };
|
package/dist/list.js
CHANGED
|
@@ -211,6 +211,7 @@ export const DEX_ROUTER_WHITELIST = {
|
|
|
211
211
|
["UNI"]: "0x6131b5fae19ea4f9d964eac0408e4408b66337b5",
|
|
212
212
|
["PLASMA"]: "0x6131b5fae19ea4f9d964eac0408e4408b66337b5",
|
|
213
213
|
["HOOD"]: "0x6131b5fae19ea4f9d964eac0408e4408b66337b5",
|
|
214
|
+
["ARC"]: "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5",
|
|
214
215
|
},
|
|
215
216
|
[DEX_ENUM.PARASWAPV6]: {
|
|
216
217
|
[CHAINS_ENUM.ETH]: "0x6A000F20005980200259B80c5102003040001068",
|
|
@@ -256,6 +257,7 @@ export const DEX_ROUTER_WHITELIST = {
|
|
|
256
257
|
["MONAD"]: "0x0000000000001ff3684f28c67538d4d072c22734",
|
|
257
258
|
["HYPER"]: "0x0000000000001ff3684f28c67538d4d072c22734",
|
|
258
259
|
["HOOD"]: "0x0000000000001fF3684f28c67538d4D072C22734",
|
|
260
|
+
["ARC"]: "0x0000000000001fF3684f28c67538d4D072C22734",
|
|
259
261
|
},
|
|
260
262
|
[DEX_ENUM.MAGPIE]: {
|
|
261
263
|
[CHAINS_ENUM.ETH]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
@@ -287,6 +289,7 @@ export const DEX_ROUTER_WHITELIST = {
|
|
|
287
289
|
["KATANA"]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
288
290
|
["TEMPO"]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
289
291
|
["HOOD"]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
292
|
+
["ARC"]: "0x20F6ee51340aDEed01A59B0e65cB3703f3DC860c",
|
|
290
293
|
},
|
|
291
294
|
[DEX_ENUM.RABBY]: {
|
|
292
295
|
[CHAINS_ENUM.ETH]: "0x7fd9cfeef127451918c688c49e9905e47da3e985",
|
|
@@ -443,6 +446,7 @@ export const DEX_SPENDER_WHITELIST = {
|
|
|
443
446
|
["UNI"]: "0x6131b5fae19ea4f9d964eac0408e4408b66337b5",
|
|
444
447
|
["PLASMA"]: "0x6131b5fae19ea4f9d964eac0408e4408b66337b5",
|
|
445
448
|
["HOOD"]: "0x6131b5fae19ea4f9d964eac0408e4408b66337b5",
|
|
449
|
+
["ARC"]: "0x6131B5fae19EA4f9D964eAc0408E4408b66337b5",
|
|
446
450
|
},
|
|
447
451
|
[DEX_ENUM.PARASWAPV6]: {
|
|
448
452
|
[CHAINS_ENUM.ETH]: "0x6A000F20005980200259B80c5102003040001068",
|
|
@@ -488,6 +492,7 @@ export const DEX_SPENDER_WHITELIST = {
|
|
|
488
492
|
["MONAD"]: "0x0000000000001ff3684f28c67538d4d072c22734",
|
|
489
493
|
["HYPER"]: "0x0000000000001ff3684f28c67538d4d072c22734",
|
|
490
494
|
["HOOD"]: "0x0000000000001fF3684f28c67538d4D072C22734",
|
|
495
|
+
["ARC"]: "0x0000000000001fF3684f28c67538d4D072C22734",
|
|
491
496
|
},
|
|
492
497
|
[DEX_ENUM.MAGPIE]: {
|
|
493
498
|
[CHAINS_ENUM.ETH]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
@@ -519,6 +524,7 @@ export const DEX_SPENDER_WHITELIST = {
|
|
|
519
524
|
["KATANA"]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
520
525
|
["TEMPO"]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
521
526
|
["HOOD"]: "0x20f6ee51340adeed01a59b0e65cb3703f3dc860c",
|
|
527
|
+
["ARC"]: "0x20F6ee51340aDEed01A59B0e65cB3703f3DC860c",
|
|
522
528
|
},
|
|
523
529
|
[DEX_ENUM.RABBY]: {
|
|
524
530
|
[CHAINS_ENUM.ETH]: "0x7fd9cfeef127451918c688c49e9905e47da3e985",
|
package/dist/utils.d.ts
CHANGED
|
@@ -5,6 +5,15 @@ import { DEX_ENUM } from "./consts";
|
|
|
5
5
|
export declare const isSameAddress: (addr1: string, addr2: string) => boolean;
|
|
6
6
|
export declare const NULL_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
7
7
|
export declare const resolveToTokenReceiver: (encodedReceiver: string, txFrom: string) => string;
|
|
8
|
+
/** Uni quotes 0x3600 USDC as a native path on Arc; attach scaled native value. */
|
|
9
|
+
export declare const resolveSwapTxValue: ({ dex, chain, fromToken, payTokenId, nativeTokenAddress, amount, }: {
|
|
10
|
+
dex: DEX_ENUM;
|
|
11
|
+
chain?: CHAINS_ENUM | undefined;
|
|
12
|
+
fromToken: string;
|
|
13
|
+
payTokenId: string;
|
|
14
|
+
nativeTokenAddress: string;
|
|
15
|
+
amount: string;
|
|
16
|
+
}) => string;
|
|
8
17
|
export declare const generateGetQuote: ({ SUPPORT_CHAINS, id, dex, }: {
|
|
9
18
|
SUPPORT_CHAINS: CHAINS_ENUM[];
|
|
10
19
|
id: "matcha" | "matcha_v2" | "openocean" | "1inch_v6" | "paraswap" | "kyberswap" | "odos" | "paraswap_v6" | "magpie" | "sushi" | "rabby" | "uni";
|
package/dist/utils.js
CHANGED
|
@@ -8,7 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { CHAINS_ENUM } from "@debank/common";
|
|
11
|
-
import
|
|
11
|
+
import BigNumber from "bignumber.js";
|
|
12
|
+
import { ARC_ERC20_USDC, DEX_ENUM } from "./consts";
|
|
12
13
|
import { DEX_SPENDER_WHITELIST } from "./list";
|
|
13
14
|
export const isSameAddress = (addr1, addr2) => {
|
|
14
15
|
if (typeof addr1 !== "string" || typeof addr2 !== "string")
|
|
@@ -17,6 +18,17 @@ export const isSameAddress = (addr1, addr2) => {
|
|
|
17
18
|
};
|
|
18
19
|
export const NULL_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
19
20
|
export const resolveToTokenReceiver = (encodedReceiver, txFrom) => (isSameAddress(encodedReceiver, NULL_ADDRESS) ? txFrom : encodedReceiver);
|
|
21
|
+
const ARC = "ARC";
|
|
22
|
+
const ARC_USDC_TO_NATIVE_SCALE = 1e12;
|
|
23
|
+
/** Uni quotes 0x3600 USDC as a native path on Arc; attach scaled native value. */
|
|
24
|
+
export const resolveSwapTxValue = ({ dex, chain, fromToken, payTokenId, nativeTokenAddress, amount, }) => {
|
|
25
|
+
if (dex === DEX_ENUM.UNI &&
|
|
26
|
+
chain === ARC &&
|
|
27
|
+
isSameAddress(fromToken, ARC_ERC20_USDC)) {
|
|
28
|
+
return new BigNumber(amount).times(ARC_USDC_TO_NATIVE_SCALE).toFixed(0);
|
|
29
|
+
}
|
|
30
|
+
return isSameAddress(payTokenId, nativeTokenAddress) ? amount : "0";
|
|
31
|
+
};
|
|
20
32
|
export const generateGetQuote = ({ SUPPORT_CHAINS, id, dex, }) => (options, api) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
33
|
if (!options.chainServerId || !options.nativeTokenAddress) {
|
|
22
34
|
throw new Error(`lack chainServerId or nativeTokenAddress is not support}`);
|
|
@@ -40,12 +52,18 @@ export const generateGetQuote = ({ SUPPORT_CHAINS, id, dex, }) => (options, api)
|
|
|
40
52
|
params.no_pre_exec = true;
|
|
41
53
|
}
|
|
42
54
|
const data = yield api.getSwapQuote(params);
|
|
43
|
-
const isNativeToken = isSameAddress(data.pay_token.id, options.nativeTokenAddress);
|
|
44
55
|
return {
|
|
45
56
|
dexFeeDesc: data.dex_fee_desc,
|
|
46
57
|
tx: {
|
|
47
58
|
data: data.dex_swap_calldata,
|
|
48
|
-
value:
|
|
59
|
+
value: resolveSwapTxValue({
|
|
60
|
+
dex,
|
|
61
|
+
chain: options.chain,
|
|
62
|
+
fromToken: options.fromToken,
|
|
63
|
+
payTokenId: data.pay_token.id,
|
|
64
|
+
nativeTokenAddress: options.nativeTokenAddress,
|
|
65
|
+
amount: options.amount,
|
|
66
|
+
}),
|
|
49
67
|
to: data.dex_swap_to,
|
|
50
68
|
from: options.userAddress,
|
|
51
69
|
},
|
|
@@ -56,7 +74,7 @@ export const generateGetQuote = ({ SUPPORT_CHAINS, id, dex, }) => (options, api)
|
|
|
56
74
|
toTokenAmount: data.receive_token_raw_amount + "",
|
|
57
75
|
toTokenDecimals: data.receive_token.decimals,
|
|
58
76
|
spender: dex === DEX_ENUM.PARASWAP ||
|
|
59
|
-
(dex === DEX_ENUM.UNI && options.chain ===
|
|
77
|
+
(dex === DEX_ENUM.UNI && options.chain === ARC)
|
|
60
78
|
? DEX_SPENDER_WHITELIST[dex][options.chain]
|
|
61
79
|
: data.dex_swap_to,
|
|
62
80
|
gasUsed: data.gas_used,
|