zerc20-client-sdk 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/dist/assets/abi/Verifier.json +2093 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.d.ts +2 -0
- package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.d.ts.map +1 -0
- package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.js +157 -0
- package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.js.map +1 -0
- package/dist/operations/liquidityManager/adaptorWithdraw.d.ts +82 -0
- package/dist/operations/liquidityManager/adaptorWithdraw.d.ts.map +1 -0
- package/dist/operations/liquidityManager/adaptorWithdraw.js +107 -0
- package/dist/operations/liquidityManager/adaptorWithdraw.js.map +1 -0
- package/dist/operations/liquidityManager/index.d.ts +3 -1
- package/dist/operations/liquidityManager/index.d.ts.map +1 -1
- package/dist/operations/liquidityManager/index.js +2 -1
- package/dist/operations/liquidityManager/index.js.map +1 -1
- package/dist/operations/receive/__tests__/cache.test.js +33 -0
- package/dist/operations/receive/__tests__/cache.test.js.map +1 -1
- package/dist/operations/receive/__tests__/redeemTransaction.test.js +38 -0
- package/dist/operations/receive/__tests__/redeemTransaction.test.js.map +1 -1
- package/dist/operations/receive/cache.d.ts +1 -1
- package/dist/operations/receive/cache.d.ts.map +1 -1
- package/dist/operations/receive/cache.js +6 -5
- package/dist/operations/receive/cache.js.map +1 -1
- package/dist/operations/receive/index.d.ts +1 -1
- package/dist/operations/receive/index.d.ts.map +1 -1
- package/dist/operations/receive/index.js.map +1 -1
- package/dist/operations/receive/redeemTransaction.d.ts +2 -1
- package/dist/operations/receive/redeemTransaction.d.ts.map +1 -1
- package/dist/operations/receive/redeemTransaction.js +11 -5
- package/dist/operations/receive/redeemTransaction.js.map +1 -1
- package/dist/operations/receive/types.d.ts +25 -2
- package/dist/operations/receive/types.d.ts.map +1 -1
- package/dist/operations/relay/__tests__/relay.test.d.ts +2 -0
- package/dist/operations/relay/__tests__/relay.test.d.ts.map +1 -0
- package/dist/operations/relay/__tests__/relay.test.js +270 -0
- package/dist/operations/relay/__tests__/relay.test.js.map +1 -0
- package/dist/operations/relay/index.d.ts +3 -0
- package/dist/operations/relay/index.d.ts.map +1 -0
- package/dist/operations/relay/index.js +2 -0
- package/dist/operations/relay/index.js.map +1 -0
- package/dist/operations/relay/relay.d.ts +18 -0
- package/dist/operations/relay/relay.d.ts.map +1 -0
- package/dist/operations/relay/relay.js +103 -0
- package/dist/operations/relay/relay.js.map +1 -0
- package/dist/operations/relay/types.d.ts +63 -0
- package/dist/operations/relay/types.d.ts.map +1 -0
- package/dist/operations/relay/types.js +2 -0
- package/dist/operations/relay/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAa3D,MAAM,WAAW,2BAA2B;IAC1C,8DAA8D;IAC9D,GAAG,EAAE,QAAQ,CAAC;IACd,6DAA6D;IAC7D,KAAK,EAAE,UAAU,CAAC;IAClB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAa3D,MAAM,WAAW,2BAA2B;IAC1C,8DAA8D;IAC9D,GAAG,EAAE,QAAQ,CAAC;IACd,6DAA6D;IAC7D,KAAK,EAAE,UAAU,CAAC;IAClB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6C;IAEnE;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwBxF;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;CAGzF"}
|
|
@@ -5,8 +5,9 @@ import { fetchAggregationTreeState } from "../../wasm/index.js";
|
|
|
5
5
|
// ============================================================================
|
|
6
6
|
// Internal Utilities
|
|
7
7
|
// ============================================================================
|
|
8
|
-
function getCacheKey(hubAddress, chainId) {
|
|
9
|
-
|
|
8
|
+
function getCacheKey(hubAddress, chainId, eventBlockSpan) {
|
|
9
|
+
const base = `${hubAddress.toLowerCase()}-${chainId}`;
|
|
10
|
+
return eventBlockSpan != null ? `${base}-${eventBlockSpan}` : base;
|
|
10
11
|
}
|
|
11
12
|
// ============================================================================
|
|
12
13
|
// AggregationStateCacheManager Class
|
|
@@ -22,7 +23,7 @@ export class AggregationStateCacheManager {
|
|
|
22
23
|
*/
|
|
23
24
|
async fetchWithCache(params) {
|
|
24
25
|
const cacheTtl = params.cacheTtlMs;
|
|
25
|
-
const cacheKey = getCacheKey(params.hub.hubAddress, params.token.chainId);
|
|
26
|
+
const cacheKey = getCacheKey(params.hub.hubAddress, params.token.chainId, params.eventBlockSpan);
|
|
26
27
|
const cached = this.cache.get(cacheKey);
|
|
27
28
|
const now = Date.now();
|
|
28
29
|
if (cacheTtl != null && cached && now - cached.timestamp < cacheTtl) {
|
|
@@ -68,8 +69,8 @@ export class AggregationStateCacheManager {
|
|
|
68
69
|
/**
|
|
69
70
|
* Return true if the cache contains an entry for the given hub and chain.
|
|
70
71
|
*/
|
|
71
|
-
hasEntry(hubAddress, chainId) {
|
|
72
|
-
return this.cache.has(getCacheKey(hubAddress, chainId));
|
|
72
|
+
hasEntry(hubAddress, chainId, eventBlockSpan) {
|
|
73
|
+
return this.cache.has(getCacheKey(hubAddress, chainId, eventBlockSpan));
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
//# sourceMappingURL=cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/operations/receive/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AA0BhE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/operations/receive/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AA0BhE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAS,WAAW,CAClB,UAAkB,EAClB,OAAe,EACf,cAAgC;IAEhC,MAAM,IAAI,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;IACtD,OAAO,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,4BAA4B;IACtB,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEnE;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,MAAmC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,MAAM,QAAQ,GAAG,WAAW,CAC1B,MAAM,CAAC,GAAG,CAAC,UAAU,EACrB,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,MAAM,CAAC,cAAc,CACtB,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;YACpE,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,KAAK;YACL,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;SAC9B,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAY;QAChB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,UAAkB,EAAE,OAAe,EAAE,cAAgC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Receive operations for scanning announcements and collecting redeem context.
|
|
3
3
|
*/
|
|
4
|
-
export type { ReadableVerifierContract, LegacyVerifierContract, VerifierContractLike, RedeemChainContext, RedeemContext, RedeemContextParams, AnnouncementStatus, AnnouncementStatusParams, OnChainGeneralRecipient, RedeemTransaction, PrepareRedeemTransactionParams, } from "./types.js";
|
|
4
|
+
export type { ReadableVerifierContract, LegacyVerifierContract, VerifierContractLike, RedeemChainContext, RedeemContext, RedeemContextParams, AnnouncementStatus, AnnouncementStatusParams, OnChainGeneralRecipient, RelayerFeeAuthorization, RedeemTransaction, PrepareRedeemTransactionParams, } from "./types.js";
|
|
5
5
|
export type { FetchAggregationStateParams } from "./cache.js";
|
|
6
6
|
export { AggregationStateCacheManager } from "./cache.js";
|
|
7
7
|
export { createVerifierReader } from "./helpers.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAG/F,YAAY,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAG/F,YAAY,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/operations/receive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/operations/receive/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1D,UAAU;AACV,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAqB;AACrB,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAI/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrepareRedeemTransactionParams, RedeemContext, RedeemTransaction } from "./types.js";
|
|
1
|
+
import type { PrepareRedeemTransactionParams, RedeemContext, RelayerFeeAuthorization, RedeemTransaction } from "./types.js";
|
|
2
2
|
import type { BurnArtifacts } from "../../types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Prepare a redeem transaction from a collected redeem context.
|
|
@@ -26,5 +26,6 @@ export declare function buildBatchRedeemTransaction(params: {
|
|
|
26
26
|
redeemContext: RedeemContext;
|
|
27
27
|
burn: BurnArtifacts;
|
|
28
28
|
deciderProof: Uint8Array;
|
|
29
|
+
relayerFeeAuth?: RelayerFeeAuthorization;
|
|
29
30
|
}): RedeemTransaction;
|
|
30
31
|
//# sourceMappingURL=redeemTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redeemTransaction.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/redeemTransaction.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,8BAA8B,EAC9B,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"redeemTransaction.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/redeemTransaction.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,8BAA8B,EAC9B,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAiCpD;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CA0D5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,UAAU,CAAC;IACzB,cAAc,CAAC,EAAE,uBAAuB,CAAC;CAC1C,GAAG,iBAAiB,CAmBpB"}
|
|
@@ -23,6 +23,12 @@ function buildOnChainGeneralRecipient(burn) {
|
|
|
23
23
|
tweak: burn.generalRecipient.tweak,
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
function buildRedeemArgs(latestAggSeq, gr, proof, relayerFeeAuth) {
|
|
27
|
+
if (relayerFeeAuth) {
|
|
28
|
+
return [true, latestAggSeq, gr, proof, relayerFeeAuth];
|
|
29
|
+
}
|
|
30
|
+
return [true, latestAggSeq, gr, proof];
|
|
31
|
+
}
|
|
26
32
|
/**
|
|
27
33
|
* Prepare a redeem transaction from a collected redeem context.
|
|
28
34
|
*
|
|
@@ -36,7 +42,7 @@ function buildOnChainGeneralRecipient(burn) {
|
|
|
36
42
|
* @throws {Error} If batch redeem is needed but no decider client is provided.
|
|
37
43
|
*/
|
|
38
44
|
export async function prepareRedeemTransaction(params) {
|
|
39
|
-
const { redeemContext, burn, teleportProofClient, decider } = params;
|
|
45
|
+
const { redeemContext, burn, teleportProofClient, decider, relayerFeeAuth } = params;
|
|
40
46
|
const { eligible } = redeemContext.events;
|
|
41
47
|
if (eligible.length === 0) {
|
|
42
48
|
throw new Error("No eligible events to redeem");
|
|
@@ -61,7 +67,7 @@ export async function prepareRedeemTransaction(params) {
|
|
|
61
67
|
address,
|
|
62
68
|
abi,
|
|
63
69
|
functionName: "singleTeleport",
|
|
64
|
-
args:
|
|
70
|
+
args: buildRedeemArgs(redeemContext.aggregationState.latestAggSeq, gr, singleProof.proofCalldata, relayerFeeAuth),
|
|
65
71
|
};
|
|
66
72
|
}
|
|
67
73
|
// Batch redeem
|
|
@@ -76,7 +82,7 @@ export async function prepareRedeemTransaction(params) {
|
|
|
76
82
|
proofs: redeemContext.globalProofs,
|
|
77
83
|
});
|
|
78
84
|
const deciderProof = await teleportProofClient.requestDeciderProof(decider, novaResult.ivcProof);
|
|
79
|
-
return buildBatchRedeemTransaction({ redeemContext, burn, deciderProof });
|
|
85
|
+
return buildBatchRedeemTransaction({ redeemContext, burn, deciderProof, relayerFeeAuth });
|
|
80
86
|
}
|
|
81
87
|
/**
|
|
82
88
|
* Build a batch redeem transaction from pre-computed proof bytes.
|
|
@@ -88,7 +94,7 @@ export async function prepareRedeemTransaction(params) {
|
|
|
88
94
|
* sequence themselves (e.g. to update progress UI between proof steps).
|
|
89
95
|
*/
|
|
90
96
|
export function buildBatchRedeemTransaction(params) {
|
|
91
|
-
const { redeemContext, burn, deciderProof } = params;
|
|
97
|
+
const { redeemContext, burn, deciderProof, relayerFeeAuth } = params;
|
|
92
98
|
const gr = buildOnChainGeneralRecipient(burn);
|
|
93
99
|
const address = normalizeHex(redeemContext.token.verifierAddress);
|
|
94
100
|
const abi = VerifierArtifact.abi;
|
|
@@ -98,7 +104,7 @@ export function buildBatchRedeemTransaction(params) {
|
|
|
98
104
|
address,
|
|
99
105
|
abi,
|
|
100
106
|
functionName: "teleport",
|
|
101
|
-
args:
|
|
107
|
+
args: buildRedeemArgs(redeemContext.aggregationState.latestAggSeq, gr, deciderProofHex, relayerFeeAuth),
|
|
102
108
|
};
|
|
103
109
|
}
|
|
104
110
|
//# sourceMappingURL=redeemTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redeemTransaction.js","sourceRoot":"","sources":["../../../src/operations/receive/redeemTransaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"redeemTransaction.js","sourceRoot":"","sources":["../../../src/operations/receive/redeemTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,23 @@ export interface OnChainGeneralRecipient {
|
|
|
154
154
|
/** Recipient tweak (bytes32). */
|
|
155
155
|
tweak: string;
|
|
156
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Relayer fee authorization passed to the Verifier relay-redeem overloads.
|
|
159
|
+
*/
|
|
160
|
+
export interface RelayerFeeAuthorization {
|
|
161
|
+
/** Fee that the relayer may keep from the redeemed value. */
|
|
162
|
+
relayerFee: bigint;
|
|
163
|
+
/** User-specified upper bound for the relayer fee. */
|
|
164
|
+
maxFee: bigint;
|
|
165
|
+
/** Expiration timestamp for the authorization. */
|
|
166
|
+
deadline: bigint;
|
|
167
|
+
/** EIP-712 signature authorizing the relayer fee. */
|
|
168
|
+
signature: string;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Contract call arguments for the Verifier redeem methods.
|
|
172
|
+
*/
|
|
173
|
+
export type RedeemTransactionArgs = readonly [boolean, bigint, OnChainGeneralRecipient, string] | readonly [boolean, bigint, OnChainGeneralRecipient, string, RelayerFeeAuthorization];
|
|
157
174
|
/**
|
|
158
175
|
* Prepared redeem transaction data ready to be submitted via `writeContract`.
|
|
159
176
|
*
|
|
@@ -170,8 +187,12 @@ export interface RedeemTransaction {
|
|
|
170
187
|
abi: typeof import("../../onchain/contracts.js").VerifierArtifact.abi;
|
|
171
188
|
/** Contract function to call. */
|
|
172
189
|
functionName: "singleTeleport" | "teleport";
|
|
173
|
-
/**
|
|
174
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Contract call arguments:
|
|
192
|
+
* - standard redeem: `[isValid, latestAggSeq, generalRecipient, proof]`
|
|
193
|
+
* - relayer redeem: `[isValid, latestAggSeq, generalRecipient, proof, feeAuth]`
|
|
194
|
+
*/
|
|
195
|
+
args: RedeemTransactionArgs;
|
|
175
196
|
}
|
|
176
197
|
/**
|
|
177
198
|
* Parameters for {@link prepareRedeemTransaction}.
|
|
@@ -185,5 +206,7 @@ export interface PrepareRedeemTransactionParams {
|
|
|
185
206
|
teleportProofClient: TeleportProofClient;
|
|
186
207
|
/** Decider client (required for batch redeems). */
|
|
187
208
|
decider?: HttpDeciderClient;
|
|
209
|
+
/** Optional relayer fee authorization for relay redeem. */
|
|
210
|
+
relayerFeeAuth?: RelayerFeeAuthorization;
|
|
188
211
|
}
|
|
189
212
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/receive/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.test.d.ts","sourceRoot":"","sources":["../../../../src/operations/relay/__tests__/relay.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
2
|
+
// Mock global fetch
|
|
3
|
+
const mockFetch = vi.fn();
|
|
4
|
+
vi.stubGlobal("fetch", mockFetch);
|
|
5
|
+
import { estimateRelayFee, fetchSwapQuote, submitRelaySwap, submitRelayTeleport, } from "../relay.js";
|
|
6
|
+
describe("relay", () => {
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
vi.clearAllMocks();
|
|
9
|
+
});
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// submitRelayTeleport — safe integer checks
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
describe("submitRelayTeleport", () => {
|
|
14
|
+
const validParams = {
|
|
15
|
+
isSingle: false,
|
|
16
|
+
isGlobal: true,
|
|
17
|
+
rootHint: 12345n,
|
|
18
|
+
chainId: 1n,
|
|
19
|
+
recipient: `0x${"aa".repeat(32)}`,
|
|
20
|
+
tweak: `0x${"bb".repeat(32)}`,
|
|
21
|
+
proof: "0x1234",
|
|
22
|
+
relayerFee: 1000n,
|
|
23
|
+
maxFee: 2000n,
|
|
24
|
+
deadline: 1700000000n,
|
|
25
|
+
signature: `0x${"cc".repeat(65)}`,
|
|
26
|
+
};
|
|
27
|
+
test("succeeds with valid params", async () => {
|
|
28
|
+
mockFetch.mockResolvedValue({
|
|
29
|
+
ok: true,
|
|
30
|
+
json: async () => ({ txHash: "0xabc" }),
|
|
31
|
+
});
|
|
32
|
+
const result = await submitRelayTeleport("http://relay.test", validParams);
|
|
33
|
+
expect(result.txHash).toBe("0xabc");
|
|
34
|
+
const callBody = JSON.parse(mockFetch.mock.calls[0][1].body);
|
|
35
|
+
expect(callBody.root_hint).toBe(12345);
|
|
36
|
+
expect(callBody.chain_id).toBe(1);
|
|
37
|
+
expect(callBody.deadline).toBe(1700000000);
|
|
38
|
+
});
|
|
39
|
+
test("throws when rootHint exceeds safe integer range", async () => {
|
|
40
|
+
const unsafeParams = {
|
|
41
|
+
...validParams,
|
|
42
|
+
rootHint: BigInt(Number.MAX_SAFE_INTEGER) + 1n,
|
|
43
|
+
};
|
|
44
|
+
await expect(submitRelayTeleport("http://relay.test", unsafeParams)).rejects.toThrow("rootHint exceeds safe integer range");
|
|
45
|
+
});
|
|
46
|
+
test("throws when chainId exceeds safe integer range", async () => {
|
|
47
|
+
const unsafeParams = {
|
|
48
|
+
...validParams,
|
|
49
|
+
chainId: BigInt(Number.MAX_SAFE_INTEGER) + 1n,
|
|
50
|
+
};
|
|
51
|
+
await expect(submitRelayTeleport("http://relay.test", unsafeParams)).rejects.toThrow("chainId exceeds safe integer range");
|
|
52
|
+
});
|
|
53
|
+
test("throws when deadline exceeds safe integer range", async () => {
|
|
54
|
+
const unsafeParams = {
|
|
55
|
+
...validParams,
|
|
56
|
+
deadline: BigInt(Number.MAX_SAFE_INTEGER) + 1n,
|
|
57
|
+
};
|
|
58
|
+
await expect(submitRelayTeleport("http://relay.test", unsafeParams)).rejects.toThrow("deadline exceeds safe integer range");
|
|
59
|
+
});
|
|
60
|
+
test("throws on non-ok response", async () => {
|
|
61
|
+
mockFetch.mockResolvedValue({
|
|
62
|
+
ok: false,
|
|
63
|
+
status: 500,
|
|
64
|
+
text: async () => "server error",
|
|
65
|
+
});
|
|
66
|
+
await expect(submitRelayTeleport("http://relay.test", validParams)).rejects.toThrow("Relay node returned 500: server error");
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// estimateRelayFee
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
describe("estimateRelayFee", () => {
|
|
73
|
+
test("returns relayerFee as bigint", async () => {
|
|
74
|
+
mockFetch.mockResolvedValue({
|
|
75
|
+
ok: true,
|
|
76
|
+
json: async () => ({ relayerFee: "123456789012345" }),
|
|
77
|
+
});
|
|
78
|
+
const result = await estimateRelayFee("http://relay.test", 1);
|
|
79
|
+
expect(result.relayerFee).toBe(123456789012345n);
|
|
80
|
+
});
|
|
81
|
+
test("constructs correct URL with chain_id", async () => {
|
|
82
|
+
mockFetch.mockResolvedValue({
|
|
83
|
+
ok: true,
|
|
84
|
+
json: async () => ({ relayerFee: "0" }),
|
|
85
|
+
});
|
|
86
|
+
await estimateRelayFee("http://relay.test/", 42161);
|
|
87
|
+
const calledUrl = mockFetch.mock.calls[0][0];
|
|
88
|
+
expect(calledUrl).toBe("http://relay.test/relay/fee-estimate?chain_id=42161");
|
|
89
|
+
});
|
|
90
|
+
test("throws on non-ok response", async () => {
|
|
91
|
+
mockFetch.mockResolvedValue({
|
|
92
|
+
ok: false,
|
|
93
|
+
status: 400,
|
|
94
|
+
text: async () => "unsupported chain",
|
|
95
|
+
});
|
|
96
|
+
await expect(estimateRelayFee("http://relay.test", 999)).rejects.toThrow("fee-estimate returned 400: unsupported chain");
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
// fetchSwapQuote — priceFallback
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
describe("fetchSwapQuote", () => {
|
|
103
|
+
test("returns priceFallback: false by default", async () => {
|
|
104
|
+
mockFetch.mockResolvedValue({
|
|
105
|
+
ok: true,
|
|
106
|
+
json: async () => ({
|
|
107
|
+
nativeAmount: "1000000",
|
|
108
|
+
feeBps: 50,
|
|
109
|
+
relayerFee: "5000",
|
|
110
|
+
}),
|
|
111
|
+
});
|
|
112
|
+
const quote = await fetchSwapQuote("http://relay.test", 1, 100n);
|
|
113
|
+
expect(quote.nativeAmount).toBe(1000000n);
|
|
114
|
+
expect(quote.feeBps).toBe(50);
|
|
115
|
+
expect(quote.relayerFee).toBe(5000n);
|
|
116
|
+
expect(quote.priceFallback).toBe(false);
|
|
117
|
+
});
|
|
118
|
+
test("returns priceFallback: true when relay reports it", async () => {
|
|
119
|
+
mockFetch.mockResolvedValue({
|
|
120
|
+
ok: true,
|
|
121
|
+
json: async () => ({
|
|
122
|
+
nativeAmount: "1000000",
|
|
123
|
+
feeBps: 50,
|
|
124
|
+
relayerFee: "5000",
|
|
125
|
+
priceFallback: true,
|
|
126
|
+
}),
|
|
127
|
+
});
|
|
128
|
+
const quote = await fetchSwapQuote("http://relay.test", 1, 100n);
|
|
129
|
+
expect(quote.priceFallback).toBe(true);
|
|
130
|
+
});
|
|
131
|
+
test("throws on non-ok response", async () => {
|
|
132
|
+
mockFetch.mockResolvedValue({
|
|
133
|
+
ok: false,
|
|
134
|
+
status: 400,
|
|
135
|
+
text: async () => "bad request",
|
|
136
|
+
});
|
|
137
|
+
await expect(fetchSwapQuote("http://relay.test", 1, 100n)).rejects.toThrow("swap-quote returned 400: bad request");
|
|
138
|
+
});
|
|
139
|
+
test("normalizes trailing slash in relay URL", async () => {
|
|
140
|
+
mockFetch.mockResolvedValue({
|
|
141
|
+
ok: true,
|
|
142
|
+
json: async () => ({
|
|
143
|
+
nativeAmount: "1000000",
|
|
144
|
+
feeBps: 50,
|
|
145
|
+
relayerFee: "5000",
|
|
146
|
+
priceFallback: false,
|
|
147
|
+
}),
|
|
148
|
+
});
|
|
149
|
+
await fetchSwapQuote("http://relay.test/", 8453, 123n);
|
|
150
|
+
expect(mockFetch).toHaveBeenCalledWith("http://relay.test/relay/swap-quote?chain_id=8453&amount=123");
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
// ---------------------------------------------------------------------------
|
|
154
|
+
// submitRelaySwap — maxNativeAmount
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
describe("submitRelaySwap", () => {
|
|
157
|
+
const validSwapParams = {
|
|
158
|
+
chainId: 1,
|
|
159
|
+
tokenAmount: 1000000n,
|
|
160
|
+
minNativeAmount: 900000n,
|
|
161
|
+
maxNativeAmount: 1100000n,
|
|
162
|
+
recipient: `0x${"aa".repeat(20)}`,
|
|
163
|
+
owner: `0x${"bb".repeat(20)}`,
|
|
164
|
+
permitDeadline: 1700000000n,
|
|
165
|
+
permitV: 27,
|
|
166
|
+
permitR: `0x${"cc".repeat(32)}`,
|
|
167
|
+
permitS: `0x${"dd".repeat(32)}`,
|
|
168
|
+
};
|
|
169
|
+
test("sends maxNativeAmount in request body", async () => {
|
|
170
|
+
mockFetch.mockResolvedValue({
|
|
171
|
+
ok: true,
|
|
172
|
+
json: async () => ({ txHash: "0xdef" }),
|
|
173
|
+
});
|
|
174
|
+
const result = await submitRelaySwap("http://relay.test", validSwapParams);
|
|
175
|
+
expect(result.txHash).toBe("0xdef");
|
|
176
|
+
const callBody = JSON.parse(mockFetch.mock.calls[0][1].body);
|
|
177
|
+
expect(callBody.maxNativeAmount).toBe("1100000");
|
|
178
|
+
expect(callBody.minNativeAmount).toBe("900000");
|
|
179
|
+
expect(callBody.tokenAmount).toBe("1000000");
|
|
180
|
+
});
|
|
181
|
+
test("throws on non-ok response", async () => {
|
|
182
|
+
mockFetch.mockResolvedValue({
|
|
183
|
+
ok: false,
|
|
184
|
+
status: 400,
|
|
185
|
+
text: async () => "max_native_amount exceeded",
|
|
186
|
+
});
|
|
187
|
+
await expect(submitRelaySwap("http://relay.test", validSwapParams)).rejects.toThrow("swap returned 400: max_native_amount exceeded");
|
|
188
|
+
});
|
|
189
|
+
test("normalizes trailing slash in relay URL", async () => {
|
|
190
|
+
mockFetch.mockResolvedValue({
|
|
191
|
+
ok: true,
|
|
192
|
+
json: async () => ({ txHash: "0xdef" }),
|
|
193
|
+
});
|
|
194
|
+
await submitRelaySwap("http://relay.test/", validSwapParams);
|
|
195
|
+
expect(mockFetch.mock.calls[0][0]).toBe("http://relay.test/relay/swap");
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
// Integration-style: full swap flow (fee estimate → quote → swap)
|
|
200
|
+
// ---------------------------------------------------------------------------
|
|
201
|
+
describe("swap flow (mocked)", () => {
|
|
202
|
+
test("fee estimate → quote → swap submission", async () => {
|
|
203
|
+
// 1. Fee estimate
|
|
204
|
+
mockFetch.mockResolvedValueOnce({
|
|
205
|
+
ok: true,
|
|
206
|
+
json: async () => ({ relayerFee: "50000" }),
|
|
207
|
+
});
|
|
208
|
+
const fee = await estimateRelayFee("http://relay.test", 1);
|
|
209
|
+
expect(fee.relayerFee).toBe(50000n);
|
|
210
|
+
// 2. Swap quote
|
|
211
|
+
const tokenAmount = 1000000n;
|
|
212
|
+
mockFetch.mockResolvedValueOnce({
|
|
213
|
+
ok: true,
|
|
214
|
+
json: async () => ({
|
|
215
|
+
nativeAmount: "950000",
|
|
216
|
+
feeBps: 50,
|
|
217
|
+
relayerFee: "50000",
|
|
218
|
+
priceFallback: false,
|
|
219
|
+
}),
|
|
220
|
+
});
|
|
221
|
+
const quote = await fetchSwapQuote("http://relay.test", 1, tokenAmount);
|
|
222
|
+
expect(quote.nativeAmount).toBe(950000n);
|
|
223
|
+
expect(quote.priceFallback).toBe(false);
|
|
224
|
+
// 3. Submit swap with quote values
|
|
225
|
+
const slippageBps = 100n; // 1%
|
|
226
|
+
const minNative = (quote.nativeAmount * (10000n - slippageBps)) / 10000n;
|
|
227
|
+
const maxNative = quote.nativeAmount;
|
|
228
|
+
mockFetch.mockResolvedValueOnce({
|
|
229
|
+
ok: true,
|
|
230
|
+
json: async () => ({ txHash: "0xfinalswap" }),
|
|
231
|
+
});
|
|
232
|
+
const result = await submitRelaySwap("http://relay.test", {
|
|
233
|
+
chainId: 1,
|
|
234
|
+
tokenAmount,
|
|
235
|
+
minNativeAmount: minNative,
|
|
236
|
+
maxNativeAmount: maxNative,
|
|
237
|
+
recipient: `0x${"aa".repeat(20)}`,
|
|
238
|
+
owner: `0x${"bb".repeat(20)}`,
|
|
239
|
+
permitDeadline: 1700000000n,
|
|
240
|
+
permitV: 27,
|
|
241
|
+
permitR: `0x${"cc".repeat(32)}`,
|
|
242
|
+
permitS: `0x${"dd".repeat(32)}`,
|
|
243
|
+
});
|
|
244
|
+
expect(result.txHash).toBe("0xfinalswap");
|
|
245
|
+
// Verify all 3 fetch calls were made
|
|
246
|
+
expect(mockFetch).toHaveBeenCalledTimes(3);
|
|
247
|
+
// Verify swap body includes correct amounts
|
|
248
|
+
const swapBody = JSON.parse(mockFetch.mock.calls[2][1].body);
|
|
249
|
+
expect(swapBody.minNativeAmount).toBe(minNative.toString());
|
|
250
|
+
expect(swapBody.maxNativeAmount).toBe(maxNative.toString());
|
|
251
|
+
});
|
|
252
|
+
test("aborts when quote reports priceFallback", async () => {
|
|
253
|
+
mockFetch.mockResolvedValueOnce({
|
|
254
|
+
ok: true,
|
|
255
|
+
json: async () => ({
|
|
256
|
+
nativeAmount: "950000",
|
|
257
|
+
feeBps: 50,
|
|
258
|
+
relayerFee: "50000",
|
|
259
|
+
priceFallback: true,
|
|
260
|
+
}),
|
|
261
|
+
});
|
|
262
|
+
const quote = await fetchSwapQuote("http://relay.test", 1, 1000000n);
|
|
263
|
+
// Caller can check priceFallback and decide not to proceed
|
|
264
|
+
expect(quote.priceFallback).toBe(true);
|
|
265
|
+
// No swap submitted — only 1 fetch call
|
|
266
|
+
expect(mockFetch).toHaveBeenCalledTimes(1);
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
//# sourceMappingURL=relay.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.test.js","sourceRoot":"","sources":["../../../../src/operations/relay/__tests__/relay.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { submitRelayTeleport, estimateRelayFee, fetchSwapQuote, submitRelaySwap } from "./relay.js";
|
|
2
|
+
export type { RelayTeleportParams, RelayFeeEstimate, RelayResult, SwapQuoteParams, SwapQuote, RelaySwapParams, SwapResult, } from "./types.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/operations/relay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RelayFeeEstimate, RelayResult, RelaySwapParams, RelayTeleportParams, SwapQuote, SwapResult } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Submit a teleport request to the relay node.
|
|
4
|
+
*/
|
|
5
|
+
export declare function submitRelayTeleport(relayUrl: string, params: RelayTeleportParams): Promise<RelayResult>;
|
|
6
|
+
/**
|
|
7
|
+
* Fetch a fee estimate from the relay node.
|
|
8
|
+
*/
|
|
9
|
+
export declare function estimateRelayFee(relayUrl: string, chainId: number): Promise<RelayFeeEstimate>;
|
|
10
|
+
/**
|
|
11
|
+
* Fetch a swap quote from the relay node.
|
|
12
|
+
*/
|
|
13
|
+
export declare function fetchSwapQuote(relayUrl: string, chainId: number, amount: bigint): Promise<SwapQuote>;
|
|
14
|
+
/**
|
|
15
|
+
* Submit a token-to-native swap request to the relay node.
|
|
16
|
+
*/
|
|
17
|
+
export declare function submitRelaySwap(relayUrl: string, params: RelaySwapParams): Promise<SwapResult>;
|
|
18
|
+
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -0,0 +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"}
|