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 +1 -10
- package/dist/operations/liquidityManager/__tests__/unwrap.test.js +64 -5
- package/dist/operations/liquidityManager/__tests__/unwrap.test.js.map +1 -1
- package/dist/operations/liquidityManager/types.d.ts +2 -0
- package/dist/operations/liquidityManager/types.d.ts.map +1 -1
- package/dist/operations/liquidityManager/unwrap.d.ts.map +1 -1
- package/dist/operations/liquidityManager/unwrap.js +30 -8
- package/dist/operations/liquidityManager/unwrap.js.map +1 -1
- package/dist/operations/relay/__tests__/relay.test.js +158 -7
- package/dist/operations/relay/__tests__/relay.test.js.map +1 -1
- package/dist/operations/relay/index.d.ts +1 -1
- package/dist/operations/relay/index.d.ts.map +1 -1
- package/dist/operations/relay/relay.d.ts +5 -5
- package/dist/operations/relay/relay.d.ts.map +1 -1
- package/dist/operations/relay/relay.js +66 -7
- package/dist/operations/relay/relay.js.map +1 -1
- package/dist/operations/relay/types.d.ts +7 -0
- package/dist/operations/relay/types.d.ts.map +1 -1
- package/package.json +16 -16
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
|
|
13
|
-
mockProvider.readContract
|
|
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
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE5E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,YAAY,GAAG;QACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;QACrB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;QACnB,yBAAyB,EAAE,EAAE,CAAC,EAAE,EAAE;KACnC,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,
|
|
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;
|
|
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;
|
|
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 {
|
|
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 =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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;
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAIhE,oBAAoB;AACpB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1B,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,8BAA8B;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACnE,0CAA0C,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YAC3E,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;aAC3C,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC/D,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,0CAA0C,EAC1C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,4BAA4B,CAC7B,CAAC;YACF,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpF,4BAA4B,CAC7B,CAAC;YACF,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,4BAA4B,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,yCAAyC;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpE,oCAAoC,CACrC,CAAC;YACF,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrE,oCAAoC,CACrC,CAAC;YACF,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,oCAAoC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3F,yBAAyB,CAC1B,CAAC;YACF,MAAM,MAAM,CACV,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CACjE,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,EAAE;gBACf,eAAe,EAAE,EAAE;gBACnB,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC;YACF,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACxE,8BAA8B,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,KAAK;gBAClB,eAAe,EAAE,IAAI;gBACrB,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC;YACF,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACxE,6DAA6D,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,4CAA4C;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,WAAW,GAAwB;YACvC,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACpC,KAAK,EAAE,QAAe;YACtB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;SACzC,CAAC;QAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC5C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,YAAY,GAAG;gBACnB,GAAG,WAAW;gBACd,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;aAC/C,CAAC;YACF,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,qCAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,YAAY,GAAG;gBACnB,GAAG,WAAW;gBACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;aAC9C,CAAC;YACF,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,oCAAoC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,YAAY,GAAG;gBACnB,GAAG,WAAW;gBACd,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;aAC/C,CAAC;YACF,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,qCAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc;aACjC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjF,uCAAuC,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC9C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;aACtD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACtD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB;aACtC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,8CAA8C,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,iCAAiC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACzD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;iBACnB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACnE,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;oBAClB,aAAa,EAAE,IAAI;iBACpB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;aAChC,CAAC,CAAC;YAEH,MAAM,MAAM,CACV,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAClE,CAAC,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;oBAClB,aAAa,EAAE,KAAK;iBACrB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,oCAAoC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,MAAM,eAAe,GAAoB;YACvC,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,QAAQ;YACrB,eAAe,EAAE,OAAO;YACxB,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACpC,cAAc,EAAE,WAAW;YAC3B,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;SACvC,CAAC;QAEF,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACvD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,4BAA4B;aAC/C,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjF,+CAA+C,CAChD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,eAAe,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;YAE7D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,iCAAiC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,CACH,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAC/B,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC,CACrE,CAAC;YACJ,CAAC,CAAC,CACL,CAAC;YAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACxF,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAChE,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAwB;gBACvC,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,KAAK,EAAE,QAAe;gBACtB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACzC,CAAC;YAEF,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjF,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YAC3D,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;iBACnB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7F,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC5D,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAoB;gBAClC,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,QAAQ;gBACrB,eAAe,EAAE,OAAO;gBACxB,eAAe,EAAE,QAAQ;gBACzB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC;YAEF,MAAM,eAAe,CAAC,mBAAmB,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC9D,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,kEAAkE;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpC,gBAAgB;YAChB,MAAM,WAAW,GAAG,QAAQ,CAAC;YAC7B,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,QAAQ;oBACtB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,OAAO;oBACnB,aAAa,EAAE,KAAK;iBACrB,CAAC;aACH,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExC,mCAAmC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK;YAC/B,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC;YACzE,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;YAErC,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;aAC9C,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,EAAE;gBACxD,OAAO,EAAE,CAAC;gBACV,WAAW;gBACX,eAAe,EAAE,SAAS;gBAC1B,eAAe,EAAE,SAAS;gBAC1B,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE1C,qCAAqC;YACrC,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE3C,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACzD,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,QAAQ;oBACtB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,OAAO;oBACnB,aAAa,EAAE,IAAI;iBACpB,CAAC;aACH,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE1F,2DAA2D;YAC3D,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,wCAAwC;YACxC,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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,
|
|
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;
|
|
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,
|
|
60
|
-
|
|
61
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"AAWA,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;GAGG;AACH,SAAS,WAAW,CAAC,OAA6B;IAChD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAC3D,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,aAAa,CAAC;IAC3C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,MAA2B,EAC3B,OAA6B;IAE7B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,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;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;KAC7B,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,EACf,OAA6B;IAE7B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gCAAgC,OAAO,EAAE,CAAC;IAEpF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpE,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,MAAuB,EACvB,OAA6B;IAE7B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE5H,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpE,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,EACvB,OAA6B;IAE7B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,oBAAoB,MAAM,CAAC,eAAe,sCAAsC,MAAM,CAAC,eAAe,GAAG,CAC1G,CAAC;IACJ,CAAC;IACD,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;QAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;KAC7B,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"}
|
|
@@ -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.
|
|
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": ">=
|
|
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": "
|
|
53
|
-
"base64-arraybuffer": "
|
|
54
|
-
"pako": "
|
|
55
|
-
"poseidon-lite": "
|
|
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": "
|
|
60
|
-
"@types/pako": "
|
|
61
|
-
"esbuild": "
|
|
62
|
-
"prettier": "
|
|
63
|
-
"tsx": "
|
|
64
|
-
"typescript": "
|
|
65
|
-
"vitest": "
|
|
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
|
}
|