zerc20-client-sdk 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -185,7 +185,7 @@ import {
185
185
 
186
186
  const fee = await estimateRelayFee("https://relay.example", 1);
187
187
 
188
- const quote = await fetchSwapQuote("https://relay.example", 1, 1_000_000n);
188
+ const quote = await fetchSwapQuote("https://relay.example", { chainId: 1, amount: 1_000_000n });
189
189
  if (quote.priceFallback) {
190
190
  console.warn("Relay is using fallback oracle prices");
191
191
  }
@@ -479,15 +479,6 @@ npm test
479
479
  npm run typecheck
480
480
  ```
481
481
 
482
- ## Tests
483
-
484
- ```bash
485
- npm test
486
- ```
487
-
488
- **Current (as of 2026-03-05): 943 passed, 2 skipped**
489
- Note: This number will drift over time; treat `npm test` output as the source of truth.
490
-
491
482
  ### Skipped Tests
492
483
 
493
484
  1. **`src/zkp/__tests__/runNovaProver.test.ts`**
@@ -9,8 +9,25 @@ describe("quoteLocalUnwrap", () => {
9
9
  beforeEach(() => {
10
10
  vi.clearAllMocks();
11
11
  });
12
- test("returns fee and expected output", async () => {
13
- mockProvider.readContract.mockResolvedValue(50n);
12
+ test("returns fee, expected output, and available liquidity (ERC-20 underlying)", async () => {
13
+ mockProvider.readContract
14
+ .mockResolvedValueOnce(50n) // quoteUnwrapFee
15
+ .mockResolvedValueOnce("0xUnderlying0000000000000000000000000000001") // underlyingToken
16
+ .mockResolvedValueOnce(5000n); // balanceOf (ERC-20 liquidity)
17
+ const result = await quoteLocalUnwrap({
18
+ provider: mockProvider,
19
+ liquidityManagerAddress: "0xManager",
20
+ amount: 1000n,
21
+ });
22
+ expect(result.fee).toBe(50n);
23
+ expect(result.expectedOut).toBe(950n);
24
+ expect(result.availableLiquidity).toBe(5000n);
25
+ });
26
+ test("returns available liquidity via getBalance for native token underlying", async () => {
27
+ mockProvider.readContract
28
+ .mockResolvedValueOnce(50n) // quoteUnwrapFee
29
+ .mockResolvedValueOnce("0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"); // underlyingToken (native)
30
+ mockProvider.getBalance.mockResolvedValueOnce(8000n);
14
31
  const result = await quoteLocalUnwrap({
15
32
  provider: mockProvider,
16
33
  liquidityManagerAddress: "0xManager",
@@ -18,9 +35,14 @@ describe("quoteLocalUnwrap", () => {
18
35
  });
19
36
  expect(result.fee).toBe(50n);
20
37
  expect(result.expectedOut).toBe(950n);
38
+ expect(result.availableLiquidity).toBe(8000n);
39
+ expect(mockProvider.getBalance).toHaveBeenCalled();
21
40
  });
22
41
  test("returns zero expected output when fee exceeds amount", async () => {
23
- mockProvider.readContract.mockResolvedValue(1500n);
42
+ mockProvider.readContract
43
+ .mockResolvedValueOnce(1500n) // quoteUnwrapFee
44
+ .mockResolvedValueOnce("0xUnderlying0000000000000000000000000000001") // underlyingToken
45
+ .mockResolvedValueOnce(2000n); // balanceOf
24
46
  const result = await quoteLocalUnwrap({
25
47
  provider: mockProvider,
26
48
  liquidityManagerAddress: "0xManager",
@@ -28,9 +50,13 @@ describe("quoteLocalUnwrap", () => {
28
50
  });
29
51
  expect(result.fee).toBe(1500n);
30
52
  expect(result.expectedOut).toBe(0n);
53
+ expect(result.availableLiquidity).toBe(2000n);
31
54
  });
32
55
  test("accepts string amount", async () => {
33
- mockProvider.readContract.mockResolvedValue(10n);
56
+ mockProvider.readContract
57
+ .mockResolvedValueOnce(10n) // quoteUnwrapFee
58
+ .mockResolvedValueOnce("0xUnderlying0000000000000000000000000000001") // underlyingToken
59
+ .mockResolvedValueOnce(500n); // balanceOf
34
60
  const result = await quoteLocalUnwrap({
35
61
  provider: mockProvider,
36
62
  liquidityManagerAddress: "0xManager",
@@ -38,9 +64,13 @@ describe("quoteLocalUnwrap", () => {
38
64
  });
39
65
  expect(result.fee).toBe(10n);
40
66
  expect(result.expectedOut).toBe(90n);
67
+ expect(result.availableLiquidity).toBe(500n);
41
68
  });
42
69
  test("accepts number amount", async () => {
43
- mockProvider.readContract.mockResolvedValue(5n);
70
+ mockProvider.readContract
71
+ .mockResolvedValueOnce(5n) // quoteUnwrapFee
72
+ .mockResolvedValueOnce("0xUnderlying0000000000000000000000000000001") // underlyingToken
73
+ .mockResolvedValueOnce(200n); // balanceOf
44
74
  const result = await quoteLocalUnwrap({
45
75
  provider: mockProvider,
46
76
  liquidityManagerAddress: "0xManager",
@@ -48,6 +78,35 @@ describe("quoteLocalUnwrap", () => {
48
78
  });
49
79
  expect(result.fee).toBe(5n);
50
80
  expect(result.expectedOut).toBe(45n);
81
+ expect(result.availableLiquidity).toBe(200n);
82
+ });
83
+ test("throws when provider.getBalance is missing for native token underlying", async () => {
84
+ const providerWithoutGetBalance = {
85
+ readContract: vi.fn(),
86
+ };
87
+ providerWithoutGetBalance.readContract
88
+ .mockResolvedValueOnce(50n) // quoteUnwrapFee
89
+ .mockResolvedValueOnce("0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"); // underlyingToken (native)
90
+ await expect(quoteLocalUnwrap({
91
+ provider: providerWithoutGetBalance,
92
+ liquidityManagerAddress: "0xManager",
93
+ amount: 1000n,
94
+ })).rejects.toThrow("provider.getBalance is required for native token liquidity queries");
95
+ });
96
+ test("reports insufficient liquidity when availableLiquidity < expectedOut", async () => {
97
+ mockProvider.readContract
98
+ .mockResolvedValueOnce(50n) // quoteUnwrapFee
99
+ .mockResolvedValueOnce("0xUnderlying0000000000000000000000000000001") // underlyingToken
100
+ .mockResolvedValueOnce(100n); // balanceOf — less than expectedOut (950)
101
+ const result = await quoteLocalUnwrap({
102
+ provider: mockProvider,
103
+ liquidityManagerAddress: "0xManager",
104
+ amount: 1000n,
105
+ });
106
+ expect(result.fee).toBe(50n);
107
+ expect(result.expectedOut).toBe(950n);
108
+ expect(result.availableLiquidity).toBe(100n);
109
+ expect(result.availableLiquidity).toBeLessThan(result.expectedOut);
51
110
  });
52
111
  });
53
112
  describe("unwrapWithLiquidityManager", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/unwrap.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unwrap.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/unwrap.test.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface LocalUnwrapQuote {
22
22
  fee: bigint;
23
23
  /** Expected output amount after subtracting `fee`. */
24
24
  expectedOut: bigint;
25
+ /** Available underlying token liquidity in the liquidity manager. */
26
+ availableLiquidity: bigint;
25
27
  }
26
28
  /**
27
29
  * Balances for the underlying token and its corresponding zERC20.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,GAAG,CAAC;IACR,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,aAAa,EAAE,aAAa,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,GAAG,CAAC;IACR,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,aAAa,EAAE,aAAa,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/unwrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAO,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,aAAa,EAAE,gBAAgB,CAAC;IAChC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,0CAA0C;IAC1C,uBAAuB,EAAE,MAAM,CAAC;IAChC,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sCAAsC;IACtC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,QAAQ,EAAE,eAAe,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgB5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CA2FhC"}
1
+ {"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/unwrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAO,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAG5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAU1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,aAAa,EAAE,gBAAgB,CAAC;IAChC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,0CAA0C;IAC1C,uBAAuB,EAAE,MAAM,CAAC;IAChC,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sCAAsC;IACtC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,QAAQ,EAAE,eAAe,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CA2FhC"}
@@ -4,7 +4,8 @@
4
4
  import LiquidityManagerArtifact from "../../assets/abi/LiquidityManager.json" with { type: "json" };
5
5
  import Zerc20Artifact from "../../assets/abi/zERC20.json" with { type: "json" };
6
6
  import { spreadFeeOverrides } from "../../utils/fees.js";
7
- import { ensureAccount, ensureBigintLike, normalizeAddress, receiptProvider, resolveReadProvider, } from "./helpers.js";
7
+ import { ERC20_ABI } from "./abi.js";
8
+ import { ensureAccount, ensureBigintLike, isNativeToken, normalizeAddress, receiptProvider, resolveReadProvider, } from "./helpers.js";
8
9
  /**
9
10
  * Quote local unwrap fee and expected output for a given amount.
10
11
  * @param params.provider - Provider to use for contract reads.
@@ -15,14 +16,35 @@ export async function quoteLocalUnwrap(params) {
15
16
  const { provider, liquidityManagerAddress, amount } = params;
16
17
  const normalizedAmount = ensureBigintLike(amount, "amount");
17
18
  const managerAddress = normalizeAddress(liquidityManagerAddress);
18
- const fee = ensureBigintLike(await provider.readContract({
19
- address: managerAddress,
20
- abi: LiquidityManagerArtifact.abi,
21
- functionName: "quoteUnwrapFee",
22
- args: [normalizedAmount],
23
- }), "fee");
19
+ const [fee, underlyingTokenAddr] = await Promise.all([
20
+ provider
21
+ .readContract({
22
+ address: managerAddress,
23
+ abi: LiquidityManagerArtifact.abi,
24
+ functionName: "quoteUnwrapFee",
25
+ args: [normalizedAmount],
26
+ })
27
+ .then((v) => ensureBigintLike(v, "fee")),
28
+ provider.readContract({
29
+ address: managerAddress,
30
+ abi: LiquidityManagerArtifact.abi,
31
+ functionName: "underlyingToken",
32
+ }),
33
+ ]);
34
+ const normalizedUnderlying = normalizeAddress(underlyingTokenAddr);
35
+ if (isNativeToken(normalizedUnderlying) && !provider.getBalance) {
36
+ throw new Error("provider.getBalance is required for native token liquidity queries");
37
+ }
38
+ const availableLiquidity = isNativeToken(normalizedUnderlying)
39
+ ? await provider.getBalance({ address: managerAddress })
40
+ : ensureBigintLike(await provider.readContract({
41
+ address: normalizedUnderlying,
42
+ abi: ERC20_ABI,
43
+ functionName: "balanceOf",
44
+ args: [managerAddress],
45
+ }), "availableLiquidity");
24
46
  const expectedOut = normalizedAmount > fee ? normalizedAmount - fee : 0n;
25
- return { fee, expectedOut };
47
+ return { fee, expectedOut, availableLiquidity };
26
48
  }
27
49
  /**
28
50
  * Unwrap zERC20 into the underlying token via the liquidity manager.
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/unwrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,wBAAwB,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpG,OAAO,cAAc,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEhF,OAAO,EAAqB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAC;AA6BtB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAItC;IACC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC7D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,gBAAgB,CAC1B,MAAM,QAAQ,CAAC,YAAY,CAAC;QAC1B,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,wBAAwB,CAAC,GAAG;QACjC,YAAY,EAAE,gBAAgB;QAC9B,IAAI,EAAE,CAAC,gBAAgB,CAAC;KACzB,CAAC,EACF,KAAK,CACN,CAAC;IACF,MAAM,WAAW,GAAG,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAyB;IAEzB,MAAM,EACJ,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,YAAY,GACb,GAAG,MAAM,CAAC;IAEX,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACzC,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IAEjG,sFAAsF;IACtF,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,gBAAgB,CAC1B,MAAM,MAAM,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,cAAc;YACvB,GAAG,EAAE,wBAAwB,CAAC,GAAG;YACjC,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,EACF,KAAK,CACN,CAAC;QACF,MAAM,WAAW,GAAG,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAChC,MAAM,MAAM,CAAC,YAAY,CAAC;QACxB,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC;KAChC,CAAC,EACF,WAAW,CACZ,CAAC;IACF,IAAI,uBAA2C,CAAC;IAEhD,IAAI,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC;YACrD,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,cAAc,CAAC,GAAG;YACvB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;YACxC,GAAG,WAAW;SACf,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,yBAAyB,CAAC;YAC9D,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QACH,uBAAuB,GAAG,eAAe,CAAC,eAAe,CAAC;IAC5D,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,OAAO,CAAQ,CAAC;IACzC,MAAM,UAAU,GACd,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,EAAE;QAC7C,CAAC,CAAC,MAAM,aAAa,CAAC,aAAa,CAAC;YAChC,OAAO,EAAE,cAAc;YACvB,GAAG,EAAE,wBAAwB,CAAC,GAAG;YACjC,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE,CAAC;YAC1C,GAAG,WAAW;SACf,CAAC;QACJ,CAAC,CAAC,MAAM,aAAa,CAAC,aAAa,CAAC;YAChC,OAAO,EAAE,cAAc;YACvB,GAAG,EAAE,wBAAwB,CAAC,GAAG;YACjC,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,GAAG,WAAW;SACf,CAAC,CAAC;IACT,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAEpF,OAAO;QACL,eAAe,EAAE,aAAa,CAAC,eAAe;QAC9C,uBAAuB;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/unwrap.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,77 @@ describe("relay", () => {
8
8
  vi.clearAllMocks();
9
9
  });
10
10
  // ---------------------------------------------------------------------------
11
+ // Input validation — relayUrl
12
+ // ---------------------------------------------------------------------------
13
+ describe("relayUrl validation", () => {
14
+ test("throws on empty relayUrl", async () => {
15
+ await expect(estimateRelayFee("", 1)).rejects.toThrow("relayUrl must not be empty");
16
+ });
17
+ test("throws on non-http(s) protocol", async () => {
18
+ await expect(estimateRelayFee("ftp://relay.test", 1)).rejects.toThrow("relayUrl must use http or https protocol");
19
+ });
20
+ test("allows relative URLs for browser same-origin proxy setups", async () => {
21
+ mockFetch.mockResolvedValueOnce({
22
+ ok: true,
23
+ json: async () => ({ relayerFee: "1000" }),
24
+ });
25
+ await expect(estimateRelayFee("/relay-api", 1)).resolves.toEqual({
26
+ relayerFee: 1000n,
27
+ });
28
+ expect(mockFetch).toHaveBeenCalledWith("/relay-api/relay/fee-estimate?chain_id=1", expect.any(Object));
29
+ });
30
+ test("validates relayUrl in all functions", async () => {
31
+ const invalidUrl = "";
32
+ await expect(submitRelayTeleport(invalidUrl, {})).rejects.toThrow("relayUrl must not be empty");
33
+ await expect(fetchSwapQuote(invalidUrl, { chainId: 1, amount: 100n })).rejects.toThrow("relayUrl must not be empty");
34
+ await expect(submitRelaySwap(invalidUrl, {})).rejects.toThrow("relayUrl must not be empty");
35
+ });
36
+ });
37
+ // ---------------------------------------------------------------------------
38
+ // Input validation — chainId and amounts
39
+ // ---------------------------------------------------------------------------
40
+ describe("chainId and amount validation", () => {
41
+ test("throws on non-positive chainId for estimateRelayFee", async () => {
42
+ await expect(estimateRelayFee("http://relay.test", 0)).rejects.toThrow("chainId must be a positive integer");
43
+ await expect(estimateRelayFee("http://relay.test", -1)).rejects.toThrow("chainId must be a positive integer");
44
+ await expect(estimateRelayFee("http://relay.test", 1.5)).rejects.toThrow("chainId must be a positive integer");
45
+ });
46
+ test("throws on non-positive amount for fetchSwapQuote", async () => {
47
+ await expect(fetchSwapQuote("http://relay.test", { chainId: 1, amount: 0n })).rejects.toThrow("amount must be positive");
48
+ await expect(fetchSwapQuote("http://relay.test", { chainId: 1, amount: -1n })).rejects.toThrow("amount must be positive");
49
+ });
50
+ test("throws on non-positive tokenAmount for submitRelaySwap", async () => {
51
+ const params = {
52
+ chainId: 1,
53
+ tokenAmount: 0n,
54
+ minNativeAmount: 0n,
55
+ maxNativeAmount: 100n,
56
+ recipient: `0x${"aa".repeat(20)}`,
57
+ owner: `0x${"bb".repeat(20)}`,
58
+ permitDeadline: 1700000000n,
59
+ permitV: 27,
60
+ permitR: `0x${"cc".repeat(32)}`,
61
+ permitS: `0x${"dd".repeat(32)}`,
62
+ };
63
+ await expect(submitRelaySwap("http://relay.test", params)).rejects.toThrow("tokenAmount must be positive");
64
+ });
65
+ test("throws when minNativeAmount exceeds maxNativeAmount", async () => {
66
+ const params = {
67
+ chainId: 1,
68
+ tokenAmount: 1000n,
69
+ minNativeAmount: 200n,
70
+ maxNativeAmount: 100n,
71
+ recipient: `0x${"aa".repeat(20)}`,
72
+ owner: `0x${"bb".repeat(20)}`,
73
+ permitDeadline: 1700000000n,
74
+ permitV: 27,
75
+ permitR: `0x${"cc".repeat(32)}`,
76
+ permitS: `0x${"dd".repeat(32)}`,
77
+ };
78
+ await expect(submitRelaySwap("http://relay.test", params)).rejects.toThrow("minNativeAmount (200) must not exceed maxNativeAmount (100)");
79
+ });
80
+ });
81
+ // ---------------------------------------------------------------------------
11
82
  // submitRelayTeleport — safe integer checks
12
83
  // ---------------------------------------------------------------------------
13
84
  describe("submitRelayTeleport", () => {
@@ -109,7 +180,7 @@ describe("relay", () => {
109
180
  relayerFee: "5000",
110
181
  }),
111
182
  });
112
- const quote = await fetchSwapQuote("http://relay.test", 1, 100n);
183
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n });
113
184
  expect(quote.nativeAmount).toBe(1000000n);
114
185
  expect(quote.feeBps).toBe(50);
115
186
  expect(quote.relayerFee).toBe(5000n);
@@ -125,7 +196,7 @@ describe("relay", () => {
125
196
  priceFallback: true,
126
197
  }),
127
198
  });
128
- const quote = await fetchSwapQuote("http://relay.test", 1, 100n);
199
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n });
129
200
  expect(quote.priceFallback).toBe(true);
130
201
  });
131
202
  test("throws on non-ok response", async () => {
@@ -134,7 +205,7 @@ describe("relay", () => {
134
205
  status: 400,
135
206
  text: async () => "bad request",
136
207
  });
137
- await expect(fetchSwapQuote("http://relay.test", 1, 100n)).rejects.toThrow("swap-quote returned 400: bad request");
208
+ await expect(fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n })).rejects.toThrow("swap-quote returned 400: bad request");
138
209
  });
139
210
  test("normalizes trailing slash in relay URL", async () => {
140
211
  mockFetch.mockResolvedValue({
@@ -146,8 +217,9 @@ describe("relay", () => {
146
217
  priceFallback: false,
147
218
  }),
148
219
  });
149
- await fetchSwapQuote("http://relay.test/", 8453, 123n);
150
- expect(mockFetch).toHaveBeenCalledWith("http://relay.test/relay/swap-quote?chain_id=8453&amount=123");
220
+ await fetchSwapQuote("http://relay.test/", { chainId: 8453, amount: 123n });
221
+ const calledUrl = mockFetch.mock.calls[0][0];
222
+ expect(calledUrl).toBe("http://relay.test/relay/swap-quote?chain_id=8453&amount=123");
151
223
  });
152
224
  });
153
225
  // ---------------------------------------------------------------------------
@@ -196,6 +268,85 @@ describe("relay", () => {
196
268
  });
197
269
  });
198
270
  // ---------------------------------------------------------------------------
271
+ // Timeout / AbortSignal handling
272
+ // ---------------------------------------------------------------------------
273
+ describe("timeout and abort", () => {
274
+ test("aborts when external signal is triggered", async () => {
275
+ const controller = new AbortController();
276
+ mockFetch.mockImplementation(() => new Promise((_resolve, reject) => {
277
+ controller.signal.addEventListener("abort", () => reject(new DOMException("The operation was aborted.", "AbortError")));
278
+ }));
279
+ const promise = estimateRelayFee("http://relay.test", 1, { signal: controller.signal });
280
+ controller.abort();
281
+ await expect(promise).rejects.toThrow("aborted");
282
+ });
283
+ test("passes signal to fetch for submitRelayTeleport", async () => {
284
+ mockFetch.mockResolvedValue({
285
+ ok: true,
286
+ json: async () => ({ txHash: "0xabc" }),
287
+ });
288
+ const validParams = {
289
+ isSingle: false,
290
+ isGlobal: true,
291
+ rootHint: 12345n,
292
+ chainId: 1n,
293
+ recipient: `0x${"aa".repeat(32)}`,
294
+ tweak: `0x${"bb".repeat(32)}`,
295
+ proof: "0x1234",
296
+ relayerFee: 1000n,
297
+ maxFee: 2000n,
298
+ deadline: 1700000000n,
299
+ signature: `0x${"cc".repeat(65)}`,
300
+ };
301
+ await submitRelayTeleport("http://relay.test", validParams, { timeoutMs: 5000 });
302
+ const callOptions = mockFetch.mock.calls[0][1];
303
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
304
+ });
305
+ test("passes signal to fetch for fetchSwapQuote", async () => {
306
+ mockFetch.mockResolvedValue({
307
+ ok: true,
308
+ json: async () => ({
309
+ nativeAmount: "1000000",
310
+ feeBps: 50,
311
+ relayerFee: "5000",
312
+ }),
313
+ });
314
+ await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n }, { timeoutMs: 5000 });
315
+ const callOptions = mockFetch.mock.calls[0][1];
316
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
317
+ });
318
+ test("passes signal to fetch for submitRelaySwap", async () => {
319
+ mockFetch.mockResolvedValue({
320
+ ok: true,
321
+ json: async () => ({ txHash: "0xdef" }),
322
+ });
323
+ const swapParams = {
324
+ chainId: 1,
325
+ tokenAmount: 1000000n,
326
+ minNativeAmount: 900000n,
327
+ maxNativeAmount: 1100000n,
328
+ recipient: `0x${"aa".repeat(20)}`,
329
+ owner: `0x${"bb".repeat(20)}`,
330
+ permitDeadline: 1700000000n,
331
+ permitV: 27,
332
+ permitR: `0x${"cc".repeat(32)}`,
333
+ permitS: `0x${"dd".repeat(32)}`,
334
+ };
335
+ await submitRelaySwap("http://relay.test", swapParams, { timeoutMs: 5000 });
336
+ const callOptions = mockFetch.mock.calls[0][1];
337
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
338
+ });
339
+ test("uses default signal when no options provided", async () => {
340
+ mockFetch.mockResolvedValue({
341
+ ok: true,
342
+ json: async () => ({ relayerFee: "0" }),
343
+ });
344
+ await estimateRelayFee("http://relay.test", 1);
345
+ const callOptions = mockFetch.mock.calls[0][1];
346
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
347
+ });
348
+ });
349
+ // ---------------------------------------------------------------------------
199
350
  // Integration-style: full swap flow (fee estimate → quote → swap)
200
351
  // ---------------------------------------------------------------------------
201
352
  describe("swap flow (mocked)", () => {
@@ -218,7 +369,7 @@ describe("relay", () => {
218
369
  priceFallback: false,
219
370
  }),
220
371
  });
221
- const quote = await fetchSwapQuote("http://relay.test", 1, tokenAmount);
372
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: tokenAmount });
222
373
  expect(quote.nativeAmount).toBe(950000n);
223
374
  expect(quote.priceFallback).toBe(false);
224
375
  // 3. Submit swap with quote values
@@ -259,7 +410,7 @@ describe("relay", () => {
259
410
  priceFallback: true,
260
411
  }),
261
412
  });
262
- const quote = await fetchSwapQuote("http://relay.test", 1, 1000000n);
413
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 1000000n });
263
414
  // Caller can check priceFallback and decide not to proceed
264
415
  expect(quote.priceFallback).toBe(true);
265
416
  // No swap submitted — only 1 fetch call
@@ -1 +1 @@
1
- {"version":3,"file":"relay.test.js","sourceRoot":"","sources":["../../../../src/operations/relay/__tests__/relay.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.test.js","sourceRoot":"","sources":["../../../../src/operations/relay/__tests__/relay.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { submitRelayTeleport, estimateRelayFee, fetchSwapQuote, submitRelaySwap } from "./relay.js";
2
- export type { RelayTeleportParams, RelayFeeEstimate, RelayResult, SwapQuoteParams, SwapQuote, RelaySwapParams, SwapResult, } from "./types.js";
2
+ export type { RelayTeleportParams, RelayFeeEstimate, RelayRequestOptions, RelayResult, SwapQuoteParams, SwapQuote, RelaySwapParams, SwapResult, } from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC"}
@@ -1,18 +1,18 @@
1
- import type { RelayFeeEstimate, RelayResult, RelaySwapParams, RelayTeleportParams, SwapQuote, SwapResult } from "./types.js";
1
+ import type { RelayFeeEstimate, RelayRequestOptions, RelayResult, RelaySwapParams, RelayTeleportParams, SwapQuote, SwapQuoteParams, SwapResult } from "./types.js";
2
2
  /**
3
3
  * Submit a teleport request to the relay node.
4
4
  */
5
- export declare function submitRelayTeleport(relayUrl: string, params: RelayTeleportParams): Promise<RelayResult>;
5
+ export declare function submitRelayTeleport(relayUrl: string, params: RelayTeleportParams, options?: RelayRequestOptions): Promise<RelayResult>;
6
6
  /**
7
7
  * Fetch a fee estimate from the relay node.
8
8
  */
9
- export declare function estimateRelayFee(relayUrl: string, chainId: number): Promise<RelayFeeEstimate>;
9
+ export declare function estimateRelayFee(relayUrl: string, chainId: number, options?: RelayRequestOptions): Promise<RelayFeeEstimate>;
10
10
  /**
11
11
  * Fetch a swap quote from the relay node.
12
12
  */
13
- export declare function fetchSwapQuote(relayUrl: string, chainId: number, amount: bigint): Promise<SwapQuote>;
13
+ export declare function fetchSwapQuote(relayUrl: string, params: SwapQuoteParams, options?: RelayRequestOptions): Promise<SwapQuote>;
14
14
  /**
15
15
  * Submit a token-to-native swap request to the relay node.
16
16
  */
17
- export declare function submitRelaySwap(relayUrl: string, params: RelaySwapParams): Promise<SwapResult>;
17
+ export declare function submitRelaySwap(relayUrl: string, params: RelaySwapParams, options?: RelayRequestOptions): Promise<SwapResult>;
18
18
  //# sourceMappingURL=relay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,WAAW,CAAC,CA2CtB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAsBpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CA6BrB"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACX,MAAM,YAAY,CAAC;AAgDpB;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC,CA6CtB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC,CA2BpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
@@ -1,7 +1,49 @@
1
+ const DEFAULT_TIMEOUT_MS = 30_000;
2
+ /**
3
+ * Build an AbortSignal that fires on timeout and, optionally, on an
4
+ * external signal — whichever comes first.
5
+ */
6
+ function buildSignal(options) {
7
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
8
+ const timeoutSignal = AbortSignal.timeout(timeoutMs);
9
+ if (!options?.signal)
10
+ return timeoutSignal;
11
+ return AbortSignal.any([timeoutSignal, options.signal]);
12
+ }
13
+ /**
14
+ * Validate that relayUrl is a non-empty string.
15
+ *
16
+ * - Absolute URLs (with a scheme) must use http or https.
17
+ * - Relative URLs (e.g. `/relay-api`, `./api`) are allowed for browser
18
+ * same-origin proxy setups. Note that relative URLs are not valid in
19
+ * Node.js `fetch`.
20
+ */
21
+ function validateRelayUrl(relayUrl) {
22
+ if (!relayUrl.trim()) {
23
+ throw new Error("relayUrl must not be empty");
24
+ }
25
+ const hasScheme = /^[a-zA-Z][a-zA-Z\d+.-]*:/.test(relayUrl);
26
+ if (!hasScheme) {
27
+ return;
28
+ }
29
+ const parsed = new URL(relayUrl);
30
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
31
+ throw new Error(`relayUrl must use http or https protocol: ${relayUrl}`);
32
+ }
33
+ }
34
+ /**
35
+ * Validate that chainId is a positive safe integer.
36
+ */
37
+ function validateChainId(chainId) {
38
+ if (!Number.isSafeInteger(chainId) || chainId <= 0) {
39
+ throw new Error(`chainId must be a positive integer: ${chainId}`);
40
+ }
41
+ }
1
42
  /**
2
43
  * Submit a teleport request to the relay node.
3
44
  */
4
- export async function submitRelayTeleport(relayUrl, params) {
45
+ export async function submitRelayTeleport(relayUrl, params, options) {
46
+ validateRelayUrl(relayUrl);
5
47
  const url = `${relayUrl.replace(/\/$/, "")}/relay/teleport`;
6
48
  const rootHint = Number(params.rootHint);
7
49
  if (!Number.isSafeInteger(rootHint)) {
@@ -32,6 +74,7 @@ export async function submitRelayTeleport(relayUrl, params) {
32
74
  method: "POST",
33
75
  headers: { "Content-Type": "application/json" },
34
76
  body: JSON.stringify(body),
77
+ signal: buildSignal(options),
35
78
  });
36
79
  if (!response.ok) {
37
80
  const text = await response.text();
@@ -43,9 +86,11 @@ export async function submitRelayTeleport(relayUrl, params) {
43
86
  /**
44
87
  * Fetch a fee estimate from the relay node.
45
88
  */
46
- export async function estimateRelayFee(relayUrl, chainId) {
89
+ export async function estimateRelayFee(relayUrl, chainId, options) {
90
+ validateRelayUrl(relayUrl);
91
+ validateChainId(chainId);
47
92
  const url = `${relayUrl.replace(/\/$/, "")}/relay/fee-estimate?chain_id=${chainId}`;
48
- const response = await fetch(url);
93
+ const response = await fetch(url, { signal: buildSignal(options) });
49
94
  if (!response.ok) {
50
95
  const text = await response.text();
51
96
  throw new Error(`Relay node fee-estimate returned ${response.status}: ${text}`);
@@ -56,9 +101,14 @@ export async function estimateRelayFee(relayUrl, chainId) {
56
101
  /**
57
102
  * Fetch a swap quote from the relay node.
58
103
  */
59
- export async function fetchSwapQuote(relayUrl, chainId, amount) {
60
- const url = `${relayUrl.replace(/\/$/, "")}/relay/swap-quote?chain_id=${chainId}&amount=${amount.toString()}`;
61
- const response = await fetch(url);
104
+ export async function fetchSwapQuote(relayUrl, params, options) {
105
+ validateRelayUrl(relayUrl);
106
+ validateChainId(params.chainId);
107
+ if (params.amount <= 0n) {
108
+ throw new Error(`amount must be positive: ${params.amount}`);
109
+ }
110
+ const url = `${relayUrl.replace(/\/$/, "")}/relay/swap-quote?chain_id=${params.chainId}&amount=${params.amount.toString()}`;
111
+ const response = await fetch(url, { signal: buildSignal(options) });
62
112
  if (!response.ok) {
63
113
  const text = await response.text();
64
114
  throw new Error(`Relay node swap-quote returned ${response.status}: ${text}`);
@@ -74,7 +124,15 @@ export async function fetchSwapQuote(relayUrl, chainId, amount) {
74
124
  /**
75
125
  * Submit a token-to-native swap request to the relay node.
76
126
  */
77
- export async function submitRelaySwap(relayUrl, params) {
127
+ export async function submitRelaySwap(relayUrl, params, options) {
128
+ validateRelayUrl(relayUrl);
129
+ validateChainId(params.chainId);
130
+ if (params.tokenAmount <= 0n) {
131
+ throw new Error(`tokenAmount must be positive: ${params.tokenAmount}`);
132
+ }
133
+ if (params.minNativeAmount > params.maxNativeAmount) {
134
+ throw new Error(`minNativeAmount (${params.minNativeAmount}) must not exceed maxNativeAmount (${params.maxNativeAmount})`);
135
+ }
78
136
  const url = `${relayUrl.replace(/\/$/, "")}/relay/swap`;
79
137
  const body = {
80
138
  chainId: params.chainId,
@@ -92,6 +150,7 @@ export async function submitRelaySwap(relayUrl, params) {
92
150
  method: "POST",
93
151
  headers: { "Content-Type": "application/json" },
94
152
  body: JSON.stringify(body),
153
+ signal: buildSignal(options),
95
154
  });
96
155
  if (!response.ok) {
97
156
  const text = await response.text();
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,MAA2B;IAE3B,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;QACzC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QACjC,QAAQ;QACR,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;IAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gCAAgC,OAAO,EAAE,CAAC;IAEpF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA2B,CAAC;IACjE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,OAAe,EACf,MAAc;IAEd,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,OAAO,WAAW,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE9G,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKpC,CAAC;IACF,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK;KAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,MAAuB;IAEvB,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC;IAExD,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE;QAC1C,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE;QAClD,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE;QAClD,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;QAChD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;IAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"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"}
@@ -60,4 +60,11 @@ export interface RelaySwapParams {
60
60
  export interface SwapResult {
61
61
  txHash: string;
62
62
  }
63
+ /** Options for relay HTTP requests. */
64
+ export interface RelayRequestOptions {
65
+ /** Request timeout in milliseconds. Defaults to 30 000 ms. */
66
+ timeoutMs?: number;
67
+ /** An external AbortSignal to cancel the request. */
68
+ signal?: AbortSignal;
69
+ }
63
70
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,EAAE,GAAG,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,EAAE,GAAG,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zerc20-client-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "Client SDK for interacting with ZERC20 rollup services from browser or node environments.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -42,26 +42,26 @@
42
42
  "access": "public"
43
43
  },
44
44
  "engines": {
45
- "node": ">=18"
45
+ "node": ">=22.12.0"
46
46
  },
47
47
  "dependencies": {
48
- "@dfinity/agent": "3.4.1",
49
- "@dfinity/candid": "3.4.1",
50
- "@dfinity/principal": "3.4.1",
48
+ "@dfinity/agent": "~3.4.1",
49
+ "@dfinity/candid": "~3.4.1",
50
+ "@dfinity/principal": "~3.4.1",
51
51
  "@dfinity/vetkeys": "0.4.0",
52
- "@noble/curves": "^2.0.1",
53
- "base64-arraybuffer": "^1.0.2",
54
- "pako": "^2.1.0",
55
- "poseidon-lite": "^0.3.0",
52
+ "@noble/curves": "2.0.1",
53
+ "base64-arraybuffer": "1.0.2",
54
+ "pako": "2.1.0",
55
+ "poseidon-lite": "0.3.0",
56
56
  "viem": "^2.38.6"
57
57
  },
58
58
  "devDependencies": {
59
- "@types/node": "^24.10.0",
60
- "@types/pako": "^2.0.4",
61
- "esbuild": "^0.27.3",
62
- "prettier": "^3.4.2",
63
- "tsx": "^4.20.6",
64
- "typescript": "^5.6.2",
65
- "vitest": "^4.0.8"
59
+ "@types/node": "25.5.2",
60
+ "@types/pako": "2.0.4",
61
+ "esbuild": "0.28.0",
62
+ "prettier": "3.8.1",
63
+ "tsx": "4.21.0",
64
+ "typescript": "6.0.2",
65
+ "vitest": "4.1.3"
66
66
  }
67
67
  }