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.
Files changed (52) hide show
  1. package/README.md +70 -0
  2. package/dist/assets/abi/Verifier.json +2093 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.d.ts +2 -0
  8. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.d.ts.map +1 -0
  9. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.js +157 -0
  10. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.js.map +1 -0
  11. package/dist/operations/liquidityManager/adaptorWithdraw.d.ts +82 -0
  12. package/dist/operations/liquidityManager/adaptorWithdraw.d.ts.map +1 -0
  13. package/dist/operations/liquidityManager/adaptorWithdraw.js +107 -0
  14. package/dist/operations/liquidityManager/adaptorWithdraw.js.map +1 -0
  15. package/dist/operations/liquidityManager/index.d.ts +3 -1
  16. package/dist/operations/liquidityManager/index.d.ts.map +1 -1
  17. package/dist/operations/liquidityManager/index.js +2 -1
  18. package/dist/operations/liquidityManager/index.js.map +1 -1
  19. package/dist/operations/receive/__tests__/cache.test.js +33 -0
  20. package/dist/operations/receive/__tests__/cache.test.js.map +1 -1
  21. package/dist/operations/receive/__tests__/redeemTransaction.test.js +38 -0
  22. package/dist/operations/receive/__tests__/redeemTransaction.test.js.map +1 -1
  23. package/dist/operations/receive/cache.d.ts +1 -1
  24. package/dist/operations/receive/cache.d.ts.map +1 -1
  25. package/dist/operations/receive/cache.js +6 -5
  26. package/dist/operations/receive/cache.js.map +1 -1
  27. package/dist/operations/receive/index.d.ts +1 -1
  28. package/dist/operations/receive/index.d.ts.map +1 -1
  29. package/dist/operations/receive/index.js.map +1 -1
  30. package/dist/operations/receive/redeemTransaction.d.ts +2 -1
  31. package/dist/operations/receive/redeemTransaction.d.ts.map +1 -1
  32. package/dist/operations/receive/redeemTransaction.js +11 -5
  33. package/dist/operations/receive/redeemTransaction.js.map +1 -1
  34. package/dist/operations/receive/types.d.ts +25 -2
  35. package/dist/operations/receive/types.d.ts.map +1 -1
  36. package/dist/operations/relay/__tests__/relay.test.d.ts +2 -0
  37. package/dist/operations/relay/__tests__/relay.test.d.ts.map +1 -0
  38. package/dist/operations/relay/__tests__/relay.test.js +270 -0
  39. package/dist/operations/relay/__tests__/relay.test.js.map +1 -0
  40. package/dist/operations/relay/index.d.ts +3 -0
  41. package/dist/operations/relay/index.d.ts.map +1 -0
  42. package/dist/operations/relay/index.js +2 -0
  43. package/dist/operations/relay/index.js.map +1 -0
  44. package/dist/operations/relay/relay.d.ts +18 -0
  45. package/dist/operations/relay/relay.d.ts.map +1 -0
  46. package/dist/operations/relay/relay.js +103 -0
  47. package/dist/operations/relay/relay.js.map +1 -0
  48. package/dist/operations/relay/types.d.ts +63 -0
  49. package/dist/operations/relay/types.d.ts.map +1 -0
  50. package/dist/operations/relay/types.js +2 -0
  51. package/dist/operations/relay/types.js.map +1 -0
  52. 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;AAcD;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6C;IAEnE;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBxF;;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,GAAG,OAAO;CAGvD"}
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
- return `${hubAddress.toLowerCase()}-${chainId}`;
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,CAAC,UAAkB,EAAE,OAAe;IACtD,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;AAClD,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,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,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;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF"}
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;AAmBH,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
+ {"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;AAoBpD;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,UAAU,CAAC;CAC1B,GAAG,iBAAiB,CAcpB"}
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: [true, redeemContext.aggregationState.latestAggSeq, gr, singleProof.proofCalldata],
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: [true, redeemContext.aggregationState.latestAggSeq, gr, deciderProofHex],
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":"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"}
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
- /** Contract call arguments: `[isValid, latestAggSeq, generalRecipient, proof]`. */
174
- args: readonly [boolean, bigint, OnChainGeneralRecipient, string];
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=relay.test.d.ts.map
@@ -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,2 @@
1
+ export { submitRelayTeleport, estimateRelayFee, fetchSwapQuote, submitRelaySwap } from "./relay.js";
2
+ //# sourceMappingURL=index.js.map
@@ -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"}