@rabby-wallet/rabby-bridge 0.0.3 → 0.0.4-beta.2

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/README.md CHANGED
@@ -1,12 +1,12 @@
1
- # rabby-bridge
2
-
3
- Minimal bridge SDK for Rabby:
4
-
5
- - enumerates supported bridge aggregators and chains
6
- - maintains per-chain spender/router allowlists
7
- - validates backend bridge quotes before returning them
8
- - does not implement calldata decoding
9
-
10
- ## Test
11
-
12
- Run `yarn test` to build the package and execute the Jest suite.
1
+ # rabby-bridge
2
+
3
+ Minimal bridge SDK for Rabby:
4
+
5
+ - enumerates supported bridge aggregators and chains
6
+ - maintains per-chain spender/router allowlists
7
+ - validates backend bridge quotes before returning them
8
+ - does not implement calldata decoding
9
+
10
+ ## Test
11
+
12
+ Run `yarn test` to build the package and execute the Jest suite.
package/dist/consts.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const BRIDGE_AGGREGATORS: readonly ["lifi", "bungee", "relay", "stargate", "near_intents", "mayan"];
1
+ export declare const BRIDGE_AGGREGATORS: readonly ["lifi", "bungee", "relay", "stargate", "near_intents", "mayan", "across"];
2
2
  export declare const BRIDGE_ENUM: {
3
3
  readonly LIFI: "lifi";
4
4
  readonly BUNGEE: "bungee";
@@ -6,5 +6,6 @@ export declare const BRIDGE_ENUM: {
6
6
  readonly STARGATE: "stargate";
7
7
  readonly NEAR_INTENTS: "near_intents";
8
8
  readonly MAYAN: "mayan";
9
+ readonly ACROSS: "across";
9
10
  };
10
11
  export type BridgeAggregatorId = (typeof BRIDGE_AGGREGATORS)[number];
package/dist/consts.js CHANGED
@@ -7,4 +7,5 @@ export const BRIDGE_ENUM = {
7
7
  STARGATE: 'stargate',
8
8
  NEAR_INTENTS: 'near_intents',
9
9
  MAYAN: 'mayan',
10
+ ACROSS: 'across',
10
11
  };
package/dist/data.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type ChainEnum } from './chains.js';
2
- export declare const SUPPORTED_AGGREGATORS: readonly ["lifi", "bungee", "relay", "stargate", "near_intents", "mayan"];
2
+ export declare const SUPPORTED_AGGREGATORS: readonly ["lifi", "bungee", "relay", "stargate", "near_intents", "mayan", "across"];
3
3
  declare const EXTRA_CHAINS: {
4
4
  readonly XDC: ChainEnum;
5
5
  readonly UNI: ChainEnum;
@@ -197,6 +197,33 @@ export declare const BRIDGE_SPENDER_WHITELIST_DATA: {
197
197
  readonly BASE: "0x337685fdab40d39bd02028545a4ffa7d287cc3e2";
198
198
  readonly LINEA: "0x337685fdab40d39bd02028545a4ffa7d287cc3e2";
199
199
  };
200
+ readonly across: {
201
+ readonly [EXTRA_CHAINS.WORLD]: "0x09aea4b2242abc8bb4bb78d537a67a245a7bec64";
202
+ readonly [EXTRA_CHAINS.LISK]: "0x9552a0a6624a23b848060ae5901659cdda1f83f8";
203
+ readonly [EXTRA_CHAINS.UNI]: "0x09aea4b2242abc8bb4bb78d537a67a245a7bec64";
204
+ readonly [EXTRA_CHAINS.SONEIUM]: "0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96";
205
+ readonly [EXTRA_CHAINS.INK]: "0x10d8b8daa26d307489803e10477de69c0492b610";
206
+ readonly [EXTRA_CHAINS.LENS]: "0xb234ca484866c811d0e6d3318866f583781ed045";
207
+ readonly [EXTRA_CHAINS.HYPER]: "0x35e63ea3eb0fb7a3bc543c71fb66412e1f6b0e04";
208
+ readonly [EXTRA_CHAINS.MEGAETH]: "0x3db06da8f0a24a525f314eec954fc5c6a973d40e";
209
+ readonly [EXTRA_CHAINS.MONAD]: "0xd2ecb3afe598b746f8123cae365a598da831a449";
210
+ readonly [EXTRA_CHAINS.PLASMA]: "0x50039faefebef707cfd94d6d462fe6d10b39207a";
211
+ readonly ETH: "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5";
212
+ readonly OP: "0x6f26bf09b1c792e3228e5467807a900a503c0281";
213
+ readonly ARBITRUM: "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a";
214
+ readonly BASE: "0x09aea4b2242abc8bb4bb78d537a67a245a7bec64";
215
+ readonly POLYGON: "0x9295ee1d8c5b022be115a2ad3c30c72e34e7f096";
216
+ readonly LINEA: "0x7e63a5f1a8f0b4d0934b2f2327daed3f6bb2ee75";
217
+ readonly ERA: "0x5a148a9260c1f670429361c34d40b477280f01a9";
218
+ readonly BSC: "0x10d8b8daa26d307489803e10477de69c0492b610";
219
+ readonly MODE: "0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96";
220
+ readonly ZORA: "0x13fdac9f9b4777705db45291bbff3c972c6d1d97";
221
+ readonly BLAST: "0x2d509190ed0172ba588407d4c2df918f955cc6e1";
222
+ };
223
+ };
224
+ export declare const BRIDGE_ALT_CONTRACTS_DATA: {
225
+ readonly across: readonly ["0x10d8b8daa26d307489803e10477de69c0492b610", "0x5a148a9260c1f670429361c34d40b477280f01a9"];
226
+ readonly relay: readonly ["0x8754bc615047de01228a7527b712806a71a8dc9a", "0xccc88a9d1b4ed6b0eaba998850414b24f1c315be", "0xf6e54bbf91e564fcf0df3ed9f2dd82913e9232c3"];
200
227
  };
201
228
  export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
202
229
  readonly lifi: {
@@ -358,5 +385,28 @@ export declare const BRIDGE_ROUTER_WHITELIST_DATA: {
358
385
  readonly BASE: "0x337685fdab40d39bd02028545a4ffa7d287cc3e2";
359
386
  readonly LINEA: "0x337685fdab40d39bd02028545a4ffa7d287cc3e2";
360
387
  };
388
+ readonly across: {
389
+ readonly [EXTRA_CHAINS.WORLD]: "0x09aea4b2242abc8bb4bb78d537a67a245a7bec64";
390
+ readonly [EXTRA_CHAINS.LISK]: "0x9552a0a6624a23b848060ae5901659cdda1f83f8";
391
+ readonly [EXTRA_CHAINS.UNI]: "0x09aea4b2242abc8bb4bb78d537a67a245a7bec64";
392
+ readonly [EXTRA_CHAINS.SONEIUM]: "0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96";
393
+ readonly [EXTRA_CHAINS.INK]: "0x10d8b8daa26d307489803e10477de69c0492b610";
394
+ readonly [EXTRA_CHAINS.LENS]: "0xb234ca484866c811d0e6d3318866f583781ed045";
395
+ readonly [EXTRA_CHAINS.HYPER]: "0x35e63ea3eb0fb7a3bc543c71fb66412e1f6b0e04";
396
+ readonly [EXTRA_CHAINS.MEGAETH]: "0x3db06da8f0a24a525f314eec954fc5c6a973d40e";
397
+ readonly [EXTRA_CHAINS.MONAD]: "0xd2ecb3afe598b746f8123cae365a598da831a449";
398
+ readonly [EXTRA_CHAINS.PLASMA]: "0x50039faefebef707cfd94d6d462fe6d10b39207a";
399
+ readonly ETH: "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5";
400
+ readonly OP: "0x6f26bf09b1c792e3228e5467807a900a503c0281";
401
+ readonly ARBITRUM: "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a";
402
+ readonly BASE: "0x09aea4b2242abc8bb4bb78d537a67a245a7bec64";
403
+ readonly POLYGON: "0x9295ee1d8c5b022be115a2ad3c30c72e34e7f096";
404
+ readonly LINEA: "0x7e63a5f1a8f0b4d0934b2f2327daed3f6bb2ee75";
405
+ readonly ERA: "0x5a148a9260c1f670429361c34d40b477280f01a9";
406
+ readonly BSC: "0x10d8b8daa26d307489803e10477de69c0492b610";
407
+ readonly MODE: "0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96";
408
+ readonly ZORA: "0x13fdac9f9b4777705db45291bbff3c972c6d1d97";
409
+ readonly BLAST: "0x2d509190ed0172ba588407d4c2df918f955cc6e1";
410
+ };
361
411
  };
362
412
  export {};
package/dist/data.js CHANGED
@@ -6,6 +6,7 @@ export const SUPPORTED_AGGREGATORS = [
6
6
  'stargate',
7
7
  'near_intents',
8
8
  'mayan',
9
+ 'across',
9
10
  ];
10
11
  const EXTRA_CHAINS = {
11
12
  XDC: 'XDC',
@@ -216,6 +217,47 @@ export const BRIDGE_SPENDER_WHITELIST_DATA = {
216
217
  [EXTRA_CHAINS.HYPER]: '0x337685fdab40d39bd02028545a4ffa7d287cc3e2',
217
218
  [EXTRA_CHAINS.MONAD]: '0x337685fdab40d39bd02028545a4ffa7d287cc3e2',
218
219
  },
220
+ // across 逐链 SpokePool/直连合约(depositV3 路由的 approve 目标与 tx.to)。
221
+ // swap+bridge 路由会切到全局 SpokePoolPeriphery,额外合法地址见 BRIDGE_ALT_CONTRACTS_DATA。
222
+ across: {
223
+ [CHAINS_ENUM.ETH]: '0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5',
224
+ [CHAINS_ENUM.OP]: '0x6f26bf09b1c792e3228e5467807a900a503c0281',
225
+ [CHAINS_ENUM.ARBITRUM]: '0xe35e9842fceaca96570b734083f4a58e8f7c5f2a',
226
+ [CHAINS_ENUM.BASE]: '0x09aea4b2242abc8bb4bb78d537a67a245a7bec64',
227
+ [CHAINS_ENUM.POLYGON]: '0x9295ee1d8c5b022be115a2ad3c30c72e34e7f096',
228
+ [CHAINS_ENUM.LINEA]: '0x7e63a5f1a8f0b4d0934b2f2327daed3f6bb2ee75',
229
+ [CHAINS_ENUM.ERA]: '0x5a148a9260c1f670429361c34d40b477280f01a9',
230
+ [CHAINS_ENUM.BSC]: '0x10d8b8daa26d307489803e10477de69c0492b610',
231
+ [CHAINS_ENUM.MODE]: '0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96',
232
+ [EXTRA_CHAINS.WORLD]: '0x09aea4b2242abc8bb4bb78d537a67a245a7bec64',
233
+ [CHAINS_ENUM.ZORA]: '0x13fdac9f9b4777705db45291bbff3c972c6d1d97',
234
+ [EXTRA_CHAINS.LISK]: '0x9552a0a6624a23b848060ae5901659cdda1f83f8',
235
+ [EXTRA_CHAINS.UNI]: '0x09aea4b2242abc8bb4bb78d537a67a245a7bec64',
236
+ [EXTRA_CHAINS.SONEIUM]: '0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96',
237
+ [EXTRA_CHAINS.INK]: '0x10d8b8daa26d307489803e10477de69c0492b610',
238
+ [EXTRA_CHAINS.LENS]: '0xb234ca484866c811d0e6d3318866f583781ed045',
239
+ [CHAINS_ENUM.BLAST]: '0x2d509190ed0172ba588407d4c2df918f955cc6e1',
240
+ [EXTRA_CHAINS.HYPER]: '0x35e63ea3eb0fb7a3bc543c71fb66412e1f6b0e04',
241
+ [EXTRA_CHAINS.MEGAETH]: '0x3db06da8f0a24a525f314eec954fc5c6a973d40e',
242
+ [EXTRA_CHAINS.MONAD]: '0xd2ecb3afe598b746f8123cae365a598da831a449',
243
+ [EXTRA_CHAINS.PLASMA]: '0x50039faefebef707cfd94d6d462fe6d10b39207a',
244
+ },
245
+ };
246
+ // 部分聚合器除逐链合约外,API 还可能路由到全局合约(同时作为 approve 目标与 tx.to)。
247
+ // 这些地址对该聚合器所有链均合法,校验时与逐链白名单并列接受。对应 DeBankCore 的 *_alt_contracts。
248
+ export const BRIDGE_ALT_CONTRACTS_DATA = {
249
+ across: [
250
+ // SpokePoolPeriphery(swap+bridge 入口),多数链同址
251
+ '0x10d8b8daa26d307489803e10477de69c0492b610',
252
+ // SpokePoolPeriphery(zkSync 系: era / lens)
253
+ '0x5a148a9260c1f670429361c34d40b477280f01a9',
254
+ ],
255
+ relay: [
256
+ // ApprovalProxy v3 全局地址,按 EVM fork 类型区分,与逐链 Depository 同时在用
257
+ '0x8754bc615047de01228a7527b712806a71a8dc9a', // london
258
+ '0xccc88a9d1b4ed6b0eaba998850414b24f1c315be', // cancun
259
+ '0xf6e54bbf91e564fcf0df3ed9f2dd82913e9232c3', // zero / zkevm
260
+ ],
219
261
  };
220
262
  export const BRIDGE_ROUTER_WHITELIST_DATA = {
221
263
  lifi: {
@@ -377,4 +419,29 @@ export const BRIDGE_ROUTER_WHITELIST_DATA = {
377
419
  [EXTRA_CHAINS.HYPER]: '0x337685fdab40d39bd02028545a4ffa7d287cc3e2',
378
420
  [EXTRA_CHAINS.MONAD]: '0x337685fdab40d39bd02028545a4ffa7d287cc3e2',
379
421
  },
422
+ // across 逐链 SpokePool/直连合约(depositV3 路由的 approve 目标与 tx.to)。
423
+ // swap+bridge 路由会切到全局 SpokePoolPeriphery,额外合法地址见 BRIDGE_ALT_CONTRACTS_DATA。
424
+ across: {
425
+ [CHAINS_ENUM.ETH]: '0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5',
426
+ [CHAINS_ENUM.OP]: '0x6f26bf09b1c792e3228e5467807a900a503c0281',
427
+ [CHAINS_ENUM.ARBITRUM]: '0xe35e9842fceaca96570b734083f4a58e8f7c5f2a',
428
+ [CHAINS_ENUM.BASE]: '0x09aea4b2242abc8bb4bb78d537a67a245a7bec64',
429
+ [CHAINS_ENUM.POLYGON]: '0x9295ee1d8c5b022be115a2ad3c30c72e34e7f096',
430
+ [CHAINS_ENUM.LINEA]: '0x7e63a5f1a8f0b4d0934b2f2327daed3f6bb2ee75',
431
+ [CHAINS_ENUM.ERA]: '0x5a148a9260c1f670429361c34d40b477280f01a9',
432
+ [CHAINS_ENUM.BSC]: '0x10d8b8daa26d307489803e10477de69c0492b610',
433
+ [CHAINS_ENUM.MODE]: '0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96',
434
+ [EXTRA_CHAINS.WORLD]: '0x09aea4b2242abc8bb4bb78d537a67a245a7bec64',
435
+ [CHAINS_ENUM.ZORA]: '0x13fdac9f9b4777705db45291bbff3c972c6d1d97',
436
+ [EXTRA_CHAINS.LISK]: '0x9552a0a6624a23b848060ae5901659cdda1f83f8',
437
+ [EXTRA_CHAINS.UNI]: '0x09aea4b2242abc8bb4bb78d537a67a245a7bec64',
438
+ [EXTRA_CHAINS.SONEIUM]: '0x3bad7ad0728f9917d1bf08af5782dcbd516cdd96',
439
+ [EXTRA_CHAINS.INK]: '0x10d8b8daa26d307489803e10477de69c0492b610',
440
+ [EXTRA_CHAINS.LENS]: '0xb234ca484866c811d0e6d3318866f583781ed045',
441
+ [CHAINS_ENUM.BLAST]: '0x2d509190ed0172ba588407d4c2df918f955cc6e1',
442
+ [EXTRA_CHAINS.HYPER]: '0x35e63ea3eb0fb7a3bc543c71fb66412e1f6b0e04',
443
+ [EXTRA_CHAINS.MEGAETH]: '0x3db06da8f0a24a525f314eec954fc5c6a973d40e',
444
+ [EXTRA_CHAINS.MONAD]: '0xd2ecb3afe598b746f8123cae365a598da831a449',
445
+ [EXTRA_CHAINS.PLASMA]: '0x50039faefebef707cfd94d6d462fe6d10b39207a',
446
+ },
380
447
  };
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, 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, 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, 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, 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,3 +11,4 @@ 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 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, } from './data.js';
3
+ import { BRIDGE_SUPPORT_CHAINS_DATA, BRIDGE_ROUTER_WHITELIST_DATA, BRIDGE_SPENDER_WHITELIST_DATA, BRIDGE_ALT_CONTRACTS_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,3 +40,9 @@ export const getBridgeRouter = (aggregatorId, chainId) => {
40
40
  }
41
41
  return BRIDGE_ROUTER_WHITELIST[aggregatorId]?.[chainEnum];
42
42
  };
43
+ // 该聚合器的全局合法合约(periphery 等),对其所有链均有效,与逐链白名单并列接受。
44
+ export const getBridgeAltContracts = (aggregatorId) => {
45
+ return [
46
+ ...(BRIDGE_ALT_CONTRACTS_DATA[aggregatorId] || []),
47
+ ];
48
+ };
package/dist/quote.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { BRIDGE_ENUM } from './consts.js';
2
- import { getBridgeRouter, getBridgeSpender, isSupportedBridgeAggregator, isSupportedBridgeChain, } from './list.js';
2
+ import { getBridgeAltContracts, 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}`);
@@ -48,7 +48,11 @@ export const validateBridgeQuote = (aggregatorId, fromChainId, quote) => {
48
48
  if (!expectedSpender || !receivedSpender) {
49
49
  return true;
50
50
  }
51
- if (!isSameAddress(expectedSpender, receivedSpender)) {
51
+ const allowedSpenders = [
52
+ expectedSpender,
53
+ ...getBridgeAltContracts(aggregatorId),
54
+ ];
55
+ if (!allowedSpenders.some((addr) => isSameAddress(addr, receivedSpender))) {
52
56
  throw new InvalidBridgeContractError('spender', aggregatorId, fromChainId, expectedSpender, receivedSpender, quote.bridge_id);
53
57
  }
54
58
  return true;
@@ -61,7 +65,11 @@ export const validateBridgeTx = (aggregatorId, fromChainId, bridgeId, tx) => {
61
65
  if (!expectedRouter) {
62
66
  return true;
63
67
  }
64
- if (!isSameAddress(expectedRouter, tx.to)) {
68
+ const allowedRouters = [
69
+ expectedRouter,
70
+ ...getBridgeAltContracts(aggregatorId),
71
+ ];
72
+ if (!allowedRouters.some((addr) => isSameAddress(addr, tx.to))) {
65
73
  throw new InvalidBridgeContractError('router', aggregatorId, fromChainId, expectedRouter, tx.to, bridgeId);
66
74
  }
67
75
  return true;
package/package.json CHANGED
@@ -1,36 +1,36 @@
1
- {
2
- "name": "@rabby-wallet/rabby-bridge",
3
- "version": "0.0.3",
4
- "description": "Bridge quote helpers and contract allowlists for Rabby",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js"
13
- }
14
- },
15
- "files": [
16
- "dist"
17
- ],
18
- "peerDependencies": {
19
- "@debank/common": ">=0.3.60",
20
- "@rabby-wallet/rabby-api": ">=0.9.58"
21
- },
22
- "scripts": {
23
- "prepublishOnly": "yarn build",
24
- "build": "rimraf dist && tsc",
25
- "test": "yarn build && NODE_OPTIONS=--experimental-vm-modules jest --runInBand --watchman=false"
26
- },
27
- "devDependencies": {
28
- "@debank/common": "^0.3.60",
29
- "@rabby-wallet/rabby-api": "^0.9.58",
30
- "@types/node": "^18.19.0",
31
- "jest": "^29.7.0",
32
- "rimraf": "^3.0.2",
33
- "typescript": "^5.8.3"
34
- },
35
- "packageManager": "yarn@4.12.0"
36
- }
1
+ {
2
+ "name": "@rabby-wallet/rabby-bridge",
3
+ "version": "0.0.4-beta.02",
4
+ "description": "Bridge quote helpers and contract allowlists for Rabby",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "peerDependencies": {
19
+ "@debank/common": ">=0.3.60",
20
+ "@rabby-wallet/rabby-api": ">=0.9.58"
21
+ },
22
+ "scripts": {
23
+ "prepublishOnly": "yarn build",
24
+ "build": "rimraf dist && tsc",
25
+ "test": "yarn build && NODE_OPTIONS=--experimental-vm-modules jest --runInBand --watchman=false"
26
+ },
27
+ "devDependencies": {
28
+ "@debank/common": "^0.3.60",
29
+ "@rabby-wallet/rabby-api": "^0.9.58",
30
+ "@types/node": "^18.19.0",
31
+ "jest": "^29.7.0",
32
+ "rimraf": "^3.0.2",
33
+ "typescript": "^5.8.3"
34
+ },
35
+ "packageManager": "yarn@4.12.0"
36
+ }