@axonfi/sdk 0.3.7 → 0.4.0

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 +22 -0
  2. package/dist/abis/AxonRegistry.d.ts +294 -0
  3. package/dist/abis/AxonRegistry.d.ts.map +1 -0
  4. package/dist/abis/AxonRegistry.js +381 -0
  5. package/dist/abis/AxonRegistry.js.map +1 -0
  6. package/dist/abis/AxonVault.d.ts +1577 -0
  7. package/dist/abis/AxonVault.d.ts.map +1 -0
  8. package/dist/abis/AxonVault.js +2026 -0
  9. package/dist/abis/AxonVault.js.map +1 -0
  10. package/dist/abis/AxonVaultFactory.d.ts +207 -0
  11. package/dist/abis/AxonVaultFactory.d.ts.map +1 -0
  12. package/dist/abis/AxonVaultFactory.js +269 -0
  13. package/dist/abis/AxonVaultFactory.js.map +1 -0
  14. package/dist/amounts.d.ts +37 -0
  15. package/dist/amounts.d.ts.map +1 -0
  16. package/dist/amounts.js +72 -0
  17. package/dist/amounts.js.map +1 -0
  18. package/dist/amounts.spec.d.ts +2 -0
  19. package/dist/amounts.spec.d.ts.map +1 -0
  20. package/dist/amounts.spec.js +92 -0
  21. package/dist/amounts.spec.js.map +1 -0
  22. package/dist/client.d.ts +196 -0
  23. package/dist/client.d.ts.map +1 -0
  24. package/dist/client.js +621 -0
  25. package/dist/client.js.map +1 -0
  26. package/dist/client.spec.d.ts +2 -0
  27. package/dist/client.spec.d.ts.map +1 -0
  28. package/dist/client.spec.js +437 -0
  29. package/dist/client.spec.js.map +1 -0
  30. package/dist/constants.d.ts +110 -0
  31. package/dist/constants.d.ts.map +1 -0
  32. package/dist/constants.js +172 -0
  33. package/dist/constants.js.map +1 -0
  34. package/dist/constants.spec.d.ts +2 -0
  35. package/dist/constants.spec.d.ts.map +1 -0
  36. package/dist/constants.spec.js +95 -0
  37. package/dist/constants.spec.js.map +1 -0
  38. package/dist/eip3009.d.ts +45 -0
  39. package/dist/eip3009.d.ts.map +1 -0
  40. package/dist/eip3009.js +85 -0
  41. package/dist/eip3009.js.map +1 -0
  42. package/dist/index.d.ts +21 -3020
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +27 -3903
  45. package/dist/index.js.map +1 -1
  46. package/dist/keystore.d.ts +60 -0
  47. package/dist/keystore.d.ts.map +1 -0
  48. package/dist/keystore.js +182 -0
  49. package/dist/keystore.js.map +1 -0
  50. package/dist/keystore.spec.d.ts +2 -0
  51. package/dist/keystore.spec.d.ts.map +1 -0
  52. package/dist/keystore.spec.js +71 -0
  53. package/dist/keystore.spec.js.map +1 -0
  54. package/dist/permit2.d.ts +45 -0
  55. package/dist/permit2.d.ts.map +1 -0
  56. package/dist/permit2.js +81 -0
  57. package/dist/permit2.js.map +1 -0
  58. package/dist/signer.d.ts +35 -0
  59. package/dist/signer.d.ts.map +1 -0
  60. package/dist/signer.js +132 -0
  61. package/dist/signer.js.map +1 -0
  62. package/dist/signer.spec.d.ts +2 -0
  63. package/dist/signer.spec.d.ts.map +1 -0
  64. package/dist/signer.spec.js +94 -0
  65. package/dist/signer.spec.js.map +1 -0
  66. package/dist/tokens.d.ts +215 -0
  67. package/dist/tokens.d.ts.map +1 -0
  68. package/dist/tokens.js +247 -0
  69. package/dist/tokens.js.map +1 -0
  70. package/dist/types.d.ts +302 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +2 -0
  73. package/dist/types.js.map +1 -0
  74. package/dist/utils.d.ts +8 -0
  75. package/dist/utils.d.ts.map +1 -0
  76. package/dist/utils.js +29 -0
  77. package/dist/utils.js.map +1 -0
  78. package/dist/vault.d.ts +60 -0
  79. package/dist/vault.d.ts.map +1 -0
  80. package/dist/vault.js +267 -0
  81. package/dist/vault.js.map +1 -0
  82. package/dist/vault.spec.d.ts +2 -0
  83. package/dist/vault.spec.d.ts.map +1 -0
  84. package/dist/vault.spec.js +162 -0
  85. package/dist/vault.spec.js.map +1 -0
  86. package/dist/x402.d.ts +88 -0
  87. package/dist/x402.d.ts.map +1 -0
  88. package/dist/x402.js +124 -0
  89. package/dist/x402.js.map +1 -0
  90. package/dist/x402.spec.d.ts +2 -0
  91. package/dist/x402.spec.d.ts.map +1 -0
  92. package/dist/x402.spec.js +411 -0
  93. package/dist/x402.spec.js.map +1 -0
  94. package/package.json +1 -1
  95. package/dist/index.cjs +0 -3954
  96. package/dist/index.cjs.map +0 -1
  97. package/dist/index.d.cts +0 -3020
@@ -0,0 +1,437 @@
1
+ import { jest, describe, it, expect, beforeEach } from '@jest/globals';
2
+ // ---------------------------------------------------------------------------
3
+ // Mock modules — must be before imports that use them
4
+ // ---------------------------------------------------------------------------
5
+ const mockSignTypedData = jest.fn();
6
+ jest.unstable_mockModule('./vault.js', () => ({
7
+ createAxonWalletClient: jest.fn(() => ({
8
+ account: { address: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' },
9
+ signTypedData: mockSignTypedData,
10
+ })),
11
+ // These are still exported from vault.ts for dashboards, but not used by AxonClient
12
+ createAxonPublicClient: jest.fn(),
13
+ getChain: jest.fn(),
14
+ }));
15
+ // Dynamic imports — must come after jest.unstable_mockModule
16
+ const { AxonClient } = await import('./client.js');
17
+ const { RELAYER_API } = await import('./constants.js');
18
+ // ---------------------------------------------------------------------------
19
+ // Helpers
20
+ // ---------------------------------------------------------------------------
21
+ const VAULT_ADDR = '0x1111111111111111111111111111111111111111';
22
+ const BOT_KEY = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
23
+ const CHAIN_ID = 84532;
24
+ const RELAYER_URL = 'https://relay.axonfi.xyz';
25
+ function makeClient() {
26
+ return new AxonClient({
27
+ vaultAddress: VAULT_ADDR,
28
+ chainId: CHAIN_ID,
29
+ botPrivateKey: BOT_KEY,
30
+ });
31
+ }
32
+ const fetchMock = jest.fn();
33
+ global.fetch = fetchMock;
34
+ function mockFetchOk(body) {
35
+ fetchMock.mockResolvedValueOnce({
36
+ ok: true,
37
+ json: () => Promise.resolve(body),
38
+ text: () => Promise.resolve(JSON.stringify(body)),
39
+ });
40
+ }
41
+ function mockFetchFail(status, body) {
42
+ fetchMock.mockResolvedValueOnce({
43
+ ok: false,
44
+ status,
45
+ text: () => Promise.resolve(body),
46
+ });
47
+ }
48
+ beforeEach(() => {
49
+ jest.clearAllMocks();
50
+ mockSignTypedData.mockResolvedValue('0x' + 'ab'.repeat(65));
51
+ });
52
+ // ---------------------------------------------------------------------------
53
+ // Constructor
54
+ // ---------------------------------------------------------------------------
55
+ describe('AxonClient constructor', () => {
56
+ it('throws if botPrivateKey is missing', () => {
57
+ expect(() => new AxonClient({
58
+ vaultAddress: VAULT_ADDR,
59
+ chainId: CHAIN_ID,
60
+ })).toThrow('botPrivateKey is required');
61
+ });
62
+ it('creates client with minimal config', () => {
63
+ expect(() => makeClient()).not.toThrow();
64
+ });
65
+ });
66
+ // ---------------------------------------------------------------------------
67
+ // botAddress
68
+ // ---------------------------------------------------------------------------
69
+ describe('botAddress', () => {
70
+ it('returns the address derived from the private key', () => {
71
+ const client = makeClient();
72
+ // The mocked wallet client returns this address
73
+ expect(client.botAddress).toBe('0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266');
74
+ });
75
+ });
76
+ // ---------------------------------------------------------------------------
77
+ // pay()
78
+ // ---------------------------------------------------------------------------
79
+ describe('pay()', () => {
80
+ it('signs and posts to /v1/payments', async () => {
81
+ const client = makeClient();
82
+ const result = { requestId: 'pay-1', status: 'approved', txHash: '0xabc' };
83
+ mockFetchOk(result);
84
+ const response = await client.pay({
85
+ to: '0x000000000000000000000000000000000000dead',
86
+ token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
87
+ amount: 1000000n,
88
+ memo: 'test',
89
+ });
90
+ expect(response.status).toBe('approved');
91
+ expect(fetchMock).toHaveBeenCalledTimes(1);
92
+ const [url, opts] = fetchMock.mock.calls[0];
93
+ expect(url).toBe(`${RELAYER_URL}${RELAYER_API.PAYMENTS}`);
94
+ expect(opts.method).toBe('POST');
95
+ });
96
+ it('includes optional metadata fields', async () => {
97
+ const client = makeClient();
98
+ mockFetchOk({ requestId: 'pay-2', status: 'approved' });
99
+ await client.pay({
100
+ to: '0x000000000000000000000000000000000000dead',
101
+ token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
102
+ amount: 1000000n,
103
+ memo: 'test',
104
+ recipientLabel: 'Weather Bot',
105
+ invoiceId: 'INV-001',
106
+ metadata: { source: 'test' },
107
+ });
108
+ const body = JSON.parse(fetchMock.mock.calls[0][1].body);
109
+ expect(body.recipientLabel).toBe('Weather Bot');
110
+ expect(body.invoiceId).toBe('INV-001');
111
+ expect(body.metadata).toEqual({ source: 'test' });
112
+ });
113
+ it('throws on non-ok response', async () => {
114
+ const client = makeClient();
115
+ mockFetchFail(400, 'Bad Request');
116
+ await expect(client.pay({
117
+ to: '0x000000000000000000000000000000000000dead',
118
+ token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
119
+ amount: 1000000n,
120
+ })).rejects.toThrow('Relayer request failed [400]');
121
+ });
122
+ });
123
+ // ---------------------------------------------------------------------------
124
+ // pay() — human-friendly amounts
125
+ // ---------------------------------------------------------------------------
126
+ describe('pay() with human-friendly inputs', () => {
127
+ it('accepts token as bare string symbol and amount as number', async () => {
128
+ const client = makeClient();
129
+ mockFetchOk({ requestId: 'pay-hf1', status: 'approved' });
130
+ await client.pay({
131
+ to: '0x000000000000000000000000000000000000dead',
132
+ token: 'USDC',
133
+ amount: 5.2,
134
+ });
135
+ const body = JSON.parse(fetchMock.mock.calls[0][1].body);
136
+ // 5.2 USDC = 5_200_000 base units
137
+ expect(body.amount).toBe('5200000');
138
+ // Token should be resolved to Base Sepolia USDC address
139
+ expect(body.token).toBe('0x036CbD53842c5426634e7929541eC2318f3dCF7e');
140
+ });
141
+ it('accepts amount as string', async () => {
142
+ const client = makeClient();
143
+ mockFetchOk({ requestId: 'pay-hf2', status: 'approved' });
144
+ await client.pay({
145
+ to: '0x000000000000000000000000000000000000dead',
146
+ token: 'USDC',
147
+ amount: '10.5',
148
+ });
149
+ const body = JSON.parse(fetchMock.mock.calls[0][1].body);
150
+ expect(body.amount).toBe('10500000');
151
+ });
152
+ it('still works with bigint (backward compat)', async () => {
153
+ const client = makeClient();
154
+ mockFetchOk({ requestId: 'pay-hf3', status: 'approved' });
155
+ await client.pay({
156
+ to: '0x000000000000000000000000000000000000dead',
157
+ token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
158
+ amount: 1000000n,
159
+ });
160
+ const body = JSON.parse(fetchMock.mock.calls[0][1].body);
161
+ expect(body.amount).toBe('1000000');
162
+ });
163
+ });
164
+ // ---------------------------------------------------------------------------
165
+ // execute()
166
+ // ---------------------------------------------------------------------------
167
+ describe('execute()', () => {
168
+ it('signs and posts to /v1/execute', async () => {
169
+ const client = makeClient();
170
+ mockFetchOk({ requestId: 'exec-1', status: 'approved' });
171
+ await client.execute({
172
+ protocol: '0x000000000000000000000000000000000000beef',
173
+ callData: '0x1234',
174
+ token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
175
+ amount: 500000n,
176
+ });
177
+ const [url] = fetchMock.mock.calls[0];
178
+ expect(url).toBe(`${RELAYER_URL}${RELAYER_API.EXECUTE}`);
179
+ });
180
+ });
181
+ // ---------------------------------------------------------------------------
182
+ // swap()
183
+ // ---------------------------------------------------------------------------
184
+ describe('swap()', () => {
185
+ it('signs and posts to /v1/swap', async () => {
186
+ const client = makeClient();
187
+ mockFetchOk({ requestId: 'swap-1', status: 'approved' });
188
+ await client.swap({
189
+ toToken: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
190
+ minToAmount: 900000n,
191
+ });
192
+ const [url] = fetchMock.mock.calls[0];
193
+ expect(url).toBe(`${RELAYER_URL}${RELAYER_API.SWAP}`);
194
+ });
195
+ });
196
+ // ---------------------------------------------------------------------------
197
+ // swap() — human-friendly amounts
198
+ // ---------------------------------------------------------------------------
199
+ describe('swap() with human-friendly inputs', () => {
200
+ it('accepts toToken as symbol and minToAmount as number', async () => {
201
+ const client = makeClient();
202
+ mockFetchOk({ requestId: 'swap-hf1', status: 'approved' });
203
+ await client.swap({
204
+ toToken: 'WETH',
205
+ minToAmount: 0.001,
206
+ });
207
+ const body = JSON.parse(fetchMock.mock.calls[0][1].body);
208
+ // 0.001 WETH = 1_000_000_000_000_000 base units
209
+ expect(body.minToAmount).toBe('1000000000000000');
210
+ // Token should be resolved to Base Sepolia WETH address
211
+ expect(body.toToken).toBe('0x4200000000000000000000000000000000000006');
212
+ });
213
+ });
214
+ // ---------------------------------------------------------------------------
215
+ // getBalance() — via relayer
216
+ // ---------------------------------------------------------------------------
217
+ describe('getBalance()', () => {
218
+ it('fetches balance from relayer endpoint', async () => {
219
+ const client = makeClient();
220
+ const token = '0x036CbD53842c5426634e7929541eC2318f3dCF7e';
221
+ mockFetchOk({ balance: '5000000' });
222
+ const balance = await client.getBalance(token);
223
+ expect(balance).toBe(5000000n);
224
+ const [url] = fetchMock.mock.calls[0];
225
+ expect(url).toBe(`${RELAYER_URL}/v1/vault/${VAULT_ADDR}/balance/${token}?chainId=${CHAIN_ID}`);
226
+ });
227
+ it('throws on relayer error', async () => {
228
+ const client = makeClient();
229
+ mockFetchFail(500, 'Internal Server Error');
230
+ await expect(client.getBalance('0x036CbD53842c5426634e7929541eC2318f3dCF7e')).rejects.toThrow('Relayer request failed [500]');
231
+ });
232
+ });
233
+ // ---------------------------------------------------------------------------
234
+ // getBalances() — via relayer
235
+ // ---------------------------------------------------------------------------
236
+ describe('getBalances()', () => {
237
+ it('fetches multiple balances from relayer', async () => {
238
+ const client = makeClient();
239
+ const tokens = [
240
+ '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
241
+ '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
242
+ ];
243
+ mockFetchOk({ balances: { [tokens[0]]: '5000000', [tokens[1]]: '10000000' } });
244
+ const balances = await client.getBalances(tokens);
245
+ expect(balances[tokens[0]]).toBe(5000000n);
246
+ expect(balances[tokens[1]]).toBe(10000000n);
247
+ const [url] = fetchMock.mock.calls[0];
248
+ expect(url).toContain(`/v1/vault/${VAULT_ADDR}/balances?chainId=${CHAIN_ID}&tokens=`);
249
+ });
250
+ });
251
+ // ---------------------------------------------------------------------------
252
+ // isActive() — via relayer
253
+ // ---------------------------------------------------------------------------
254
+ describe('isActive()', () => {
255
+ it('fetches bot status from relayer', async () => {
256
+ const client = makeClient();
257
+ mockFetchOk({ isActive: true });
258
+ expect(await client.isActive()).toBe(true);
259
+ const [url] = fetchMock.mock.calls[0];
260
+ expect(url).toBe(`${RELAYER_URL}/v1/vault/${VAULT_ADDR}/bot/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266/status?chainId=${CHAIN_ID}`);
261
+ });
262
+ });
263
+ // ---------------------------------------------------------------------------
264
+ // isPaused() — via relayer
265
+ // ---------------------------------------------------------------------------
266
+ describe('isPaused()', () => {
267
+ it('fetches vault info from relayer and returns paused state', async () => {
268
+ const client = makeClient();
269
+ mockFetchOk({ owner: '0xAAA', operator: '0xBBB', paused: false, version: 1 });
270
+ expect(await client.isPaused()).toBe(false);
271
+ const [url] = fetchMock.mock.calls[0];
272
+ expect(url).toBe(`${RELAYER_URL}/v1/vault/${VAULT_ADDR}/info?chainId=${CHAIN_ID}`);
273
+ });
274
+ });
275
+ // ---------------------------------------------------------------------------
276
+ // getVaultInfo() — via relayer
277
+ // ---------------------------------------------------------------------------
278
+ describe('getVaultInfo()', () => {
279
+ it('returns combined vault info from relayer', async () => {
280
+ const client = makeClient();
281
+ const expected = {
282
+ owner: '0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
283
+ operator: '0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB',
284
+ paused: false,
285
+ version: 1,
286
+ };
287
+ mockFetchOk(expected);
288
+ const info = await client.getVaultInfo();
289
+ expect(info.owner).toBe(expected.owner);
290
+ expect(info.paused).toBe(false);
291
+ expect(info.version).toBe(1);
292
+ });
293
+ });
294
+ // ---------------------------------------------------------------------------
295
+ // canPayTo() — via relayer
296
+ // ---------------------------------------------------------------------------
297
+ describe('canPayTo()', () => {
298
+ it('checks destination via relayer', async () => {
299
+ const client = makeClient();
300
+ const dest = '0x000000000000000000000000000000000000dead';
301
+ mockFetchOk({ allowed: true });
302
+ const result = await client.canPayTo(dest);
303
+ expect(result.allowed).toBe(true);
304
+ const [url] = fetchMock.mock.calls[0];
305
+ expect(url).toBe(`${RELAYER_URL}/v1/vault/${VAULT_ADDR}/bot/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266/destination/${dest}?chainId=${CHAIN_ID}`);
306
+ });
307
+ });
308
+ // ---------------------------------------------------------------------------
309
+ // isProtocolApproved() — via relayer
310
+ // ---------------------------------------------------------------------------
311
+ describe('isProtocolApproved()', () => {
312
+ it('checks protocol via relayer', async () => {
313
+ const client = makeClient();
314
+ const protocol = '0x000000000000000000000000000000000000beef';
315
+ mockFetchOk({ approved: true });
316
+ expect(await client.isProtocolApproved(protocol)).toBe(true);
317
+ const [url] = fetchMock.mock.calls[0];
318
+ expect(url).toBe(`${RELAYER_URL}/v1/vault/${VAULT_ADDR}/protocol/${protocol}?chainId=${CHAIN_ID}`);
319
+ });
320
+ });
321
+ // ---------------------------------------------------------------------------
322
+ // poll() / pollExecute() / pollSwap()
323
+ // ---------------------------------------------------------------------------
324
+ describe('poll()', () => {
325
+ it('GETs /v1/payments/:id', async () => {
326
+ const client = makeClient();
327
+ mockFetchOk({ requestId: 'r1', status: 'approved', txHash: '0xabc' });
328
+ const result = await client.poll('r1');
329
+ expect(result.status).toBe('approved');
330
+ const [url] = fetchMock.mock.calls[0];
331
+ expect(url).toBe(`${RELAYER_URL}/v1/payments/r1`);
332
+ });
333
+ it('throws on non-ok response', async () => {
334
+ const client = makeClient();
335
+ mockFetchFail(404, 'Not Found');
336
+ await expect(client.poll('bad-id')).rejects.toThrow('Relayer request failed [404]');
337
+ });
338
+ });
339
+ describe('pollExecute()', () => {
340
+ it('GETs /v1/execute/:id', async () => {
341
+ const client = makeClient();
342
+ mockFetchOk({ requestId: 'e1', status: 'pending_review' });
343
+ const result = await client.pollExecute('e1');
344
+ expect(result.status).toBe('pending_review');
345
+ const [url] = fetchMock.mock.calls[0];
346
+ expect(url).toBe(`${RELAYER_URL}/v1/execute/e1`);
347
+ });
348
+ });
349
+ describe('pollSwap()', () => {
350
+ it('GETs /v1/swap/:id', async () => {
351
+ const client = makeClient();
352
+ mockFetchOk({ requestId: 's1', status: 'approved' });
353
+ const result = await client.pollSwap('s1');
354
+ expect(result.status).toBe('approved');
355
+ const [url] = fetchMock.mock.calls[0];
356
+ expect(url).toBe(`${RELAYER_URL}/v1/swap/s1`);
357
+ });
358
+ });
359
+ // ---------------------------------------------------------------------------
360
+ // getTosStatus()
361
+ // ---------------------------------------------------------------------------
362
+ describe('getTosStatus()', () => {
363
+ it('GETs /v1/tos/status with wallet param', async () => {
364
+ const client = makeClient();
365
+ mockFetchOk({ accepted: false, tosVersion: 'v1' });
366
+ const result = await client.getTosStatus('0xSomeWallet');
367
+ expect(result.accepted).toBe(false);
368
+ expect(result.tosVersion).toBe('v1');
369
+ const [url] = fetchMock.mock.calls[0];
370
+ expect(url).toBe(`${RELAYER_URL}/v1/tos/status?wallet=0xSomeWallet`);
371
+ });
372
+ it('returns accepted: true for wallets that have accepted', async () => {
373
+ const client = makeClient();
374
+ mockFetchOk({ accepted: true, tosVersion: 'v1' });
375
+ const result = await client.getTosStatus('0xAcceptedWallet');
376
+ expect(result.accepted).toBe(true);
377
+ });
378
+ });
379
+ // ---------------------------------------------------------------------------
380
+ // acceptTos()
381
+ // ---------------------------------------------------------------------------
382
+ describe('acceptTos()', () => {
383
+ it('fetches TOS version, signs message, and POSTs to /v1/tos/accept', async () => {
384
+ const client = makeClient();
385
+ const mockSignMessage = jest.fn();
386
+ mockSignMessage.mockResolvedValue('0xsignature');
387
+ // First call: getTosStatus
388
+ mockFetchOk({ accepted: false, tosVersion: 'v1' });
389
+ // Second call: POST accept
390
+ mockFetchOk({ accepted: true, tosVersion: 'v1' });
391
+ const result = await client.acceptTos({ signMessage: mockSignMessage }, '0xOwnerWallet');
392
+ expect(result.accepted).toBe(true);
393
+ expect(mockSignMessage).toHaveBeenCalledTimes(1);
394
+ // Verify the message format
395
+ const signArgs = mockSignMessage.mock.calls[0][0];
396
+ expect(signArgs.message).toContain('I accept the Axon Terms of Service (v1)');
397
+ expect(signArgs.message).toContain('Wallet: 0xOwnerWallet');
398
+ expect(signArgs.message).toContain('Timestamp:');
399
+ // Verify POST call
400
+ const [url, opts] = fetchMock.mock.calls[1];
401
+ expect(url).toBe(`${RELAYER_URL}/v1/tos/accept`);
402
+ expect(opts.method).toBe('POST');
403
+ const body = JSON.parse(opts.body);
404
+ expect(body.wallet).toBe('0xOwnerWallet');
405
+ expect(body.signature).toBe('0xsignature');
406
+ expect(body.tosVersion).toBe('v1');
407
+ });
408
+ it('throws on non-ok response from accept endpoint', async () => {
409
+ const client = makeClient();
410
+ const mockSignMessage = jest.fn();
411
+ mockSignMessage.mockResolvedValue('0xsignature');
412
+ // getTosStatus succeeds
413
+ mockFetchOk({ accepted: false, tosVersion: 'v1' });
414
+ // accept fails
415
+ mockFetchFail(400, 'Invalid signature');
416
+ await expect(client.acceptTos({ signMessage: mockSignMessage }, '0xOwnerWallet')).rejects.toThrow('TOS acceptance failed [400]');
417
+ });
418
+ });
419
+ // ---------------------------------------------------------------------------
420
+ // signPayment() (low-level)
421
+ // ---------------------------------------------------------------------------
422
+ describe('signPayment() (low-level)', () => {
423
+ it('returns the signature from signTypedData', async () => {
424
+ const client = makeClient();
425
+ const sig = await client.signPayment({
426
+ bot: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
427
+ to: '0x000000000000000000000000000000000000dead',
428
+ token: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
429
+ amount: 1000000n,
430
+ deadline: 99999999n,
431
+ ref: '0x0000000000000000000000000000000000000000000000000000000000000000',
432
+ });
433
+ expect(sig).toMatch(/^0x/);
434
+ expect(mockSignTypedData).toHaveBeenCalledTimes(1);
435
+ });
436
+ });
437
+ //# sourceMappingURL=client.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.spec.js","sourceRoot":"","sources":["../src/client.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import type { Address } from 'viem';
2
+ /**
3
+ * keccak256 of the PaymentIntent type string — used for manual digest
4
+ * verification. viem's signTypedData computes this internally; you don't
5
+ * need this value for signing, only for low-level verification.
6
+ */
7
+ export declare const PAYMENT_INTENT_TYPEHASH: `0x${string}`;
8
+ /** keccak256 of the ExecuteIntent type string for DeFi protocol interactions. */
9
+ export declare const EXECUTE_INTENT_TYPEHASH: `0x${string}`;
10
+ /** keccak256 of the SwapIntent type string for in-vault token rebalancing. */
11
+ export declare const SWAP_INTENT_TYPEHASH: `0x${string}`;
12
+ /** EIP-712 domain name and version for AxonVault. Matches the constructor. */
13
+ export declare const EIP712_DOMAIN_NAME: "AxonVault";
14
+ export declare const EIP712_DOMAIN_VERSION: "1";
15
+ /** Sentinel address representing native ETH in PaymentIntents and deposits. */
16
+ export declare const NATIVE_ETH: Address;
17
+ export declare const USDC: Record<number, Address>;
18
+ export declare enum Chain {
19
+ Base = 8453,
20
+ BaseSepolia = 84532,
21
+ Arbitrum = 42161,
22
+ ArbitrumSepolia = 421614
23
+ }
24
+ export declare const SUPPORTED_CHAIN_IDS: readonly [8453, 84532, 42161, 421614];
25
+ export type SupportedChainId = (typeof SUPPORTED_CHAIN_IDS)[number];
26
+ /** Human-readable chain names. */
27
+ export declare const CHAIN_NAMES: Record<number, string>;
28
+ /** Block explorer TX URL prefix per chain. */
29
+ export declare const EXPLORER_TX: Record<number, string>;
30
+ /** Block explorer address URL prefix per chain. */
31
+ export declare const EXPLORER_ADDR: Record<number, string>;
32
+ /** Default intent validity window when no deadline is specified. */
33
+ export declare const DEFAULT_DEADLINE_SECONDS = 300;
34
+ /** Window presets for SpendingLimit.windowSeconds. */
35
+ export declare const WINDOW: {
36
+ readonly ONE_HOUR: 3600n;
37
+ readonly ONE_DAY: 86400n;
38
+ readonly ONE_WEEK: 604800n;
39
+ readonly THIRTY_DAYS: 2592000n;
40
+ };
41
+ /**
42
+ * Structured error codes returned by the relayer when a payment is rejected.
43
+ * Bots should import these to programmatically handle failures.
44
+ */
45
+ export declare const PaymentErrorCode: {
46
+ /** Payment destination is the vault itself */
47
+ readonly SELF_PAYMENT: "SELF_PAYMENT";
48
+ /** Payment destination is the zero address */
49
+ readonly ZERO_ADDRESS: "ZERO_ADDRESS";
50
+ /** Payment amount is zero */
51
+ readonly ZERO_AMOUNT: "ZERO_AMOUNT";
52
+ /** Vault does not hold enough of the requested token */
53
+ readonly INSUFFICIENT_BALANCE: "INSUFFICIENT_BALANCE";
54
+ /** EIP-712 signature verification failed */
55
+ readonly INVALID_SIGNATURE: "INVALID_SIGNATURE";
56
+ /** Payment intent deadline has passed */
57
+ readonly DEADLINE_EXPIRED: "DEADLINE_EXPIRED";
58
+ /** Bot is temporarily paused by the operator */
59
+ readonly BOT_PAUSED: "BOT_PAUSED";
60
+ /** Bot address is not registered/active in the vault */
61
+ readonly BOT_NOT_ACTIVE: "BOT_NOT_ACTIVE";
62
+ /** Destination address is on the global or vault blacklist */
63
+ readonly BLACKLISTED: "BLACKLISTED";
64
+ /** Rolling-window spending limit (USD amount) exceeded */
65
+ readonly SPENDING_LIMIT_EXCEEDED: "SPENDING_LIMIT_EXCEEDED";
66
+ /** Rolling-window transaction count limit exceeded */
67
+ readonly TX_COUNT_EXCEEDED: "TX_COUNT_EXCEEDED";
68
+ /** Single transaction exceeds the bot's on-chain maxPerTxAmount */
69
+ readonly MAX_PER_TX_EXCEEDED: "MAX_PER_TX_EXCEEDED";
70
+ /** Vault-level daily aggregate spending limit exceeded */
71
+ readonly VAULT_AGGREGATE_EXCEEDED: "VAULT_AGGREGATE_EXCEEDED";
72
+ /** eth_call simulation of the on-chain transaction reverted */
73
+ readonly SIMULATION_FAILED: "SIMULATION_FAILED";
74
+ /** Routed to human review (AI scan flagged or no consensus) */
75
+ readonly PENDING_REVIEW: "PENDING_REVIEW";
76
+ /** Relayer wallet has insufficient gas to submit the transaction */
77
+ readonly RELAYER_OUT_OF_GAS: "RELAYER_OUT_OF_GAS";
78
+ /** On-chain transaction submission failed */
79
+ readonly SUBMISSION_FAILED: "SUBMISSION_FAILED";
80
+ /** Destination not in the vault/bot whitelist */
81
+ readonly DESTINATION_NOT_WHITELISTED: "DESTINATION_NOT_WHITELISTED";
82
+ /** Vault address is not a valid AxonVault or was not deployed by a known factory */
83
+ readonly INVALID_VAULT: "INVALID_VAULT";
84
+ /** Rebalance output token is not in the whitelist (on-chain or relayer default) */
85
+ readonly REBALANCE_TOKEN_NOT_ALLOWED: "REBALANCE_TOKEN_NOT_ALLOWED";
86
+ /** Rebalance input amount exceeds the bot's maxRebalanceAmount cap */
87
+ readonly MAX_REBALANCE_AMOUNT_EXCEEDED: "MAX_REBALANCE_AMOUNT_EXCEEDED";
88
+ /** Unknown or internal error */
89
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
90
+ };
91
+ export type PaymentErrorCode = (typeof PaymentErrorCode)[keyof typeof PaymentErrorCode];
92
+ export declare const RELAYER_API: {
93
+ readonly PAYMENTS: "/v1/payments";
94
+ readonly payment: (requestId: string) => string;
95
+ readonly EXECUTE: "/v1/execute";
96
+ readonly execute: (requestId: string) => string;
97
+ readonly SWAP: "/v1/swap";
98
+ readonly swap: (requestId: string) => string;
99
+ readonly vaultBalance: (vault: string, token: string, chainId: number) => string;
100
+ readonly vaultBalances: (vault: string, chainId: number) => string;
101
+ readonly vaultInfo: (vault: string, chainId: number) => string;
102
+ readonly botStatus: (vault: string, bot: string, chainId: number) => string;
103
+ readonly destinationCheck: (vault: string, bot: string, destination: string, chainId: number) => string;
104
+ readonly protocolCheck: (vault: string, protocol: string, chainId: number) => string;
105
+ readonly rebalanceTokens: (vault: string, chainId: number) => string;
106
+ readonly rebalanceTokenCheck: (vault: string, token: string, chainId: number) => string;
107
+ readonly tosStatus: (wallet: string) => string;
108
+ readonly TOS_ACCEPT: "/v1/tos/accept";
109
+ };
110
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAMpC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,MAAM,EAEhD,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,KAAK,MAAM,EAIhD,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,KAAK,MAAM,EAE7C,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,EAAG,WAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,EAAG,GAAY,CAAC;AAMlD,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,OAAsD,CAAC;AAMhF,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CASxC,CAAC;AAMF,oBAAY,KAAK;IACf,IAAI,OAAO;IACX,WAAW,QAAQ;IACnB,QAAQ,QAAQ;IAChB,eAAe,SAAS;CACzB;AAED,eAAO,MAAM,mBAAmB,uCAAwC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMpE,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU9C,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS9C,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAShD,CAAC;AAMF,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,sDAAsD;AACtD,eAAO,MAAM,MAAM;;;;;CAKT,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,8CAA8C;;IAE9C,8CAA8C;;IAE9C,6BAA6B;;IAE7B,wDAAwD;;IAExD,4CAA4C;;IAE5C,yCAAyC;;IAEzC,gDAAgD;;IAEhD,wDAAwD;;IAExD,8DAA8D;;IAE9D,0DAA0D;;IAE1D,sDAAsD;;IAEtD,mEAAmE;;IAEnE,0DAA0D;;IAE1D,+DAA+D;;IAE/D,+DAA+D;;IAE/D,oEAAoE;;IAEpE,6CAA6C;;IAE7C,iDAAiD;;IAEjD,oFAAoF;;IAEpF,mFAAmF;;IAEnF,sEAAsE;;IAEtE,gCAAgC;;CAExB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAMxF,eAAO,MAAM,WAAW;;kCAED,MAAM;;kCAEN,MAAM;;+BAET,MAAM;mCAGF,MAAM,SAAS,MAAM,WAAW,MAAM;oCAErC,MAAM,WAAW,MAAM;gCAC3B,MAAM,WAAW,MAAM;gCACvB,MAAM,OAAO,MAAM,WAAW,MAAM;uCAC7B,MAAM,OAAO,MAAM,eAAe,MAAM,WAAW,MAAM;oCAE5D,MAAM,YAAY,MAAM,WAAW,MAAM;sCAEvC,MAAM,WAAW,MAAM;0CACnB,MAAM,SAAS,MAAM,WAAW,MAAM;iCAI/C,MAAM;;CAElB,CAAC"}