@rabby-wallet/rabby-bridge 0.0.9-alpha.0 → 0.0.10-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/chains.d.ts +2 -1
- package/dist/chains.js +2 -0
- package/dist/data.d.ts +14 -0
- package/dist/data.js +14 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/list.d.ts +1 -0
- package/dist/list.js +9 -1
- package/dist/quote.js +2 -1
- package/package.json +1 -1
package/dist/chains.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CHAINS_ENUM as DBK_CHAINS_ENUM } from '@debank/common';
|
|
2
2
|
export declare const CHAINS_ENUM: typeof DBK_CHAINS_ENUM;
|
|
3
|
-
export declare const EXTRA_CHAINS: readonly ["XDC", "UNI", "RONIN", "XLAYER", "MONAD", "SONIC", "LENS", "WORLD", "STABLE", "HYPER", "LISK", "SEI", "GRAVITY", "SONEIUM", "SWELL", "ABS", "MORPH", "TEMPO", "MEGAETH", "PLASMA", "APE", "HEMI", "SOPHON", "INK", "BOB", "BERA", "PLUME", "TAIKO", "KATANA", "STORY", "CYBER", "ZIRCUIT", "HOOD"];
|
|
3
|
+
export declare const EXTRA_CHAINS: readonly ["XDC", "UNI", "RONIN", "XLAYER", "MONAD", "SONIC", "LENS", "WORLD", "STABLE", "HYPER", "LISK", "SEI", "GRAVITY", "SONEIUM", "SWELL", "ABS", "MORPH", "TEMPO", "MEGAETH", "PLASMA", "APE", "HEMI", "SOPHON", "INK", "BOB", "BERA", "PLUME", "TAIKO", "KATANA", "STORY", "CYBER", "ZIRCUIT", "HOOD", "ARC"];
|
|
4
4
|
export type ExtraChainEnum = (typeof EXTRA_CHAINS)[number];
|
|
5
5
|
export type ChainEnum = DBK_CHAINS_ENUM | ExtraChainEnum;
|
|
6
6
|
export declare const SERVER_ID_TO_CHAIN_ENUM: {
|
|
@@ -61,6 +61,7 @@ export declare const SERVER_ID_TO_CHAIN_ENUM: {
|
|
|
61
61
|
readonly cyber: ChainEnum;
|
|
62
62
|
readonly zircuit: ChainEnum;
|
|
63
63
|
readonly hood: ChainEnum;
|
|
64
|
+
readonly arc: ChainEnum;
|
|
64
65
|
readonly zora: DBK_CHAINS_ENUM.ZORA;
|
|
65
66
|
};
|
|
66
67
|
export declare const CHAIN_ENUM_TO_SERVER_ID: Record<ChainEnum, string>;
|
package/dist/chains.js
CHANGED
|
@@ -34,6 +34,7 @@ export const EXTRA_CHAINS = [
|
|
|
34
34
|
'CYBER',
|
|
35
35
|
'ZIRCUIT',
|
|
36
36
|
'HOOD',
|
|
37
|
+
'ARC',
|
|
37
38
|
];
|
|
38
39
|
export const SERVER_ID_TO_CHAIN_ENUM = {
|
|
39
40
|
eth: CHAINS_ENUM.ETH,
|
|
@@ -93,6 +94,7 @@ export const SERVER_ID_TO_CHAIN_ENUM = {
|
|
|
93
94
|
cyber: 'CYBER',
|
|
94
95
|
zircuit: 'ZIRCUIT',
|
|
95
96
|
hood: 'HOOD',
|
|
97
|
+
arc: 'ARC',
|
|
96
98
|
zora: CHAINS_ENUM.ZORA,
|
|
97
99
|
};
|
|
98
100
|
export const CHAIN_ENUM_TO_SERVER_ID = Object.fromEntries(Object.entries(SERVER_ID_TO_CHAIN_ENUM).map(([serverId, chainEnum]) => [
|
package/dist/data.d.ts
CHANGED
|
@@ -34,12 +34,14 @@ declare const EXTRA_CHAINS: {
|
|
|
34
34
|
readonly CYBER: ChainEnum;
|
|
35
35
|
readonly ZIRCUIT: ChainEnum;
|
|
36
36
|
readonly HOOD: ChainEnum;
|
|
37
|
+
readonly ARC: ChainEnum;
|
|
37
38
|
};
|
|
38
39
|
export declare const BRIDGE_SUPPORT_CHAINS_DATA: {
|
|
39
40
|
readonly near_intents: [import("@debank/common").CHAINS_ENUM.ETH, import("@debank/common").CHAINS_ENUM.ARBITRUM, import("@debank/common").CHAINS_ENUM.BASE, import("@debank/common").CHAINS_ENUM.BSC, import("@debank/common").CHAINS_ENUM.POLYGON, import("@debank/common").CHAINS_ENUM.OP, import("@debank/common").CHAINS_ENUM.AVAX, import("@debank/common").CHAINS_ENUM.GNOSIS, import("@debank/common").CHAINS_ENUM.SCRL, ChainEnum, ChainEnum];
|
|
40
41
|
};
|
|
41
42
|
export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
|
|
42
43
|
readonly lifi: {
|
|
44
|
+
readonly [EXTRA_CHAINS.ARC]: "0xa4072583658fae592a3506a42431cb6316a8d40b";
|
|
43
45
|
readonly [EXTRA_CHAINS.XDC]: "0x055d4612ec74ad799c6cb4df72c0ab8dbdbcbafa";
|
|
44
46
|
readonly [EXTRA_CHAINS.UNI]: "0x864b314d4c5a0399368609581d3e8933a63b9232";
|
|
45
47
|
readonly [EXTRA_CHAINS.MONAD]: "0x026f252016a7c47cdef1f05a3fc9e20c92a49c37";
|
|
@@ -129,6 +131,7 @@ export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
|
|
|
129
131
|
readonly [EXTRA_CHAINS.SEI]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
130
132
|
readonly [EXTRA_CHAINS.SONEIUM]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
131
133
|
readonly [EXTRA_CHAINS.HOOD]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
134
|
+
readonly [EXTRA_CHAINS.ARC]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
132
135
|
readonly ETH: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
133
136
|
readonly ARBITRUM: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
134
137
|
readonly OP: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
@@ -171,6 +174,7 @@ export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
|
|
|
171
174
|
readonly [EXTRA_CHAINS.MEGAETH]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
172
175
|
readonly [EXTRA_CHAINS.PLASMA]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
173
176
|
readonly [EXTRA_CHAINS.HOOD]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
177
|
+
readonly [EXTRA_CHAINS.ARC]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
174
178
|
readonly ETH: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
175
179
|
readonly OP: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
176
180
|
readonly CRO: "0x59916da825d2d2ec1bf878d71c88826f6633ecca";
|
|
@@ -240,6 +244,7 @@ export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
|
|
|
240
244
|
readonly [EXTRA_CHAINS.MONAD]: "0xd2ecb3afe598b746f8123cae365a598da831a449";
|
|
241
245
|
readonly [EXTRA_CHAINS.PLASMA]: "0x50039faefebef707cfd94d6d462fe6d10b39207a";
|
|
242
246
|
readonly [EXTRA_CHAINS.HOOD]: "0xD29C85F15DF544bA632C9E25829fd29d767d7978";
|
|
247
|
+
readonly [EXTRA_CHAINS.ARC]: "0x9b4a302a548c7e313c2b74c461db7b84d3074a84";
|
|
243
248
|
readonly ETH: "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5";
|
|
244
249
|
readonly OP: "0x6f26bf09b1c792e3228e5467807a900a503c0281";
|
|
245
250
|
readonly ARBITRUM: "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a";
|
|
@@ -259,6 +264,7 @@ export declare const BRIDGE_ALT_CONTRACTS_DATA: {
|
|
|
259
264
|
};
|
|
260
265
|
export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
261
266
|
readonly lifi: {
|
|
267
|
+
readonly [EXTRA_CHAINS.ARC]: "0xa4072583658fae592a3506a42431cb6316a8d40b";
|
|
262
268
|
readonly [EXTRA_CHAINS.XDC]: "0x055d4612ec74ad799c6cb4df72c0ab8dbdbcbafa";
|
|
263
269
|
readonly [EXTRA_CHAINS.UNI]: "0x864b314d4c5a0399368609581d3e8933a63b9232";
|
|
264
270
|
readonly [EXTRA_CHAINS.MONAD]: "0x026f252016a7c47cdef1f05a3fc9e20c92a49c37";
|
|
@@ -348,6 +354,7 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
348
354
|
readonly [EXTRA_CHAINS.SEI]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
349
355
|
readonly [EXTRA_CHAINS.SONEIUM]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
350
356
|
readonly [EXTRA_CHAINS.HOOD]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
357
|
+
readonly [EXTRA_CHAINS.ARC]: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
351
358
|
readonly ETH: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
352
359
|
readonly ARBITRUM: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
353
360
|
readonly OP: "0x50c4e75a512f2a14a7b304787adf79c4531a5909";
|
|
@@ -390,6 +397,7 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
390
397
|
readonly [EXTRA_CHAINS.MEGAETH]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
391
398
|
readonly [EXTRA_CHAINS.PLASMA]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
392
399
|
readonly [EXTRA_CHAINS.HOOD]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
400
|
+
readonly [EXTRA_CHAINS.ARC]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
393
401
|
readonly ETH: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
394
402
|
readonly OP: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
395
403
|
readonly CRO: "0x59916da825d2d2ec1bf878d71c88826f6633ecca";
|
|
@@ -459,6 +467,7 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
459
467
|
readonly [EXTRA_CHAINS.MONAD]: "0xd2ecb3afe598b746f8123cae365a598da831a449";
|
|
460
468
|
readonly [EXTRA_CHAINS.PLASMA]: "0x50039faefebef707cfd94d6d462fe6d10b39207a";
|
|
461
469
|
readonly [EXTRA_CHAINS.HOOD]: "0xD29C85F15DF544bA632C9E25829fd29d767d7978";
|
|
470
|
+
readonly [EXTRA_CHAINS.ARC]: "0x9b4a302a548c7e313c2b74c461db7b84d3074a84";
|
|
462
471
|
readonly ETH: "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5";
|
|
463
472
|
readonly OP: "0x6f26bf09b1c792e3228e5467807a900a503c0281";
|
|
464
473
|
readonly ARBITRUM: "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a";
|
|
@@ -472,4 +481,9 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
472
481
|
readonly BLAST: "0x2d509190ed0172ba588407d4c2df918f955cc6e1";
|
|
473
482
|
};
|
|
474
483
|
};
|
|
484
|
+
export declare const BRIDGE_ROUTER_ALT_WHITELIST_DATA: {
|
|
485
|
+
readonly relay: {
|
|
486
|
+
readonly [EXTRA_CHAINS.ARC]: readonly ["0xb92fe925dc43a0ecde6c8b1a2709c170ec4fff4f"];
|
|
487
|
+
};
|
|
488
|
+
};
|
|
475
489
|
export {};
|
package/dist/data.js
CHANGED
|
@@ -43,6 +43,7 @@ const EXTRA_CHAINS = {
|
|
|
43
43
|
CYBER: 'CYBER',
|
|
44
44
|
ZIRCUIT: 'ZIRCUIT',
|
|
45
45
|
HOOD: 'HOOD',
|
|
46
|
+
ARC: 'ARC',
|
|
46
47
|
};
|
|
47
48
|
const SOCKET_V3_ALLOWANCE_HOLDER = '0x50c4e75a512f2a14a7b304787adf79c4531a5909';
|
|
48
49
|
const SOCKET_V3_CONTRACTS = {
|
|
@@ -73,6 +74,7 @@ const SOCKET_V3_CONTRACTS = {
|
|
|
73
74
|
[EXTRA_CHAINS.SEI]: SOCKET_V3_ALLOWANCE_HOLDER,
|
|
74
75
|
[EXTRA_CHAINS.SONEIUM]: SOCKET_V3_ALLOWANCE_HOLDER,
|
|
75
76
|
[EXTRA_CHAINS.HOOD]: SOCKET_V3_ALLOWANCE_HOLDER,
|
|
77
|
+
[EXTRA_CHAINS.ARC]: SOCKET_V3_ALLOWANCE_HOLDER,
|
|
76
78
|
};
|
|
77
79
|
export const BRIDGE_SUPPORT_CHAINS_DATA = {
|
|
78
80
|
near_intents: [
|
|
@@ -91,6 +93,7 @@ export const BRIDGE_SUPPORT_CHAINS_DATA = {
|
|
|
91
93
|
};
|
|
92
94
|
export const BRIDGE_SPENDER_WHITELIST_DATA = {
|
|
93
95
|
lifi: {
|
|
96
|
+
[EXTRA_CHAINS.ARC]: '0xa4072583658fae592a3506a42431cb6316a8d40b',
|
|
94
97
|
[CHAINS_ENUM.ETH]: '0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae',
|
|
95
98
|
[CHAINS_ENUM.OP]: '0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae',
|
|
96
99
|
[CHAINS_ENUM.FLR]: '0x198fc70dfe05e755c81e54bd67bff3f729344b9b',
|
|
@@ -214,6 +217,7 @@ export const BRIDGE_SPENDER_WHITELIST_DATA = {
|
|
|
214
217
|
[EXTRA_CHAINS.MEGAETH]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
215
218
|
[EXTRA_CHAINS.PLASMA]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
216
219
|
[EXTRA_CHAINS.HOOD]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
220
|
+
[EXTRA_CHAINS.ARC]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
217
221
|
},
|
|
218
222
|
stargate: {
|
|
219
223
|
[CHAINS_ENUM.BASE]: '0x8eca03175fd5ac62fb6f4ecbb9a95d13dcdcb4f8',
|
|
@@ -277,6 +281,7 @@ export const BRIDGE_SPENDER_WHITELIST_DATA = {
|
|
|
277
281
|
[EXTRA_CHAINS.MONAD]: '0xd2ecb3afe598b746f8123cae365a598da831a449',
|
|
278
282
|
[EXTRA_CHAINS.PLASMA]: '0x50039faefebef707cfd94d6d462fe6d10b39207a',
|
|
279
283
|
[EXTRA_CHAINS.HOOD]: '0xD29C85F15DF544bA632C9E25829fd29d767d7978',
|
|
284
|
+
[EXTRA_CHAINS.ARC]: '0x9b4a302a548c7e313c2b74c461db7b84d3074a84',
|
|
280
285
|
},
|
|
281
286
|
};
|
|
282
287
|
// 部分聚合器除逐链合约外,API 还可能路由到全局合约(同时作为 approve 目标与 tx.to)。
|
|
@@ -299,6 +304,7 @@ export const BRIDGE_ALT_CONTRACTS_DATA = {
|
|
|
299
304
|
};
|
|
300
305
|
export const BRIDGE_ROUTER_WHITELIST_DATA = {
|
|
301
306
|
lifi: {
|
|
307
|
+
[EXTRA_CHAINS.ARC]: '0xa4072583658fae592a3506a42431cb6316a8d40b',
|
|
302
308
|
[CHAINS_ENUM.ETH]: '0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae',
|
|
303
309
|
[CHAINS_ENUM.OP]: '0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae',
|
|
304
310
|
[CHAINS_ENUM.FLR]: '0x198fc70dfe05e755c81e54bd67bff3f729344b9b',
|
|
@@ -422,6 +428,7 @@ export const BRIDGE_ROUTER_WHITELIST_DATA = {
|
|
|
422
428
|
[EXTRA_CHAINS.MEGAETH]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
423
429
|
[EXTRA_CHAINS.PLASMA]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
424
430
|
[EXTRA_CHAINS.HOOD]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
431
|
+
[EXTRA_CHAINS.ARC]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
425
432
|
},
|
|
426
433
|
stargate: {
|
|
427
434
|
[CHAINS_ENUM.BASE]: '0x7e07a9148e9149e430c6412b79a675028595ff1f',
|
|
@@ -485,5 +492,12 @@ export const BRIDGE_ROUTER_WHITELIST_DATA = {
|
|
|
485
492
|
[EXTRA_CHAINS.MONAD]: '0xd2ecb3afe598b746f8123cae365a598da831a449',
|
|
486
493
|
[EXTRA_CHAINS.PLASMA]: '0x50039faefebef707cfd94d6d462fe6d10b39207a',
|
|
487
494
|
[EXTRA_CHAINS.HOOD]: '0xD29C85F15DF544bA632C9E25829fd29d767d7978',
|
|
495
|
+
[EXTRA_CHAINS.ARC]: '0x9b4a302a548c7e313c2b74c461db7b84d3074a84',
|
|
496
|
+
},
|
|
497
|
+
};
|
|
498
|
+
// 仅在指定链生效的额外 router。
|
|
499
|
+
export const BRIDGE_ROUTER_ALT_WHITELIST_DATA = {
|
|
500
|
+
relay: {
|
|
501
|
+
[EXTRA_CHAINS.ARC]: ['0xb92fe925dc43a0ecde6c8b1a2709c170ec4fff4f'],
|
|
488
502
|
},
|
|
489
503
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { BRIDGE_AGGREGATORS, BRIDGE_ENUM } from './consts.js';
|
|
2
2
|
export type { BridgeAggregatorId } from './consts.js';
|
|
3
|
-
export { ALL_SUPPORTED_BRIDGE_CHAINS, BRIDGE_ROUTER_WHITELIST, BRIDGE_SPENDER_WHITELIST, BRIDGE_SUPPORT_CHAINS, CHAINS_ENUM, getBridgeAltContracts, getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
|
|
3
|
+
export { ALL_SUPPORTED_BRIDGE_CHAINS, BRIDGE_ROUTER_WHITELIST, BRIDGE_SPENDER_WHITELIST, BRIDGE_SUPPORT_CHAINS, CHAINS_ENUM, getBridgeAltContracts, getBridgeAltRouters, getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
|
|
4
4
|
export { InvalidBridgeContractError, buildBridgeQuoteTx, buildTx, getQuote, getQuoteList, getQuoteListWithTx, validateBridgeQuote, validateBridgeTx, } from './quote.js';
|
|
5
5
|
export type { BridgeApi, BridgeBuildTxParams, BridgeQuote, BridgeQuoteListItem, BridgeQuoteListParams, BridgeTx, } from './quote.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { BRIDGE_AGGREGATORS, BRIDGE_ENUM } from './consts.js';
|
|
2
|
-
export { ALL_SUPPORTED_BRIDGE_CHAINS, BRIDGE_ROUTER_WHITELIST, BRIDGE_SPENDER_WHITELIST, BRIDGE_SUPPORT_CHAINS, CHAINS_ENUM, getBridgeAltContracts, getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
|
|
2
|
+
export { ALL_SUPPORTED_BRIDGE_CHAINS, BRIDGE_ROUTER_WHITELIST, BRIDGE_SPENDER_WHITELIST, BRIDGE_SUPPORT_CHAINS, CHAINS_ENUM, getBridgeAltContracts, getBridgeAltRouters, getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
|
|
3
3
|
export { InvalidBridgeContractError, buildBridgeQuoteTx, buildTx, getQuote, getQuoteList, getQuoteListWithTx, validateBridgeQuote, validateBridgeTx, } from './quote.js';
|
package/dist/list.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export declare const isSupportedBridgeAggregator: (aggregatorId: string) => aggr
|
|
|
11
11
|
export declare const isSupportedBridgeChain: (aggregatorId: BridgeAggregatorId, chainId: string) => boolean;
|
|
12
12
|
export declare const getBridgeSpender: (aggregatorId: BridgeAggregatorId, chainId: string) => string | undefined;
|
|
13
13
|
export declare const getBridgeRouter: (aggregatorId: BridgeAggregatorId, chainId: string) => string | undefined;
|
|
14
|
+
export declare const getBridgeAltRouters: (aggregatorId: BridgeAggregatorId, chainId: string) => string[];
|
|
14
15
|
export declare const getBridgeAltContracts: (aggregatorId: BridgeAggregatorId) => string[];
|
package/dist/list.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CHAINS_ENUM, normalizeChainEnum } from './chains.js';
|
|
2
2
|
import { BRIDGE_AGGREGATORS } from './consts.js';
|
|
3
|
-
import { BRIDGE_SUPPORT_CHAINS_DATA, BRIDGE_ROUTER_WHITELIST_DATA, BRIDGE_SPENDER_WHITELIST_DATA, BRIDGE_ALT_CONTRACTS_DATA, } from './data.js';
|
|
3
|
+
import { BRIDGE_SUPPORT_CHAINS_DATA, BRIDGE_ROUTER_WHITELIST_DATA, BRIDGE_SPENDER_WHITELIST_DATA, BRIDGE_ALT_CONTRACTS_DATA, BRIDGE_ROUTER_ALT_WHITELIST_DATA, } from './data.js';
|
|
4
4
|
export { CHAINS_ENUM };
|
|
5
5
|
export const BRIDGE_SPENDER_WHITELIST = BRIDGE_SPENDER_WHITELIST_DATA;
|
|
6
6
|
export const BRIDGE_ROUTER_WHITELIST = BRIDGE_ROUTER_WHITELIST_DATA;
|
|
@@ -40,6 +40,14 @@ export const getBridgeRouter = (aggregatorId, chainId) => {
|
|
|
40
40
|
}
|
|
41
41
|
return BRIDGE_ROUTER_WHITELIST[aggregatorId]?.[chainEnum];
|
|
42
42
|
};
|
|
43
|
+
export const getBridgeAltRouters = (aggregatorId, chainId) => {
|
|
44
|
+
const chainEnum = normalizeChainEnum(chainId);
|
|
45
|
+
if (!chainEnum) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const routers = BRIDGE_ROUTER_ALT_WHITELIST_DATA;
|
|
49
|
+
return [...(routers[aggregatorId]?.[chainEnum] || [])];
|
|
50
|
+
};
|
|
43
51
|
// 该聚合器的全局合法合约(periphery 等),对其所有链均有效,与逐链白名单并列接受。
|
|
44
52
|
export const getBridgeAltContracts = (aggregatorId) => {
|
|
45
53
|
return [
|
package/dist/quote.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BRIDGE_ENUM } from './consts.js';
|
|
2
|
-
import { getBridgeAltContracts, getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
|
|
2
|
+
import { getBridgeAltContracts, getBridgeAltRouters, getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
|
|
3
3
|
export class InvalidBridgeContractError extends Error {
|
|
4
4
|
constructor(kind, aggregatorId, chainId, expected, received, bridgeId) {
|
|
5
5
|
super(`Invalid bridge ${kind} for ${aggregatorId} on ${chainId}: expected ${expected}, got ${received}`);
|
|
@@ -68,6 +68,7 @@ export const validateBridgeTx = (aggregatorId, fromChainId, bridgeId, tx) => {
|
|
|
68
68
|
const allowedRouters = [
|
|
69
69
|
expectedRouter,
|
|
70
70
|
...getBridgeAltContracts(aggregatorId),
|
|
71
|
+
...getBridgeAltRouters(aggregatorId, fromChainId),
|
|
71
72
|
];
|
|
72
73
|
if (!allowedRouters.some((addr) => isSameAddress(addr, tx.to))) {
|
|
73
74
|
throw new InvalidBridgeContractError('router', aggregatorId, fromChainId, expectedRouter, tx.to, bridgeId);
|