@fastxyz/allset-sdk 0.1.2 → 0.1.3

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.
Files changed (66) hide show
  1. package/README.md +184 -14
  2. package/dist/browser/index.d.ts +2 -0
  3. package/dist/browser/index.d.ts.map +1 -0
  4. package/dist/browser/index.js +2 -0
  5. package/dist/browser/index.js.map +1 -0
  6. package/dist/core/address.d.ts +4 -0
  7. package/dist/core/address.d.ts.map +1 -0
  8. package/dist/core/address.js +27 -0
  9. package/dist/core/address.js.map +1 -0
  10. package/dist/core/deposit.d.ts +59 -0
  11. package/dist/core/deposit.d.ts.map +1 -0
  12. package/dist/core/deposit.js +93 -0
  13. package/dist/core/deposit.js.map +1 -0
  14. package/dist/core/index.d.ts +6 -0
  15. package/dist/core/index.d.ts.map +1 -0
  16. package/dist/core/index.js +4 -0
  17. package/dist/core/index.js.map +1 -0
  18. package/dist/default-config.d.ts +51 -0
  19. package/dist/default-config.d.ts.map +1 -0
  20. package/dist/default-config.js +52 -0
  21. package/dist/default-config.js.map +1 -0
  22. package/dist/index.d.ts +4 -49
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -48
  25. package/dist/index.js.map +1 -1
  26. package/dist/intents.d.ts.map +1 -1
  27. package/dist/intents.js +1 -9
  28. package/dist/intents.js.map +1 -1
  29. package/dist/node/bridge.d.ts.map +1 -0
  30. package/dist/{bridge.js → node/bridge.js} +129 -72
  31. package/dist/node/bridge.js.map +1 -0
  32. package/dist/{config.d.ts → node/config.d.ts} +2 -5
  33. package/dist/node/config.d.ts.map +1 -0
  34. package/dist/{config.js → node/config.js} +5 -23
  35. package/dist/node/config.js.map +1 -0
  36. package/dist/node/evm-executor.d.ts +130 -0
  37. package/dist/node/evm-executor.d.ts.map +1 -0
  38. package/dist/node/evm-executor.js +159 -0
  39. package/dist/node/evm-executor.js.map +1 -0
  40. package/dist/node/index.d.ts +14 -0
  41. package/dist/node/index.d.ts.map +1 -0
  42. package/dist/node/index.js +17 -0
  43. package/dist/node/index.js.map +1 -0
  44. package/dist/{provider.d.ts → node/provider.d.ts} +6 -6
  45. package/dist/node/provider.d.ts.map +1 -0
  46. package/dist/{provider.js → node/provider.js} +18 -25
  47. package/dist/node/provider.js.map +1 -0
  48. package/dist/{types.d.ts → node/types.d.ts} +19 -19
  49. package/dist/node/types.d.ts.map +1 -0
  50. package/dist/node/types.js.map +1 -0
  51. package/package.json +22 -6
  52. package/data/networks.json +0 -37
  53. package/dist/bridge.d.ts.map +0 -1
  54. package/dist/bridge.js.map +0 -1
  55. package/dist/config.d.ts.map +0 -1
  56. package/dist/config.js.map +0 -1
  57. package/dist/evm-executor.d.ts +0 -64
  58. package/dist/evm-executor.d.ts.map +0 -1
  59. package/dist/evm-executor.js +0 -181
  60. package/dist/evm-executor.js.map +0 -1
  61. package/dist/provider.d.ts.map +0 -1
  62. package/dist/provider.js.map +0 -1
  63. package/dist/types.d.ts.map +0 -1
  64. package/dist/types.js.map +0 -1
  65. /package/dist/{bridge.d.ts → node/bridge.d.ts} +0 -0
  66. /package/dist/{types.js → node/types.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,53 +1,8 @@
1
1
  /**
2
- * @fastxyz/allset-sdk — AllSet bridge SDK
2
+ * @fastxyz/allset-sdk — browser-safe core helpers
3
3
  *
4
- * Bridge tokens between Fast network and EVM chains.
5
- *
6
- * Prerequisites: Install @fastxyz/sdk for FastWallet support.
7
- * npm install @fastxyz/sdk @fastxyz/allset-sdk
8
- *
9
- * @example
10
- * ```ts
11
- * import { FastProvider, FastWallet } from '@fastxyz/sdk';
12
- * import { AllSetProvider, createEvmExecutor, createEvmWallet } from '@fastxyz/allset-sdk';
13
- *
14
- * // Setup
15
- * const fastProvider = new FastProvider({ network: 'testnet' });
16
- * const allset = new AllSetProvider({ network: 'testnet' });
17
- * const fastWallet = await FastWallet.fromKeyfile('~/.fast/keys/default.json', fastProvider);
18
- * const evmWallet = createEvmWallet('~/.allset/.evm/keys/default.json');
19
- *
20
- * // Deposit: EVM → Fast
21
- * const evmExecutor = createEvmExecutor(evmWallet.privateKey, 'https://sepolia-rollup.arbitrum.io/rpc', 421614);
22
- * await allset.sendToFast({
23
- * chain: 'arbitrum',
24
- * token: 'USDC',
25
- * amount: '1000000',
26
- * from: evmWallet.address,
27
- * to: fastWallet.address,
28
- * evmExecutor,
29
- * });
30
- *
31
- * // Withdraw: Fast → EVM
32
- * await allset.sendToExternal({
33
- * chain: 'arbitrum',
34
- * token: 'fastUSDC',
35
- * amount: '1000000',
36
- * from: fastWallet.address,
37
- * to: evmWallet.address,
38
- * fastWallet,
39
- * });
40
- * ```
4
+ * Root exports are pure helpers only. Use `@fastxyz/allset-sdk/node` for
5
+ * provider, executor, wallet, bridge execution, and file-backed config APIs.
41
6
  */
42
- export { evmSign, executeBridge, executeIntent } from './bridge.js';
43
- export { IntentAction, buildTransferIntent, buildExecuteIntent, buildDepositBackIntent, buildRevokeIntent, } from './intents.js';
44
- export { AllSetProvider, getAllSetDir, getEvmKeysDir as getAllSetEvmKeysDir, ensureAllSetDirs, initUserConfig, } from './provider.js';
45
- export { createEvmExecutor, createEvmWallet, saveEvmWallet, getEvmKeysDir } from './evm-executor.js';
46
- export { loadNetworksConfig, getNetworkConfig, getChainConfig, getTokenConfig, clearConfigCache, } from './config.js';
47
- export type { BridgeProvider, BridgeParams, BridgeResult, EvmTxExecutor, AllSetChainConfig, AllSetTokenInfo, SendToFastParams, SendToExternalParams, ExecuteIntentParams, } from './types.js';
48
- export type { Intent } from './intents.js';
49
- export type { EvmSignResult } from './bridge.js';
50
- export type { EvmWallet } from './evm-executor.js';
51
- export type { NetworkConfig, ChainConfig, TokenConfig, AllNetworksConfig } from './config.js';
52
- export type { AllSetProviderOptions } from './provider.js';
7
+ export * from './core/index.js';
53
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,IAAI,mBAAmB,EACpC,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrG,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9F,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,52 +1,8 @@
1
1
  /**
2
- * @fastxyz/allset-sdk — AllSet bridge SDK
2
+ * @fastxyz/allset-sdk — browser-safe core helpers
3
3
  *
4
- * Bridge tokens between Fast network and EVM chains.
5
- *
6
- * Prerequisites: Install @fastxyz/sdk for FastWallet support.
7
- * npm install @fastxyz/sdk @fastxyz/allset-sdk
8
- *
9
- * @example
10
- * ```ts
11
- * import { FastProvider, FastWallet } from '@fastxyz/sdk';
12
- * import { AllSetProvider, createEvmExecutor, createEvmWallet } from '@fastxyz/allset-sdk';
13
- *
14
- * // Setup
15
- * const fastProvider = new FastProvider({ network: 'testnet' });
16
- * const allset = new AllSetProvider({ network: 'testnet' });
17
- * const fastWallet = await FastWallet.fromKeyfile('~/.fast/keys/default.json', fastProvider);
18
- * const evmWallet = createEvmWallet('~/.allset/.evm/keys/default.json');
19
- *
20
- * // Deposit: EVM → Fast
21
- * const evmExecutor = createEvmExecutor(evmWallet.privateKey, 'https://sepolia-rollup.arbitrum.io/rpc', 421614);
22
- * await allset.sendToFast({
23
- * chain: 'arbitrum',
24
- * token: 'USDC',
25
- * amount: '1000000',
26
- * from: evmWallet.address,
27
- * to: fastWallet.address,
28
- * evmExecutor,
29
- * });
30
- *
31
- * // Withdraw: Fast → EVM
32
- * await allset.sendToExternal({
33
- * chain: 'arbitrum',
34
- * token: 'fastUSDC',
35
- * amount: '1000000',
36
- * from: fastWallet.address,
37
- * to: evmWallet.address,
38
- * fastWallet,
39
- * });
40
- * ```
4
+ * Root exports are pure helpers only. Use `@fastxyz/allset-sdk/node` for
5
+ * provider, executor, wallet, bridge execution, and file-backed config APIs.
41
6
  */
42
- // Bridge functions
43
- export { evmSign, executeBridge, executeIntent } from './bridge.js';
44
- // Intent builders
45
- export { IntentAction, buildTransferIntent, buildExecuteIntent, buildDepositBackIntent, buildRevokeIntent, } from './intents.js';
46
- // AllSetProvider class (configurable)
47
- export { AllSetProvider, getAllSetDir, getEvmKeysDir as getAllSetEvmKeysDir, ensureAllSetDirs, initUserConfig, } from './provider.js';
48
- // EVM utilities
49
- export { createEvmExecutor, createEvmWallet, saveEvmWallet, getEvmKeysDir } from './evm-executor.js';
50
- // Config utilities (lower-level)
51
- export { loadNetworksConfig, getNetworkConfig, getChainConfig, getTokenConfig, clearConfigCache, } from './config.js';
7
+ export * from './core/index.js';
52
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpE,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,sCAAsC;AACtC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,IAAI,mBAAmB,EACpC,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErG,iCAAiC;AACjC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../src/intents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;GAEG;AACH,oBAAY,YAAY;IACtB,4BAA4B;IAC5B,OAAO,IAAI;IACX,iCAAiC;IACjC,eAAe,IAAI;IACnB,0CAA0C;IAC1C,cAAc,IAAI;IAClB,mCAAmC;IACnC,MAAM,IAAI;CACX;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,sBAAsB;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;CACf;AAgBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAW,GACjB,MAAM,CAUR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB,MAAM,CAWR;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C"}
1
+ {"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../src/intents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;GAEG;AACH,oBAAY,YAAY;IACtB,4BAA4B;IAC5B,OAAO,IAAI;IACX,iCAAiC;IACjC,eAAe,IAAI;IACnB,0CAA0C;IAC1C,cAAc,IAAI;IAClB,mCAAmC;IACnC,MAAM,IAAI;CACX;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,sBAAsB;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAW,GACjB,MAAM,CAUR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB,MAAM,CAWR;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C"}
package/dist/intents.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * transferring tokens from Fast network.
6
6
  */
7
7
  import { encodeAbiParameters } from 'viem';
8
- import { bech32m } from 'bech32';
8
+ import { fastAddressToBytes32 } from './core/address.js';
9
9
  // ---------------------------------------------------------------------------
10
10
  // Types
11
11
  // ---------------------------------------------------------------------------
@@ -24,14 +24,6 @@ export var IntentAction;
24
24
  IntentAction[IntentAction["Revoke"] = 3] = "Revoke";
25
25
  })(IntentAction || (IntentAction = {}));
26
26
  // ---------------------------------------------------------------------------
27
- // Helper Functions
28
- // ---------------------------------------------------------------------------
29
- function fastAddressToBytes32(address) {
30
- const { words } = bech32m.decode(address, 90);
31
- const bytes = new Uint8Array(bech32m.fromWords(words));
32
- return `0x${Buffer.from(bytes).toString('hex')}`;
33
- }
34
- // ---------------------------------------------------------------------------
35
27
  // Intent Builders
36
28
  // ---------------------------------------------------------------------------
37
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"intents.js","sourceRoot":"","sources":["../src/intents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACtB,4BAA4B;IAC5B,qDAAW,CAAA;IACX,iCAAiC;IACjC,qEAAmB,CAAA;IACnB,0CAA0C;IAC1C,mEAAkB,CAAA;IAClB,mCAAmC;IACnC,mDAAU,CAAA;AACZ,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB;AAcD,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAmB,CAAC;AACpE,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,MAAM,OAAO,GAAG,mBAAmB,CACjC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,KAAsB,EAAE,QAAyB,CAAC,CACpD,CAAC;IACF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,eAAe;QACpC,OAAO;QACP,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,QAAgB,EAChB,QAAgB,EAAE;IAElB,MAAM,OAAO,GAAG,mBAAmB,CACjC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACxC,CAAC,MAAuB,EAAE,QAAyB,CAAC,CACrD,CAAC;IACF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,OAAO;QAC5B,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,YAAoB;IAEpB,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,mBAAmB,CACjC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,KAAsB,EAAE,aAAa,CAAC,CACxC,CAAC;IACF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,cAAc;QACnC,OAAO;QACP,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"intents.js","sourceRoot":"","sources":["../src/intents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACtB,4BAA4B;IAC5B,qDAAW,CAAA;IACX,iCAAiC;IACjC,qEAAmB,CAAA;IACnB,0CAA0C;IAC1C,mEAAkB,CAAA;IAClB,mCAAmC;IACnC,mDAAU,CAAA;AACZ,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB;AAcD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,MAAM,OAAO,GAAG,mBAAmB,CACjC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,KAAsB,EAAE,QAAyB,CAAC,CACpD,CAAC;IACF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,eAAe;QACpC,OAAO;QACP,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,QAAgB,EAChB,QAAgB,EAAE;IAElB,MAAM,OAAO,GAAG,mBAAmB,CACjC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACxC,CAAC,MAAuB,EAAE,QAAyB,CAAC,CACrD,CAAC;IACF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,OAAO;QAC5B,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,YAAoB;IAEpB,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,mBAAmB,CACjC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,KAAsB,EAAE,aAAa,CAAC,CACxC,CAAC;IACF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,cAAc;QACnC,OAAO;QACP,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/node/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAsC,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtH,OAAO,EAAoD,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA0GnH,UAAU,oBAAoB;IAC5B,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAClD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IACjE,gBAAgB,CAAC,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;KAAE,CAAC;CAC9D;AAiKD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,OAAO,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CA2CxB;AAID;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiChH;AAqID;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAqLvB"}
@@ -7,14 +7,50 @@
7
7
  * Deposit (EVM → Fast): call bridge.deposit(token, amount, receiver) on the EVM bridge contract
8
8
  * Withdraw (Fast → EVM): transfer on Fast network + submit ExternalClaim intent + POST to relayer
9
9
  */
10
- import { bech32m } from 'bech32';
11
- import { decodeAbiParameters, encodeAbiParameters, encodeFunctionData } from 'viem';
12
- import { FastError } from '@fastxyz/sdk';
10
+ import { decodeAbiParameters, encodeAbiParameters } from 'viem';
13
11
  import { getNetworkConfig, getChainConfig, getTokenConfig } from './config.js';
14
- import { IntentAction, buildTransferIntent } from './intents.js';
12
+ import { buildDepositTransactionFromRoute } from '../core/deposit.js';
13
+ import { IntentAction, buildTransferIntent } from '../intents.js';
14
+ import { ERC20_ABI } from './evm-executor.js';
15
15
  // ─── Constants ────────────────────────────────────────────────────────────────
16
16
  // Default network (can be overridden via environment variable)
17
17
  const DEFAULT_NETWORK = process.env.ALLSET_NETWORK || 'testnet';
18
+ class LocalFastError extends Error {
19
+ code;
20
+ note;
21
+ constructor(code, message, opts) {
22
+ super(message);
23
+ this.name = 'FastError';
24
+ this.code = code;
25
+ this.note = opts?.note ?? '';
26
+ }
27
+ toJSON() {
28
+ return {
29
+ error: true,
30
+ code: this.code,
31
+ message: this.message,
32
+ note: this.note,
33
+ };
34
+ }
35
+ }
36
+ let sdkFastErrorPromise = null;
37
+ // Keep @fastxyz/sdk runtime-optional for deposit-only consumers.
38
+ async function loadFastErrorConstructor() {
39
+ sdkFastErrorPromise ??= import('@fastxyz/sdk')
40
+ .then((mod) => (typeof mod.FastError === 'function' ? mod.FastError : null))
41
+ .catch(() => null);
42
+ return sdkFastErrorPromise;
43
+ }
44
+ async function createFastError(code, message, opts) {
45
+ const FastError = await loadFastErrorConstructor();
46
+ return FastError ? new FastError(code, message, opts) : new LocalFastError(code, message, opts);
47
+ }
48
+ function isFastError(err) {
49
+ return (err instanceof Error &&
50
+ err.name === 'FastError' &&
51
+ typeof err.code === 'string' &&
52
+ typeof err.note === 'string');
53
+ }
18
54
  /**
19
55
  * Convert decimal amount string to hex for BCS serialization.
20
56
  * The Fast network BCS expects amounts as hex strings.
@@ -78,11 +114,6 @@ function resolveAllSetToken(token, evmChain, network = DEFAULT_NETWORK, provider
78
114
  }
79
115
  return null;
80
116
  }
81
- function fastAddressToBytes32(address) {
82
- const { words } = bech32m.decode(address, 90);
83
- const bytes = new Uint8Array(bech32m.fromWords(words));
84
- return `0x${Buffer.from(bytes).toString('hex')}`;
85
- }
86
117
  function hexToUint8Array(hex) {
87
118
  const clean = hex.startsWith('0x') ? hex.slice(2) : hex;
88
119
  const bytes = new Uint8Array(clean.length / 2);
@@ -91,17 +122,43 @@ function hexToUint8Array(hex) {
91
122
  }
92
123
  return bytes;
93
124
  }
94
- const BRIDGE_DEPOSIT_ABI = [{
95
- type: 'function',
96
- name: 'deposit',
97
- inputs: [
98
- { name: 'token', type: 'address' },
99
- { name: 'amount', type: 'uint256' },
100
- { name: 'receiver', type: 'bytes32' },
101
- ],
102
- outputs: [],
103
- stateMutability: 'payable',
104
- }];
125
+ // ─── EVM Transaction Helpers ──────────────────────────────────────────────────
126
+ async function sendTx(clients, tx) {
127
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
+ const walletClient = clients.walletClient;
129
+ const hash = await walletClient.sendTransaction({
130
+ to: tx.to,
131
+ data: tx.data,
132
+ value: BigInt(tx.value),
133
+ gas: tx.gas ? BigInt(tx.gas) : undefined,
134
+ });
135
+ const receipt = await clients.publicClient.waitForTransactionReceipt({ hash });
136
+ return {
137
+ txHash: hash,
138
+ status: receipt.status === 'success' ? 'success' : 'reverted',
139
+ };
140
+ }
141
+ async function checkAllowance(clients, token, spender, owner) {
142
+ const allowance = await clients.publicClient.readContract({
143
+ address: token,
144
+ abi: ERC20_ABI,
145
+ functionName: 'allowance',
146
+ args: [owner, spender],
147
+ });
148
+ return allowance;
149
+ }
150
+ async function approveErc20(clients, token, spender, amount) {
151
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
152
+ const walletClient = clients.walletClient;
153
+ const hash = await walletClient.writeContract({
154
+ address: token,
155
+ abi: ERC20_ABI,
156
+ functionName: 'approve',
157
+ args: [spender, BigInt(amount)],
158
+ });
159
+ await clients.publicClient.waitForTransactionReceipt({ hash });
160
+ return hash;
161
+ }
105
162
  function resolveExternalAddress(intents, externalAddressOverride) {
106
163
  if (externalAddressOverride) {
107
164
  return externalAddressOverride;
@@ -158,14 +215,14 @@ export async function evmSign(certificate, crossSignUrl) {
158
215
  }),
159
216
  });
160
217
  if (!res.ok) {
161
- throw new FastError('TX_FAILED', `Cross-sign request failed: ${res.status}`, { note: 'The AllSet cross-sign service rejected the request.' });
218
+ throw await createFastError('TX_FAILED', `Cross-sign request failed: ${res.status}`, { note: 'The AllSet cross-sign service rejected the request.' });
162
219
  }
163
220
  const json = await res.json();
164
221
  if (json.error) {
165
- throw new FastError('TX_FAILED', `Cross-sign error: ${json.error.message}`, { note: 'The certificate could not be cross-signed.' });
222
+ throw await createFastError('TX_FAILED', `Cross-sign error: ${json.error.message}`, { note: 'The certificate could not be cross-signed.' });
166
223
  }
167
224
  if (!json.result?.transaction || !json.result?.signature) {
168
- throw new FastError('TX_FAILED', 'Cross-sign returned invalid response', { note: 'Missing transaction or signature in response.' });
225
+ throw await createFastError('TX_FAILED', 'Cross-sign returned invalid response', { note: 'Missing transaction or signature in response.' });
169
226
  }
170
227
  return json.result;
171
228
  }
@@ -180,7 +237,7 @@ export async function executeBridge(params, provider) {
180
237
  const isDeposit = params.fromChain !== 'fast' && params.toChain === 'fast';
181
238
  const isWithdraw = params.fromChain === 'fast';
182
239
  if (!isDeposit && !isWithdraw) {
183
- throw new FastError('UNSUPPORTED_OPERATION', `AllSet only supports bridging between Fast network and EVM chains (ethereum, arbitrum). Got: ${params.fromChain} → ${params.toChain}`, {
240
+ throw await createFastError('UNSUPPORTED_OPERATION', `AllSet only supports bridging between Fast network and configured EVM chains (${getSupportedChains(network, provider).join(', ') || 'none'}). Got: ${params.fromChain} → ${params.toChain}`, {
184
241
  note: 'Use fromChain: "fast" for withdrawals, or toChain: "fast" for deposits.\n Example: await allset.bridge({ fromChain: "ethereum", toChain: "fast", fromToken: "USDC", toToken: "fastUSDC", amount: "1000000", senderAddress: "0x...", receiverAddress: "fast1..." })',
185
242
  });
186
243
  }
@@ -190,25 +247,25 @@ export async function executeBridge(params, provider) {
190
247
  return await handleWithdraw(params, network, provider);
191
248
  }
192
249
  catch (err) {
193
- if (err instanceof FastError)
250
+ if (isFastError(err))
194
251
  throw err;
195
252
  const msg = err instanceof Error ? err.message : String(err);
196
- throw new FastError('TX_FAILED', `AllSet bridge failed: ${msg}`, {
253
+ throw await createFastError('TX_FAILED', `AllSet bridge failed: ${msg}`, {
197
254
  note: 'Check that both chains are configured and have sufficient balance.',
198
255
  });
199
256
  }
200
257
  }
201
258
  // ─── Deposit (EVM → Fast) ─────────────────────────────────────────────────────
202
259
  async function handleDeposit(params, network = DEFAULT_NETWORK, provider) {
203
- if (!params.evmExecutor) {
204
- throw new FastError('INVALID_PARAMS', 'AllSet deposit (EVM → Fast) requires evmExecutor', {
205
- note: 'Provide an evmExecutor created with createEvmExecutor().\n Example: const executor = createEvmExecutor(privateKey, rpcUrl, chainId)',
260
+ if (!params.evmClients) {
261
+ throw await createFastError('INVALID_PARAMS', 'AllSet deposit (EVM → Fast) requires evmClients', {
262
+ note: 'Provide evmClients created with createEvmExecutor().\n Example: const account = createEvmWallet(path); const clients = createEvmExecutor(account, rpcUrl, chainId)',
206
263
  });
207
264
  }
208
265
  const chainConfigRaw = resolveChainConfig(params.fromChain, network, provider);
209
266
  if (!chainConfigRaw) {
210
- throw new FastError('UNSUPPORTED_OPERATION', `AllSet does not support EVM chain "${params.fromChain}". Supported: ${getSupportedChains(network, provider).join(', ')}`, {
211
- note: 'Use "ethereum" or "arbitrum" as the source chain for AllSet deposits.',
267
+ throw await createFastError('UNSUPPORTED_OPERATION', `AllSet does not support EVM chain "${params.fromChain}". Supported: ${getSupportedChains(network, provider).join(', ')}`, {
268
+ note: 'Use one of the configured EVM chains as the source chain for AllSet deposits.',
212
269
  });
213
270
  }
214
271
  const chainConfig = toAllSetChainConfig(chainConfigRaw);
@@ -217,38 +274,38 @@ async function handleDeposit(params, network = DEFAULT_NETWORK, provider) {
217
274
  tokenInfo = resolveAllSetToken(params.toToken, params.fromChain, network, provider);
218
275
  }
219
276
  if (!tokenInfo) {
220
- throw new FastError('TOKEN_NOT_FOUND', `Cannot resolve token "${params.fromToken}" on AllSet for chain "${params.fromChain}".`, {
221
- note: 'Supported tokens: USDC, fastUSDC.\n Example: await allset.bridge({ fromChain: "arbitrum", toChain: "fast", fromToken: "USDC", toToken: "fastUSDC", amount: "1000000", senderAddress: "0x...", receiverAddress: "fast1..." })',
277
+ throw await createFastError('TOKEN_NOT_FOUND', `Cannot resolve token "${params.fromToken}" on AllSet for chain "${params.fromChain}".`, {
278
+ note: 'Supported tokens: USDC, fastUSDC, testUSDC.\n Example: await allset.bridge({ fromChain: "arbitrum", toChain: "fast", fromToken: "USDC", toToken: "fastUSDC", amount: "1000000", senderAddress: "0x...", receiverAddress: "fast1..." })',
222
279
  });
223
280
  }
224
- let receiverBytes32;
281
+ let depositPlan;
225
282
  try {
226
- receiverBytes32 = fastAddressToBytes32(params.receiverAddress);
283
+ depositPlan = buildDepositTransactionFromRoute({
284
+ network,
285
+ chain: params.fromChain,
286
+ token: params.fromToken,
287
+ chainId: chainConfig.chainId,
288
+ bridgeAddress: chainConfig.bridgeContract,
289
+ tokenAddress: tokenInfo.evmAddress,
290
+ decimals: tokenInfo.decimals,
291
+ isNative: tokenInfo.isNative,
292
+ }, BigInt(params.amount), params.receiverAddress);
227
293
  }
228
294
  catch (err) {
229
295
  const msg = err instanceof Error ? err.message : String(err);
230
- throw new FastError('INVALID_ADDRESS', `Failed to decode Fast network receiver address "${params.receiverAddress}": ${msg}`, {
296
+ throw await createFastError('INVALID_ADDRESS', `Failed to decode Fast network receiver address "${params.receiverAddress}": ${msg}`, {
231
297
  note: 'The receiver address must be a valid Fast network bech32m address (fast1...).\n Example: fast1abc...',
232
298
  });
233
299
  }
234
- const calldata = encodeFunctionData({
235
- abi: BRIDGE_DEPOSIT_ABI,
236
- functionName: 'deposit',
237
- args: [
238
- tokenInfo.evmAddress,
239
- BigInt(params.amount),
240
- receiverBytes32,
241
- ],
242
- });
243
300
  let txHash;
244
- if (tokenInfo.isNative) {
245
- const receipt = await params.evmExecutor.sendTx({
246
- to: chainConfig.bridgeContract,
247
- data: calldata,
248
- value: params.amount,
301
+ if (depositPlan.route.isNative) {
302
+ const receipt = await sendTx(params.evmClients, {
303
+ to: depositPlan.to,
304
+ data: depositPlan.data,
305
+ value: depositPlan.value.toString(),
249
306
  });
250
307
  if (receipt.status === 'reverted') {
251
- throw new FastError('TX_FAILED', `AllSet deposit transaction reverted: ${receipt.txHash}`, {
308
+ throw await createFastError('TX_FAILED', `AllSet deposit transaction reverted: ${receipt.txHash}`, {
252
309
  note: 'The deposit transaction was reverted. Check that you have sufficient ETH balance.',
253
310
  });
254
311
  }
@@ -256,17 +313,17 @@ async function handleDeposit(params, network = DEFAULT_NETWORK, provider) {
256
313
  }
257
314
  else {
258
315
  const requiredAmount = BigInt(params.amount);
259
- const currentAllowance = await params.evmExecutor.checkAllowance(tokenInfo.evmAddress, chainConfig.bridgeContract, params.senderAddress);
316
+ const currentAllowance = await checkAllowance(params.evmClients, depositPlan.route.tokenAddress, depositPlan.to, params.senderAddress);
260
317
  if (currentAllowance < requiredAmount) {
261
- await params.evmExecutor.approveErc20(tokenInfo.evmAddress, chainConfig.bridgeContract, params.amount);
318
+ await approveErc20(params.evmClients, depositPlan.route.tokenAddress, depositPlan.to, params.amount);
262
319
  }
263
- const receipt = await params.evmExecutor.sendTx({
264
- to: chainConfig.bridgeContract,
265
- data: calldata,
266
- value: '0',
320
+ const receipt = await sendTx(params.evmClients, {
321
+ to: depositPlan.to,
322
+ data: depositPlan.data,
323
+ value: depositPlan.value.toString(),
267
324
  });
268
325
  if (receipt.status === 'reverted') {
269
- throw new FastError('TX_FAILED', `AllSet deposit transaction reverted: ${receipt.txHash}`, {
326
+ throw await createFastError('TX_FAILED', `AllSet deposit transaction reverted: ${receipt.txHash}`, {
270
327
  note: 'The deposit transaction was reverted. Check that you have sufficient token balance and the approval succeeded.',
271
328
  });
272
329
  }
@@ -289,31 +346,31 @@ export async function executeIntent(params, provider) {
289
346
  const crossSignUrl = provider?.crossSignUrl;
290
347
  const { fastWallet, chain, token, amount, intents, externalAddress: externalAddressOverride, deadlineSeconds = 3600, } = params;
291
348
  if (!fastWallet) {
292
- throw new FastError('INVALID_PARAMS', 'executeIntent requires fastWallet', {
293
- note: 'Provide a FastWallet from @fastxyz/sdk.\n Example: const wallet = await FastWallet.fromKeyfile("~/.fast/keys/default.json", provider)',
349
+ throw await createFastError('INVALID_PARAMS', 'executeIntent requires fastWallet', {
350
+ note: 'Provide a compatible Fast wallet.\n Example: const wallet = await FastWallet.fromKeyfile("~/.fast/keys/default.json", provider)',
294
351
  });
295
352
  }
296
353
  if (!intents || intents.length === 0) {
297
- throw new FastError('INVALID_PARAMS', 'executeIntent requires at least one intent', {
354
+ throw await createFastError('INVALID_PARAMS', 'executeIntent requires at least one intent', {
298
355
  note: 'Use intent builders like buildTransferIntent(), buildExecuteIntent(), etc.',
299
356
  });
300
357
  }
301
358
  if (externalAddressOverride && !externalAddressOverride.startsWith('0x')) {
302
- throw new FastError('INVALID_PARAMS', 'executeIntent externalAddress must be an EVM address', {
359
+ throw await createFastError('INVALID_PARAMS', 'executeIntent externalAddress must be an EVM address', {
303
360
  note: 'Pass a 0x-prefixed address for the relayer target.',
304
361
  });
305
362
  }
306
363
  const chainConfigRaw = resolveChainConfig(chain, network, provider);
307
364
  if (!chainConfigRaw) {
308
- throw new FastError('UNSUPPORTED_OPERATION', `AllSet does not support EVM chain "${chain}". Supported: ${getSupportedChains(network, provider).join(', ')}`, {
309
- note: 'Use "ethereum" or "arbitrum" as the chain.',
365
+ throw await createFastError('UNSUPPORTED_OPERATION', `AllSet does not support EVM chain "${chain}". Supported: ${getSupportedChains(network, provider).join(', ')}`, {
366
+ note: 'Use one of the configured EVM chains.',
310
367
  });
311
368
  }
312
369
  const chainConfig = toAllSetChainConfig(chainConfigRaw);
313
370
  const tokenInfo = resolveAllSetToken(token, chain, network, provider);
314
371
  if (!tokenInfo) {
315
- throw new FastError('TOKEN_NOT_FOUND', `Cannot resolve token "${token}" on AllSet for chain "${chain}".`, {
316
- note: 'Supported tokens: USDC, fastUSDC.',
372
+ throw await createFastError('TOKEN_NOT_FOUND', `Cannot resolve token "${token}" on AllSet for chain "${chain}".`, {
373
+ note: 'Supported tokens: USDC, fastUSDC, testUSDC.',
317
374
  });
318
375
  }
319
376
  // Step 1: Transfer tokens to bridge address on Fast network
@@ -376,7 +433,7 @@ export async function executeIntent(params, provider) {
376
433
  // Step 6: Submit to relayer
377
434
  const externalAddress = resolveExternalAddress(intents, externalAddressOverride);
378
435
  if (!externalAddress) {
379
- throw new FastError('INVALID_PARAMS', 'executeIntent requires externalAddress when intents do not include a transfer recipient or execute target', {
436
+ throw await createFastError('INVALID_PARAMS', 'executeIntent requires externalAddress when intents do not include a transfer recipient or execute target', {
380
437
  note: 'Pass externalAddress for flows like buildDepositBackIntent() or buildRevokeIntent().',
381
438
  });
382
439
  }
@@ -400,7 +457,7 @@ export async function executeIntent(params, provider) {
400
457
  });
401
458
  if (!relayRes.ok) {
402
459
  const text = await relayRes.text();
403
- throw new FastError('TX_FAILED', `AllSet relayer request failed (${relayRes.status}): ${text}`, {
460
+ throw await createFastError('TX_FAILED', `AllSet relayer request failed (${relayRes.status}): ${text}`, {
404
461
  note: 'The intent was submitted to Fast network but the relayer rejected it. Try again.',
405
462
  });
406
463
  }
@@ -413,16 +470,16 @@ export async function executeIntent(params, provider) {
413
470
  // ─── Withdraw (Fast → EVM) ────────────────────────────────────────────────────
414
471
  async function handleWithdraw(params, network = DEFAULT_NETWORK, provider) {
415
472
  if (!params.fastWallet) {
416
- throw new FastError('INVALID_PARAMS', 'AllSet withdrawal (Fast → EVM) requires fastWallet', {
417
- note: 'Provide a FastWallet from @fastxyz/sdk.\n Example: const wallet = await FastWallet.fromKeyfile("~/.fast/keys/default.json", provider)',
473
+ throw await createFastError('INVALID_PARAMS', 'AllSet withdrawal (Fast → EVM) requires fastWallet', {
474
+ note: 'Provide a compatible Fast wallet.\n Example: const wallet = await FastWallet.fromKeyfile("~/.fast/keys/default.json", provider)',
418
475
  });
419
476
  }
420
477
  // Resolve token to get EVM address for the transfer intent
421
478
  const tokenInfo = resolveAllSetToken(params.fromToken, params.toChain, network, provider)
422
479
  ?? resolveAllSetToken(params.toToken, params.toChain, network, provider);
423
480
  if (!tokenInfo) {
424
- throw new FastError('TOKEN_NOT_FOUND', `Cannot resolve token "${params.fromToken}" on AllSet for destination chain "${params.toChain}".`, {
425
- note: 'Supported tokens: USDC, fastUSDC.',
481
+ throw await createFastError('TOKEN_NOT_FOUND', `Cannot resolve token "${params.fromToken}" on AllSet for destination chain "${params.toChain}".`, {
482
+ note: 'Supported tokens: USDC, fastUSDC, testUSDC.',
426
483
  });
427
484
  }
428
485
  // Build a simple transfer intent
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/node/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
1
  /**
2
- * config.ts — Network configuration loader
3
- *
4
- * Loads bridge configuration from data/networks.json.
5
- * Supports testnet and mainnet configurations.
2
+ * config.ts — Embedded network configuration accessors
6
3
  */
7
4
  export interface TokenConfig {
8
5
  evmAddress: string;
@@ -26,7 +23,7 @@ export interface AllNetworksConfig {
26
23
  }
27
24
  /**
28
25
  * Load the networks configuration.
29
- * Caches the result after first load.
26
+ * Caches a clone of the embedded default config after first load.
30
27
  */
31
28
  export declare function loadNetworksConfig(): AllNetworksConfig;
32
29
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/node/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;CACxB;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,SAAS,GAAG,SAAqB,GAAG,aAAa,CAG1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,SAAS,GAAG,SAAqB,GACzC,WAAW,GAAG,IAAI,CAGpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,SAAS,GAAG,SAAqB,GACzC,WAAW,GAAG,IAAI,CAIpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -1,39 +1,21 @@
1
1
  /**
2
- * config.ts — Network configuration loader
3
- *
4
- * Loads bridge configuration from data/networks.json.
5
- * Supports testnet and mainnet configurations.
2
+ * config.ts — Embedded network configuration accessors
6
3
  */
7
- import { readFileSync } from 'node:fs';
8
- import { dirname, join } from 'node:path';
9
- import { fileURLToPath } from 'node:url';
4
+ import { DEFAULT_NETWORKS_CONFIG } from '../default-config.js';
10
5
  // ---------------------------------------------------------------------------
11
6
  // Config Loading
12
7
  // ---------------------------------------------------------------------------
13
8
  let cachedConfig = null;
14
- function getDataDir() {
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = dirname(__filename);
17
- // In dist/, go up one level to find data/
18
- return join(__dirname, '..', 'data');
19
- }
20
9
  /**
21
10
  * Load the networks configuration.
22
- * Caches the result after first load.
11
+ * Caches a clone of the embedded default config after first load.
23
12
  */
24
13
  export function loadNetworksConfig() {
25
14
  if (cachedConfig) {
26
15
  return cachedConfig;
27
16
  }
28
- const configPath = join(getDataDir(), 'networks.json');
29
- try {
30
- const raw = readFileSync(configPath, 'utf-8');
31
- cachedConfig = JSON.parse(raw);
32
- return cachedConfig;
33
- }
34
- catch (err) {
35
- throw new Error(`Failed to load networks config from ${configPath}: ${err instanceof Error ? err.message : String(err)}`);
36
- }
17
+ cachedConfig = structuredClone(DEFAULT_NETWORKS_CONFIG);
18
+ return cachedConfig;
37
19
  }
38
20
  /**
39
21
  * Get configuration for a specific network (testnet or mainnet).
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/node/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AA8B/D,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,IAAI,YAAY,GAA6B,IAAI,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,YAAY,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;IACxD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAiC,SAAS;IACzE,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,UAAiC,SAAS;IAE1C,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,KAAa,EACb,UAAiC,SAAS;IAE1C,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}