@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 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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rabby-wallet/rabby-bridge",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "Bridge quote helpers and contract allowlists for Rabby",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",