@rabby-wallet/rabby-bridge 0.0.9 → 0.0.10
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/data.d.ts +9 -0
- package/dist/data.js +10 -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/data.d.ts
CHANGED
|
@@ -174,6 +174,7 @@ export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
|
|
|
174
174
|
readonly [EXTRA_CHAINS.MEGAETH]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
175
175
|
readonly [EXTRA_CHAINS.PLASMA]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
176
176
|
readonly [EXTRA_CHAINS.HOOD]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
177
|
+
readonly [EXTRA_CHAINS.ARC]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
177
178
|
readonly ETH: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
178
179
|
readonly OP: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
179
180
|
readonly CRO: "0x59916da825d2d2ec1bf878d71c88826f6633ecca";
|
|
@@ -243,6 +244,7 @@ export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
|
|
|
243
244
|
readonly [EXTRA_CHAINS.MONAD]: "0xd2ecb3afe598b746f8123cae365a598da831a449";
|
|
244
245
|
readonly [EXTRA_CHAINS.PLASMA]: "0x50039faefebef707cfd94d6d462fe6d10b39207a";
|
|
245
246
|
readonly [EXTRA_CHAINS.HOOD]: "0xD29C85F15DF544bA632C9E25829fd29d767d7978";
|
|
247
|
+
readonly [EXTRA_CHAINS.ARC]: "0x9b4a302a548c7e313c2b74c461db7b84d3074a84";
|
|
246
248
|
readonly ETH: "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5";
|
|
247
249
|
readonly OP: "0x6f26bf09b1c792e3228e5467807a900a503c0281";
|
|
248
250
|
readonly ARBITRUM: "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a";
|
|
@@ -395,6 +397,7 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
395
397
|
readonly [EXTRA_CHAINS.MEGAETH]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
396
398
|
readonly [EXTRA_CHAINS.PLASMA]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
397
399
|
readonly [EXTRA_CHAINS.HOOD]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
400
|
+
readonly [EXTRA_CHAINS.ARC]: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
398
401
|
readonly ETH: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
399
402
|
readonly OP: "0x4cd00e387622c35bddb9b4c962c136462338bc31";
|
|
400
403
|
readonly CRO: "0x59916da825d2d2ec1bf878d71c88826f6633ecca";
|
|
@@ -464,6 +467,7 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
464
467
|
readonly [EXTRA_CHAINS.MONAD]: "0xd2ecb3afe598b746f8123cae365a598da831a449";
|
|
465
468
|
readonly [EXTRA_CHAINS.PLASMA]: "0x50039faefebef707cfd94d6d462fe6d10b39207a";
|
|
466
469
|
readonly [EXTRA_CHAINS.HOOD]: "0xD29C85F15DF544bA632C9E25829fd29d767d7978";
|
|
470
|
+
readonly [EXTRA_CHAINS.ARC]: "0x9b4a302a548c7e313c2b74c461db7b84d3074a84";
|
|
467
471
|
readonly ETH: "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5";
|
|
468
472
|
readonly OP: "0x6f26bf09b1c792e3228e5467807a900a503c0281";
|
|
469
473
|
readonly ARBITRUM: "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a";
|
|
@@ -477,4 +481,9 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
|
|
|
477
481
|
readonly BLAST: "0x2d509190ed0172ba588407d4c2df918f955cc6e1";
|
|
478
482
|
};
|
|
479
483
|
};
|
|
484
|
+
export declare const BRIDGE_ROUTER_ALT_WHITELIST_DATA: {
|
|
485
|
+
readonly relay: {
|
|
486
|
+
readonly [EXTRA_CHAINS.ARC]: readonly ["0xb92fe925dc43a0ecde6c8b1a2709c170ec4fff4f"];
|
|
487
|
+
};
|
|
488
|
+
};
|
|
480
489
|
export {};
|
package/dist/data.js
CHANGED
|
@@ -217,6 +217,7 @@ export const BRIDGE_SPENDER_WHITELIST_DATA = {
|
|
|
217
217
|
[EXTRA_CHAINS.MEGAETH]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
218
218
|
[EXTRA_CHAINS.PLASMA]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
219
219
|
[EXTRA_CHAINS.HOOD]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
220
|
+
[EXTRA_CHAINS.ARC]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
220
221
|
},
|
|
221
222
|
stargate: {
|
|
222
223
|
[CHAINS_ENUM.BASE]: '0x8eca03175fd5ac62fb6f4ecbb9a95d13dcdcb4f8',
|
|
@@ -280,6 +281,7 @@ export const BRIDGE_SPENDER_WHITELIST_DATA = {
|
|
|
280
281
|
[EXTRA_CHAINS.MONAD]: '0xd2ecb3afe598b746f8123cae365a598da831a449',
|
|
281
282
|
[EXTRA_CHAINS.PLASMA]: '0x50039faefebef707cfd94d6d462fe6d10b39207a',
|
|
282
283
|
[EXTRA_CHAINS.HOOD]: '0xD29C85F15DF544bA632C9E25829fd29d767d7978',
|
|
284
|
+
[EXTRA_CHAINS.ARC]: '0x9b4a302a548c7e313c2b74c461db7b84d3074a84',
|
|
283
285
|
},
|
|
284
286
|
};
|
|
285
287
|
// 部分聚合器除逐链合约外,API 还可能路由到全局合约(同时作为 approve 目标与 tx.to)。
|
|
@@ -426,6 +428,7 @@ export const BRIDGE_ROUTER_WHITELIST_DATA = {
|
|
|
426
428
|
[EXTRA_CHAINS.MEGAETH]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
427
429
|
[EXTRA_CHAINS.PLASMA]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
428
430
|
[EXTRA_CHAINS.HOOD]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
431
|
+
[EXTRA_CHAINS.ARC]: '0x4cd00e387622c35bddb9b4c962c136462338bc31',
|
|
429
432
|
},
|
|
430
433
|
stargate: {
|
|
431
434
|
[CHAINS_ENUM.BASE]: '0x7e07a9148e9149e430c6412b79a675028595ff1f',
|
|
@@ -489,5 +492,12 @@ export const BRIDGE_ROUTER_WHITELIST_DATA = {
|
|
|
489
492
|
[EXTRA_CHAINS.MONAD]: '0xd2ecb3afe598b746f8123cae365a598da831a449',
|
|
490
493
|
[EXTRA_CHAINS.PLASMA]: '0x50039faefebef707cfd94d6d462fe6d10b39207a',
|
|
491
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'],
|
|
492
502
|
},
|
|
493
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);
|