@axonfi/sdk 0.4.0 → 0.4.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.
Files changed (97) hide show
  1. package/README.md +15 -9
  2. package/dist/index.cjs +4325 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +3256 -0
  5. package/dist/index.d.ts +3256 -21
  6. package/dist/index.js +4261 -27
  7. package/dist/index.js.map +1 -1
  8. package/package.json +1 -1
  9. package/dist/abis/AxonRegistry.d.ts +0 -294
  10. package/dist/abis/AxonRegistry.d.ts.map +0 -1
  11. package/dist/abis/AxonRegistry.js +0 -381
  12. package/dist/abis/AxonRegistry.js.map +0 -1
  13. package/dist/abis/AxonVault.d.ts +0 -1577
  14. package/dist/abis/AxonVault.d.ts.map +0 -1
  15. package/dist/abis/AxonVault.js +0 -2026
  16. package/dist/abis/AxonVault.js.map +0 -1
  17. package/dist/abis/AxonVaultFactory.d.ts +0 -207
  18. package/dist/abis/AxonVaultFactory.d.ts.map +0 -1
  19. package/dist/abis/AxonVaultFactory.js +0 -269
  20. package/dist/abis/AxonVaultFactory.js.map +0 -1
  21. package/dist/amounts.d.ts +0 -37
  22. package/dist/amounts.d.ts.map +0 -1
  23. package/dist/amounts.js +0 -72
  24. package/dist/amounts.js.map +0 -1
  25. package/dist/amounts.spec.d.ts +0 -2
  26. package/dist/amounts.spec.d.ts.map +0 -1
  27. package/dist/amounts.spec.js +0 -92
  28. package/dist/amounts.spec.js.map +0 -1
  29. package/dist/client.d.ts +0 -196
  30. package/dist/client.d.ts.map +0 -1
  31. package/dist/client.js +0 -621
  32. package/dist/client.js.map +0 -1
  33. package/dist/client.spec.d.ts +0 -2
  34. package/dist/client.spec.d.ts.map +0 -1
  35. package/dist/client.spec.js +0 -437
  36. package/dist/client.spec.js.map +0 -1
  37. package/dist/constants.d.ts +0 -110
  38. package/dist/constants.d.ts.map +0 -1
  39. package/dist/constants.js +0 -172
  40. package/dist/constants.js.map +0 -1
  41. package/dist/constants.spec.d.ts +0 -2
  42. package/dist/constants.spec.d.ts.map +0 -1
  43. package/dist/constants.spec.js +0 -95
  44. package/dist/constants.spec.js.map +0 -1
  45. package/dist/eip3009.d.ts +0 -45
  46. package/dist/eip3009.d.ts.map +0 -1
  47. package/dist/eip3009.js +0 -85
  48. package/dist/eip3009.js.map +0 -1
  49. package/dist/index.d.ts.map +0 -1
  50. package/dist/keystore.d.ts +0 -60
  51. package/dist/keystore.d.ts.map +0 -1
  52. package/dist/keystore.js +0 -182
  53. package/dist/keystore.js.map +0 -1
  54. package/dist/keystore.spec.d.ts +0 -2
  55. package/dist/keystore.spec.d.ts.map +0 -1
  56. package/dist/keystore.spec.js +0 -71
  57. package/dist/keystore.spec.js.map +0 -1
  58. package/dist/permit2.d.ts +0 -45
  59. package/dist/permit2.d.ts.map +0 -1
  60. package/dist/permit2.js +0 -81
  61. package/dist/permit2.js.map +0 -1
  62. package/dist/signer.d.ts +0 -35
  63. package/dist/signer.d.ts.map +0 -1
  64. package/dist/signer.js +0 -132
  65. package/dist/signer.js.map +0 -1
  66. package/dist/signer.spec.d.ts +0 -2
  67. package/dist/signer.spec.d.ts.map +0 -1
  68. package/dist/signer.spec.js +0 -94
  69. package/dist/signer.spec.js.map +0 -1
  70. package/dist/tokens.d.ts +0 -215
  71. package/dist/tokens.d.ts.map +0 -1
  72. package/dist/tokens.js +0 -247
  73. package/dist/tokens.js.map +0 -1
  74. package/dist/types.d.ts +0 -302
  75. package/dist/types.d.ts.map +0 -1
  76. package/dist/types.js +0 -2
  77. package/dist/types.js.map +0 -1
  78. package/dist/utils.d.ts +0 -8
  79. package/dist/utils.d.ts.map +0 -1
  80. package/dist/utils.js +0 -29
  81. package/dist/utils.js.map +0 -1
  82. package/dist/vault.d.ts +0 -60
  83. package/dist/vault.d.ts.map +0 -1
  84. package/dist/vault.js +0 -267
  85. package/dist/vault.js.map +0 -1
  86. package/dist/vault.spec.d.ts +0 -2
  87. package/dist/vault.spec.d.ts.map +0 -1
  88. package/dist/vault.spec.js +0 -162
  89. package/dist/vault.spec.js.map +0 -1
  90. package/dist/x402.d.ts +0 -88
  91. package/dist/x402.d.ts.map +0 -1
  92. package/dist/x402.js +0 -124
  93. package/dist/x402.js.map +0 -1
  94. package/dist/x402.spec.d.ts +0 -2
  95. package/dist/x402.spec.d.ts.map +0 -1
  96. package/dist/x402.spec.js +0 -411
  97. package/dist/x402.spec.js.map +0 -1
@@ -1,94 +0,0 @@
1
- import { describe, it, expect } from '@jest/globals';
2
- import { keccak256, stringToBytes } from 'viem';
3
- import { privateKeyToAccount } from 'viem/accounts';
4
- import { createWalletClient, http } from 'viem';
5
- import { baseSepolia } from 'viem/chains';
6
- import { signPayment, signExecuteIntent, signSwapIntent, encodeRef } from './signer.js';
7
- // Deterministic test key — NOT a real key, for testing only
8
- const TEST_PRIVATE_KEY = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
9
- const TEST_ACCOUNT = privateKeyToAccount(TEST_PRIVATE_KEY);
10
- const TEST_VAULT = '0x1234567890abcdef1234567890abcdef12345678';
11
- const TEST_CHAIN_ID = 84532;
12
- function makeWalletClient() {
13
- return createWalletClient({
14
- account: TEST_ACCOUNT,
15
- chain: baseSepolia,
16
- transport: http(),
17
- });
18
- }
19
- describe('encodeRef', () => {
20
- it('returns keccak256 of the UTF-8 encoded string', () => {
21
- const memo = 'API call #1234 — weather data';
22
- const expected = keccak256(stringToBytes(memo));
23
- expect(encodeRef(memo)).toBe(expected);
24
- });
25
- it('returns a 66-character hex string (0x + 64 hex chars)', () => {
26
- const result = encodeRef('hello');
27
- expect(result).toMatch(/^0x[0-9a-f]{64}$/);
28
- });
29
- it('returns different hashes for different inputs', () => {
30
- expect(encodeRef('hello')).not.toBe(encodeRef('world'));
31
- });
32
- it('returns consistent output for the same input', () => {
33
- expect(encodeRef('test')).toBe(encodeRef('test'));
34
- });
35
- });
36
- describe('signPayment', () => {
37
- const intent = {
38
- bot: TEST_ACCOUNT.address,
39
- to: '0x000000000000000000000000000000000000dead',
40
- token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
41
- amount: 1000000n,
42
- deadline: BigInt(Math.floor(Date.now() / 1000) + 300),
43
- ref: encodeRef('test payment'),
44
- };
45
- it('returns a valid EIP-712 signature', async () => {
46
- const walletClient = makeWalletClient();
47
- const sig = await signPayment(walletClient, TEST_VAULT, TEST_CHAIN_ID, intent);
48
- expect(sig).toMatch(/^0x[0-9a-fA-F]{130}$/);
49
- });
50
- it('produces deterministic signatures for the same intent', async () => {
51
- const walletClient = makeWalletClient();
52
- const sig1 = await signPayment(walletClient, TEST_VAULT, TEST_CHAIN_ID, intent);
53
- const sig2 = await signPayment(walletClient, TEST_VAULT, TEST_CHAIN_ID, intent);
54
- expect(sig1).toBe(sig2);
55
- });
56
- it('throws if walletClient has no account', async () => {
57
- const noAccountClient = createWalletClient({
58
- chain: baseSepolia,
59
- transport: http(),
60
- });
61
- await expect(signPayment(noAccountClient, TEST_VAULT, TEST_CHAIN_ID, intent)).rejects.toThrow('walletClient has no account');
62
- });
63
- });
64
- describe('signExecuteIntent', () => {
65
- const intent = {
66
- bot: TEST_ACCOUNT.address,
67
- protocol: '0x000000000000000000000000000000000000beef',
68
- calldataHash: keccak256('0x1234'),
69
- token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
70
- amount: 500000n,
71
- deadline: BigInt(Math.floor(Date.now() / 1000) + 300),
72
- ref: encodeRef('test execute'),
73
- };
74
- it('returns a valid EIP-712 signature', async () => {
75
- const walletClient = makeWalletClient();
76
- const sig = await signExecuteIntent(walletClient, TEST_VAULT, TEST_CHAIN_ID, intent);
77
- expect(sig).toMatch(/^0x[0-9a-fA-F]{130}$/);
78
- });
79
- });
80
- describe('signSwapIntent', () => {
81
- const intent = {
82
- bot: TEST_ACCOUNT.address,
83
- toToken: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
84
- minToAmount: 900000n,
85
- deadline: BigInt(Math.floor(Date.now() / 1000) + 300),
86
- ref: encodeRef('test swap'),
87
- };
88
- it('returns a valid EIP-712 signature', async () => {
89
- const walletClient = makeWalletClient();
90
- const sig = await signSwapIntent(walletClient, TEST_VAULT, TEST_CHAIN_ID, intent);
91
- expect(sig).toMatch(/^0x[0-9a-fA-F]{130}$/);
92
- });
93
- });
94
- //# sourceMappingURL=signer.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signer.spec.js","sourceRoot":"","sources":["../src/signer.spec.ts"],"names":[],"mappings":"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"}
package/dist/tokens.d.ts DELETED
@@ -1,215 +0,0 @@
1
- import type { Address } from 'viem';
2
- export declare enum Token {
3
- USDC = "USDC",
4
- USDT = "USDT",
5
- DAI = "DAI",
6
- WETH = "WETH",
7
- WBTC = "WBTC",
8
- cbBTC = "cbBTC",
9
- cbETH = "cbETH",
10
- wstETH = "wstETH",
11
- rETH = "rETH",
12
- LINK = "LINK",
13
- UNI = "UNI",
14
- AAVE = "AAVE",
15
- COMP = "COMP",
16
- CRV = "CRV",
17
- SNX = "SNX",
18
- ARB = "ARB",
19
- AERO = "AERO",
20
- GMX = "GMX"
21
- }
22
- export interface KnownToken {
23
- symbol: string;
24
- name: string;
25
- decimals: number;
26
- /** Address per chainId. Missing key = not available on that chain. */
27
- addresses: Partial<Record<number, Address>>;
28
- }
29
- /**
30
- * Master token registry keyed by symbol.
31
- * At a glance you see which chains each token lives on.
32
- *
33
- * Chain IDs: 8453 = Base, 84532 = Base Sepolia, 42161 = Arbitrum One, 421614 = Arbitrum Sepolia
34
- */
35
- export declare const KNOWN_TOKENS: {
36
- readonly USDC: {
37
- readonly symbol: "USDC";
38
- readonly name: "USD Coin";
39
- readonly decimals: 6;
40
- readonly addresses: {
41
- readonly 8453: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
42
- readonly 84532: "0x036CbD53842c5426634e7929541eC2318f3dCF7e";
43
- readonly 42161: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831";
44
- readonly 421614: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d";
45
- };
46
- };
47
- readonly USDT: {
48
- readonly symbol: "USDT";
49
- readonly name: "Tether USD";
50
- readonly decimals: 6;
51
- readonly addresses: {
52
- readonly 8453: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2";
53
- readonly 84532: "0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673";
54
- readonly 42161: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9";
55
- };
56
- };
57
- readonly DAI: {
58
- readonly symbol: "DAI";
59
- readonly name: "Dai Stablecoin";
60
- readonly decimals: 18;
61
- readonly addresses: {
62
- readonly 8453: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb";
63
- readonly 84532: "0x819ffecd4e64f193e959944bcd57eedc7755e17a";
64
- readonly 42161: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1";
65
- };
66
- };
67
- readonly WETH: {
68
- readonly symbol: "WETH";
69
- readonly name: "Wrapped Ether";
70
- readonly decimals: 18;
71
- readonly addresses: {
72
- readonly 8453: "0x4200000000000000000000000000000000000006";
73
- readonly 84532: "0x4200000000000000000000000000000000000006";
74
- readonly 42161: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1";
75
- readonly 421614: "0x980B62Da83eFf3D4576C647993b0c1D7faf17c73";
76
- };
77
- };
78
- readonly WBTC: {
79
- readonly symbol: "WBTC";
80
- readonly name: "Wrapped BTC";
81
- readonly decimals: 8;
82
- readonly addresses: {
83
- readonly 8453: "0x0555E30da8f98308EdB960aa94C0Db47230d2B9c";
84
- readonly 42161: "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f";
85
- };
86
- };
87
- readonly cbBTC: {
88
- readonly symbol: "cbBTC";
89
- readonly name: "Coinbase Wrapped BTC";
90
- readonly decimals: 8;
91
- readonly addresses: {
92
- readonly 8453: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
93
- readonly 42161: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
94
- };
95
- };
96
- readonly cbETH: {
97
- readonly symbol: "cbETH";
98
- readonly name: "Coinbase Staked ETH";
99
- readonly decimals: 18;
100
- readonly addresses: {
101
- readonly 8453: "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22";
102
- readonly 42161: "0x1DEBd73E752bEaF79865Fd6446b0c970EaE7732f";
103
- };
104
- };
105
- readonly wstETH: {
106
- readonly symbol: "wstETH";
107
- readonly name: "Lido Wrapped stETH";
108
- readonly decimals: 18;
109
- readonly addresses: {
110
- readonly 8453: "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452";
111
- readonly 42161: "0x5979D7b546E38E414F7E9822514be443A4800529";
112
- };
113
- };
114
- readonly rETH: {
115
- readonly symbol: "rETH";
116
- readonly name: "Rocket Pool ETH";
117
- readonly decimals: 18;
118
- readonly addresses: {
119
- readonly 42161: "0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8";
120
- };
121
- };
122
- readonly LINK: {
123
- readonly symbol: "LINK";
124
- readonly name: "Chainlink";
125
- readonly decimals: 18;
126
- readonly addresses: {
127
- readonly 8453: "0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196";
128
- readonly 84532: "0xE4aB69C077896252FAFBD49EFD26B5D171A32410";
129
- readonly 42161: "0xf97f4df75117a78c1A5a0DBb814Af92458539FB4";
130
- };
131
- };
132
- readonly UNI: {
133
- readonly symbol: "UNI";
134
- readonly name: "Uniswap";
135
- readonly decimals: 18;
136
- readonly addresses: {
137
- readonly 8453: "0xc3De830EA07524a0761646a6a4e4be0e114a3C83";
138
- readonly 42161: "0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0";
139
- };
140
- };
141
- readonly AAVE: {
142
- readonly symbol: "AAVE";
143
- readonly name: "Aave";
144
- readonly decimals: 18;
145
- readonly addresses: {
146
- readonly 8453: "0x63706e401c06ac8513145b7687A14804d17f814b";
147
- readonly 42161: "0xba5DdD1f9d7F570dc94a51479a000E3BCE967196";
148
- };
149
- };
150
- readonly COMP: {
151
- readonly symbol: "COMP";
152
- readonly name: "Compound";
153
- readonly decimals: 18;
154
- readonly addresses: {
155
- readonly 8453: "0x9e1028F5F1D5eDE59748FFceE5532509976840E0";
156
- readonly 42161: "0x354A6dA3fcde098F8389cad84b0182725c6C91dE";
157
- };
158
- };
159
- readonly CRV: {
160
- readonly symbol: "CRV";
161
- readonly name: "Curve DAO";
162
- readonly decimals: 18;
163
- readonly addresses: {
164
- readonly 8453: "0x8Ee73c484A26e0A5df2Ee2a4960B789967dd0415";
165
- readonly 42161: "0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978";
166
- };
167
- };
168
- readonly SNX: {
169
- readonly symbol: "SNX";
170
- readonly name: "Synthetix";
171
- readonly decimals: 18;
172
- readonly addresses: {
173
- readonly 8453: "0x22e6966B799c4D5B13BE962E1D117b56327FDa66";
174
- };
175
- };
176
- readonly ARB: {
177
- readonly symbol: "ARB";
178
- readonly name: "Arbitrum";
179
- readonly decimals: 18;
180
- readonly addresses: {
181
- readonly 42161: "0x912CE59144191C1204E64559FE8253a0e49E6548";
182
- };
183
- };
184
- readonly AERO: {
185
- readonly symbol: "AERO";
186
- readonly name: "Aerodrome";
187
- readonly decimals: 18;
188
- readonly addresses: {
189
- readonly 8453: "0x940181a94A35A4569E4529A3CDfB74e38FD98631";
190
- };
191
- };
192
- readonly GMX: {
193
- readonly symbol: "GMX";
194
- readonly name: "GMX";
195
- readonly decimals: 18;
196
- readonly addresses: {
197
- readonly 42161: "0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a";
198
- };
199
- };
200
- };
201
- export type KnownTokenSymbol = keyof typeof KNOWN_TOKENS;
202
- /** All known tokens available on a specific chain. */
203
- export declare function getKnownTokensForChain(chainId: number): (KnownToken & {
204
- address: Address;
205
- })[];
206
- /** Reverse-lookup: address → symbol (case-insensitive). Returns null if unknown. */
207
- export declare function getTokenSymbolByAddress(address: string): string | null;
208
- /**
209
- * Resolve a Token enum symbol to its on-chain address for a given chain.
210
- * If an Address (0x...) is passed, it is returned as-is.
211
- *
212
- * @throws if the symbol has no address on the given chain.
213
- */
214
- export declare function resolveToken(token: Address | Token | KnownTokenSymbol, chainId: number): Address;
215
- //# sourceMappingURL=tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAMpC,oBAAY,KAAK;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAMD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KsB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,YAAY,CAAC;AAUzD,sDAAsD;AACtD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,CAS7F;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAoBhG"}
package/dist/tokens.js DELETED
@@ -1,247 +0,0 @@
1
- // ============================================================================
2
- // Token enum — type-safe token symbols for SDK consumers
3
- // ============================================================================
4
- export var Token;
5
- (function (Token) {
6
- Token["USDC"] = "USDC";
7
- Token["USDT"] = "USDT";
8
- Token["DAI"] = "DAI";
9
- Token["WETH"] = "WETH";
10
- Token["WBTC"] = "WBTC";
11
- Token["cbBTC"] = "cbBTC";
12
- Token["cbETH"] = "cbETH";
13
- Token["wstETH"] = "wstETH";
14
- Token["rETH"] = "rETH";
15
- Token["LINK"] = "LINK";
16
- Token["UNI"] = "UNI";
17
- Token["AAVE"] = "AAVE";
18
- Token["COMP"] = "COMP";
19
- Token["CRV"] = "CRV";
20
- Token["SNX"] = "SNX";
21
- Token["ARB"] = "ARB";
22
- Token["AERO"] = "AERO";
23
- Token["GMX"] = "GMX";
24
- })(Token || (Token = {}));
25
- /**
26
- * Master token registry keyed by symbol.
27
- * At a glance you see which chains each token lives on.
28
- *
29
- * Chain IDs: 8453 = Base, 84532 = Base Sepolia, 42161 = Arbitrum One, 421614 = Arbitrum Sepolia
30
- */
31
- export const KNOWN_TOKENS = {
32
- // ── Core stables + wrapped ──────────────────────────────
33
- USDC: {
34
- symbol: 'USDC',
35
- name: 'USD Coin',
36
- decimals: 6,
37
- addresses: {
38
- 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
39
- 84532: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
40
- 42161: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
41
- 421614: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d',
42
- },
43
- },
44
- USDT: {
45
- symbol: 'USDT',
46
- name: 'Tether USD',
47
- decimals: 6,
48
- addresses: {
49
- 8453: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2',
50
- 84532: '0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673',
51
- 42161: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',
52
- },
53
- },
54
- DAI: {
55
- symbol: 'DAI',
56
- name: 'Dai Stablecoin',
57
- decimals: 18,
58
- addresses: {
59
- 8453: '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb',
60
- 84532: '0x819ffecd4e64f193e959944bcd57eedc7755e17a',
61
- 42161: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1',
62
- },
63
- },
64
- WETH: {
65
- symbol: 'WETH',
66
- name: 'Wrapped Ether',
67
- decimals: 18,
68
- addresses: {
69
- 8453: '0x4200000000000000000000000000000000000006',
70
- 84532: '0x4200000000000000000000000000000000000006',
71
- 42161: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
72
- 421614: '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73',
73
- },
74
- },
75
- WBTC: {
76
- symbol: 'WBTC',
77
- name: 'Wrapped BTC',
78
- decimals: 8,
79
- addresses: {
80
- 8453: '0x0555E30da8f98308EdB960aa94C0Db47230d2B9c',
81
- 42161: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
82
- },
83
- },
84
- cbBTC: {
85
- symbol: 'cbBTC',
86
- name: 'Coinbase Wrapped BTC',
87
- decimals: 8,
88
- addresses: {
89
- 8453: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
90
- 42161: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
91
- },
92
- },
93
- // ── Liquid staking ──────────────────────────────────────
94
- cbETH: {
95
- symbol: 'cbETH',
96
- name: 'Coinbase Staked ETH',
97
- decimals: 18,
98
- addresses: {
99
- 8453: '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22',
100
- 42161: '0x1DEBd73E752bEaF79865Fd6446b0c970EaE7732f',
101
- },
102
- },
103
- wstETH: {
104
- symbol: 'wstETH',
105
- name: 'Lido Wrapped stETH',
106
- decimals: 18,
107
- addresses: {
108
- 8453: '0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452',
109
- 42161: '0x5979D7b546E38E414F7E9822514be443A4800529',
110
- },
111
- },
112
- rETH: {
113
- symbol: 'rETH',
114
- name: 'Rocket Pool ETH',
115
- decimals: 18,
116
- addresses: {
117
- 42161: '0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8',
118
- },
119
- },
120
- // ── DeFi blue-chips ─────────────────────────────────────
121
- LINK: {
122
- symbol: 'LINK',
123
- name: 'Chainlink',
124
- decimals: 18,
125
- addresses: {
126
- 8453: '0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196',
127
- 84532: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410',
128
- 42161: '0xf97f4df75117a78c1A5a0DBb814Af92458539FB4',
129
- },
130
- },
131
- UNI: {
132
- symbol: 'UNI',
133
- name: 'Uniswap',
134
- decimals: 18,
135
- addresses: {
136
- 8453: '0xc3De830EA07524a0761646a6a4e4be0e114a3C83',
137
- 42161: '0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0',
138
- },
139
- },
140
- AAVE: {
141
- symbol: 'AAVE',
142
- name: 'Aave',
143
- decimals: 18,
144
- addresses: {
145
- 8453: '0x63706e401c06ac8513145b7687A14804d17f814b',
146
- 42161: '0xba5DdD1f9d7F570dc94a51479a000E3BCE967196',
147
- },
148
- },
149
- COMP: {
150
- symbol: 'COMP',
151
- name: 'Compound',
152
- decimals: 18,
153
- addresses: {
154
- 8453: '0x9e1028F5F1D5eDE59748FFceE5532509976840E0',
155
- 42161: '0x354A6dA3fcde098F8389cad84b0182725c6C91dE',
156
- },
157
- },
158
- CRV: {
159
- symbol: 'CRV',
160
- name: 'Curve DAO',
161
- decimals: 18,
162
- addresses: {
163
- 8453: '0x8Ee73c484A26e0A5df2Ee2a4960B789967dd0415',
164
- 42161: '0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978',
165
- },
166
- },
167
- SNX: {
168
- symbol: 'SNX',
169
- name: 'Synthetix',
170
- decimals: 18,
171
- addresses: {
172
- 8453: '0x22e6966B799c4D5B13BE962E1D117b56327FDa66',
173
- },
174
- },
175
- // ── Chain-native governance ─────────────────────────────
176
- ARB: {
177
- symbol: 'ARB',
178
- name: 'Arbitrum',
179
- decimals: 18,
180
- addresses: {
181
- 42161: '0x912CE59144191C1204E64559FE8253a0e49E6548',
182
- },
183
- },
184
- AERO: {
185
- symbol: 'AERO',
186
- name: 'Aerodrome',
187
- decimals: 18,
188
- addresses: {
189
- 8453: '0x940181a94A35A4569E4529A3CDfB74e38FD98631',
190
- },
191
- },
192
- GMX: {
193
- symbol: 'GMX',
194
- name: 'GMX',
195
- decimals: 18,
196
- addresses: {
197
- 42161: '0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a',
198
- },
199
- },
200
- };
201
- // Pre-build reverse lookup map: lowercase address → symbol
202
- const addressToSymbol = new Map();
203
- for (const token of Object.values(KNOWN_TOKENS)) {
204
- for (const addr of Object.values(token.addresses)) {
205
- addressToSymbol.set(addr.toLowerCase(), token.symbol);
206
- }
207
- }
208
- /** All known tokens available on a specific chain. */
209
- export function getKnownTokensForChain(chainId) {
210
- const result = [];
211
- for (const token of Object.values(KNOWN_TOKENS)) {
212
- const addr = token.addresses[chainId];
213
- if (addr) {
214
- result.push({ ...token, address: addr });
215
- }
216
- }
217
- return result;
218
- }
219
- /** Reverse-lookup: address → symbol (case-insensitive). Returns null if unknown. */
220
- export function getTokenSymbolByAddress(address) {
221
- return addressToSymbol.get(address.toLowerCase()) ?? null;
222
- }
223
- /**
224
- * Resolve a Token enum symbol to its on-chain address for a given chain.
225
- * If an Address (0x...) is passed, it is returned as-is.
226
- *
227
- * @throws if the symbol has no address on the given chain.
228
- */
229
- export function resolveToken(token, chainId) {
230
- // Already an address — pass through (with zero-address guard)
231
- if (typeof token === 'string' && token.startsWith('0x')) {
232
- if (token === '0x0000000000000000000000000000000000000000') {
233
- throw new Error('Token address cannot be the zero address');
234
- }
235
- return token;
236
- }
237
- const entry = KNOWN_TOKENS[token];
238
- if (!entry) {
239
- throw new Error(`Unknown token symbol: ${token}`);
240
- }
241
- const addr = entry.addresses[chainId];
242
- if (!addr) {
243
- throw new Error(`Token ${token} is not available on chain ${chainId}`);
244
- }
245
- return addr;
246
- }
247
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAE/E,MAAM,CAAN,IAAY,KAmBX;AAnBD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,sBAAa,CAAA;IACb,oBAAW,CAAA;IACX,sBAAa,CAAA;IACb,sBAAa,CAAA;IACb,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,0BAAiB,CAAA;IACjB,sBAAa,CAAA;IACb,sBAAa,CAAA;IACb,oBAAW,CAAA;IACX,sBAAa,CAAA;IACb,sBAAa,CAAA;IACb,oBAAW,CAAA;IACX,oBAAW,CAAA;IACX,oBAAW,CAAA;IACX,sBAAa,CAAA;IACb,oBAAW,CAAA;AACb,CAAC,EAnBW,KAAK,KAAL,KAAK,QAmBhB;AAcD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,2DAA2D;IAC3D,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;YACnD,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,4CAA4C;SACrD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;YACnD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;YACnD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;YACnD,KAAK,EAAE,4CAA4C;YACnD,MAAM,EAAE,4CAA4C;SACrD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,KAAK,EAAE;QACL,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IAED,2DAA2D;IAC3D,KAAK,EAAE;QACL,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,KAAK,EAAE,4CAA4C;SACpD;KACF;IAED,2DAA2D;IAC3D,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;YACnD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;YAClD,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;SACnD;KACF;IAED,2DAA2D;IAC3D,GAAG,EAAE;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,KAAK,EAAE,4CAA4C;SACpD;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,4CAA4C;SACnD;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE;YACT,KAAK,EAAE,4CAA4C;SACpD;KACF;CAC4C,CAAC;AAIhD,2DAA2D;AAC3D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,eAAe,CAAC,GAAG,CAAE,IAAe,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAI,KAAK,CAAC,SAAiD,CAAC,OAAO,CAAC,CAAC;QAC/E,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyC,EAAE,OAAe;IACrF,8DAA8D;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK,KAAK,4CAA4C,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,KAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAkC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,GAAI,KAAK,CAAC,SAAiD,CAAC,OAAO,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,8BAA8B,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}