@bananapus/nana-sdk-core 2.29.0 → 2.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/cjs/review/index.d.ts +1 -0
  2. package/dist/cjs/review/index.d.ts.map +1 -1
  3. package/dist/cjs/review/index.js +1 -0
  4. package/dist/cjs/review/index.js.map +1 -1
  5. package/dist/cjs/review/messages.d.ts +43 -0
  6. package/dist/cjs/review/messages.d.ts.map +1 -0
  7. package/dist/cjs/review/messages.js +55 -0
  8. package/dist/cjs/review/messages.js.map +1 -0
  9. package/dist/cjs/review/relayr.d.ts +43 -7
  10. package/dist/cjs/review/relayr.d.ts.map +1 -1
  11. package/dist/cjs/review/relayr.js +141 -8
  12. package/dist/cjs/review/relayr.js.map +1 -1
  13. package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
  14. package/dist/cjs/review/safeRelayr.js +23 -3
  15. package/dist/cjs/review/safeRelayr.js.map +1 -1
  16. package/dist/cjs/review/transaction-message.js +2 -2
  17. package/dist/cjs/review/transaction-message.js.map +1 -1
  18. package/dist/cjs/review/writeRecovery.d.ts +92 -7
  19. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  20. package/dist/cjs/review/writeRecovery.js +473 -70
  21. package/dist/cjs/review/writeRecovery.js.map +1 -1
  22. package/dist/cjs/safeService.d.ts +18 -12
  23. package/dist/cjs/safeService.d.ts.map +1 -1
  24. package/dist/cjs/safeService.js +97 -9
  25. package/dist/cjs/safeService.js.map +1 -1
  26. package/dist/esm/review/index.d.ts +1 -0
  27. package/dist/esm/review/index.d.ts.map +1 -1
  28. package/dist/esm/review/index.js +1 -0
  29. package/dist/esm/review/index.js.map +1 -1
  30. package/dist/esm/review/messages.d.ts +43 -0
  31. package/dist/esm/review/messages.d.ts.map +1 -0
  32. package/dist/esm/review/messages.js +48 -0
  33. package/dist/esm/review/messages.js.map +1 -0
  34. package/dist/esm/review/relayr.d.ts +43 -7
  35. package/dist/esm/review/relayr.d.ts.map +1 -1
  36. package/dist/esm/review/relayr.js +139 -7
  37. package/dist/esm/review/relayr.js.map +1 -1
  38. package/dist/esm/review/safeRelayr.d.ts.map +1 -1
  39. package/dist/esm/review/safeRelayr.js +23 -3
  40. package/dist/esm/review/safeRelayr.js.map +1 -1
  41. package/dist/esm/review/transaction-message.js +2 -2
  42. package/dist/esm/review/transaction-message.js.map +1 -1
  43. package/dist/esm/review/writeRecovery.d.ts +92 -7
  44. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  45. package/dist/esm/review/writeRecovery.js +472 -72
  46. package/dist/esm/review/writeRecovery.js.map +1 -1
  47. package/dist/esm/safeService.d.ts +18 -12
  48. package/dist/esm/safeService.d.ts.map +1 -1
  49. package/dist/esm/safeService.js +97 -9
  50. package/dist/esm/safeService.js.map +1 -1
  51. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/review/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,4FAA4F;AAC5F,KAAK,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,EACE,MAAiB,EACjB,KAAkB,EAClB,UAA0D,GAC3D,GAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC,GACL,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,EACE,MAAiB,EACjB,OAAmB,EACnB,gBAAwB,GACzB,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACxE,MAAM,CAOR;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,MAAM,SAAgB,GAAG,MAAM,CAE/D;AAED,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAElE,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACjC,MAAM,SAAgB,GACrB,MAAM,CAIR;AAED,iEAAiE;AACjE,eAAO,MAAM,2BAA2B,0EACiC,CAAC;AAE1E,gDAAgD;AAChD,eAAO,MAAM,2BAA2B,oCAAoC,CAAC;AAE7E,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,2EACiC,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The lines a held or released action shows. Apps import these instead of
3
+ * keeping copies. Each names the action, never the service behind it.
4
+ * `action` is a noun such as "action", "launch" or "payment".
5
+ */
6
+ /**
7
+ * The line a session shows while one of its earlier signatures can still run:
8
+ * until `until` (seconds), or, once the clock is past it, until a finalized
9
+ * block is.
10
+ */
11
+ export function relayrHeldMessage(until, { action = "action", nowMs = Date.now(), formatTime = (ms) => new Date(ms).toLocaleString(), } = {}) {
12
+ return until * 1_000 > nowMs
13
+ ? `This ${action}'s earlier signature can still run until ${formatTime(until * 1_000)}. Try again after that.`
14
+ : `This ${action}'s earlier signature may still run. Try again in a few minutes.`;
15
+ }
16
+ /**
17
+ * The line a discardable session shows, and the error its action throws until
18
+ * it is discarded. `paymentUnmatched`: its saved payment proved to be another
19
+ * transaction, which matters once none of its requests ran.
20
+ */
21
+ export function relayrDiscardLine(reason, { action = "action", subject = "project", paymentUnmatched = false, } = {}) {
22
+ if (reason === "ran")
23
+ return `This ${action}'s earlier signature may already have run. Check the ${subject}, then discard it to review it again.`;
24
+ if (reason === "changed")
25
+ return `The ${subject} changed since this review.`;
26
+ return paymentUnmatched
27
+ ? `The saved payment couldn't be matched to this ${action} and isn't refunded. Discard it to review it again.`
28
+ : `This ${action}'s earlier signatures expired without running.`;
29
+ }
30
+ /** A wallet write with no confirmed result yet holds its exact call. */
31
+ export function writeHeldMessage(action = "transaction") {
32
+ return `Your earlier ${action} hasn't confirmed yet. Check your wallet.`;
33
+ }
34
+ /** The button that ends a held write once the user checked their wallet. */
35
+ export const WRITE_EXIT_LABEL = "I checked my wallet. Send again";
36
+ /** What sending again does if the held write went through. */
37
+ export function writeExitMessage(call, action = "transaction") {
38
+ return BigInt(call.value ?? 0) > 0n
39
+ ? `If your earlier ${action} went through, sending again pays twice.`
40
+ : `If your earlier ${action} went through, sending again runs it twice.`;
41
+ }
42
+ /** A Safe proposal whose nonce another Safe transaction used. */
43
+ export const SAFE_PROPOSAL_REPLACED_LINE = "Another Safe transaction used this nonce. Propose it again to run it.";
44
+ /** A Safe proposal the chain shows executed. */
45
+ export const SAFE_PROPOSAL_EXECUTED_LINE = "Your Safe ran this transaction.";
46
+ /** A quote released after its payment failed and its deadline passed. */
47
+ export const RELAYR_PAYMENT_RELEASED_LINE = "Your payment didn't go through and its quote expired. Pay a new quote.";
48
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/review/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,EACE,MAAM,GAAG,QAAQ,EACjB,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,EAClB,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,MAKxD,EAAE;IAEN,OAAO,KAAK,GAAG,KAAK,GAAG,KAAK;QAC1B,CAAC,CAAC,QAAQ,MAAM,4CAA4C,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,yBAAyB;QAC9G,CAAC,CAAC,QAAQ,MAAM,iEAAiE,CAAC;AACtF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,EACE,MAAM,GAAG,QAAQ,EACjB,OAAO,GAAG,SAAS,EACnB,gBAAgB,GAAG,KAAK,MAC6C,EAAE;IAEzE,IAAI,MAAM,KAAK,KAAK;QAClB,OAAO,QAAQ,MAAM,wDAAwD,OAAO,uCAAuC,CAAC;IAC9H,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,OAAO,6BAA6B,CAAC;IAC7E,OAAO,gBAAgB;QACrB,CAAC,CAAC,iDAAiD,MAAM,qDAAqD;QAC9G,CAAC,CAAC,QAAQ,MAAM,gDAAgD,CAAC;AACrE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,MAAM,GAAG,aAAa;IACrD,OAAO,gBAAgB,MAAM,2CAA2C,CAAC;AAC3E,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAElE,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAC9B,IAAiC,EACjC,MAAM,GAAG,aAAa;IAEtB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE;QACjC,CAAC,CAAC,mBAAmB,MAAM,0CAA0C;QACrE,CAAC,CAAC,mBAAmB,MAAM,6CAA6C,CAAC;AAC7E,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,2BAA2B,GACtC,uEAAuE,CAAC;AAE1E,gDAAgD;AAChD,MAAM,CAAC,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAE7E,yEAAyE;AACzE,MAAM,CAAC,MAAM,4BAA4B,GACvC,wEAAwE,CAAC"}
@@ -22,10 +22,32 @@ export declare const RELAYR_NATIVE_TOKEN: Address;
22
22
  /** The gas a payment is simulated and sent with. */
23
23
  export declare const RELAYR_PAYMENT_GAS = 150000n;
24
24
  /**
25
- * How long a signed ERC-2771 ForwardRequest stays executable: 47 hours from
26
- * signing. The forwarder rejects it afterwards, even if the bundle was paid.
25
+ * How long a signed ERC-2771 ForwardRequest stays executable by default: 2
26
+ * hours from signing. The forwarder rejects it afterwards, even if the bundle
27
+ * was paid. A saved session holds its signers' nonces while one of its
28
+ * requests is live (ruling R117), so a short deadline frees them sooner.
29
+ * {@link relayrForwarderDeadline} signs with it.
27
30
  */
28
31
  export declare const RELAYR_FORWARDER_DEADLINE_SECONDS: number;
32
+ /**
33
+ * The time Relayr is given to run a bundle's requests after its quote's
34
+ * payment deadline: a payment option is offered only when its deadline is at
35
+ * least this long before the earliest signed request's (see
36
+ * {@link relayrPaymentDetails}). An app that refreshes signatures before a
37
+ * quote refreshes them once less than the payment window plus this margin is
38
+ * left.
39
+ */
40
+ export declare const RELAYR_REQUEST_RUN_MARGIN_SECONDS: number;
41
+ /**
42
+ * The deadline to sign a ForwardRequest with: `seconds` (by default
43
+ * {@link RELAYR_FORWARDER_DEADLINE_SECONDS}) after `nowSeconds` (the clock by
44
+ * default), in whole seconds. Throws unless `seconds` is a whole number from
45
+ * 1 hour to 47 hours.
46
+ */
47
+ export declare function relayrForwarderDeadline({ seconds, nowSeconds, }?: {
48
+ seconds?: number;
49
+ nowSeconds?: number;
50
+ }): number;
29
51
  /** ERC2771Context's view on a destination contract. */
30
52
  export declare const TRUSTED_FORWARDER_ABI: readonly [{
31
53
  readonly type: "function";
@@ -128,6 +150,12 @@ export type RelayrQuote = {
128
150
  transactions: RelayrTransactionRecord[];
129
151
  /** Each posted transaction with its quoted ID, in posted order. */
130
152
  expectedTransactions: RelayrTransactionBinding[];
153
+ /**
154
+ * The earliest deadline (seconds) of the bundle's signed forward requests,
155
+ * when it has any: {@link relayrPaymentOptions} offers only options paid
156
+ * {@link RELAYR_REQUEST_RUN_MARGIN_SECONDS} before it.
157
+ */
158
+ requestsDeadline?: number;
131
159
  };
132
160
  /**
133
161
  * Relayr's record of one bundle as {@link readRelayrBundle} returns it: the
@@ -317,22 +345,30 @@ export declare function quoteExpired(deadline: bigint, nowSeconds?: number): boo
317
345
  * the destinations' network family, Relayr's payment contract and native
318
346
  * token (in lower case or with their EIP-55 checksum), calldata that pays for
319
347
  * exactly `bundleUuid` with the quoted deadline, and a deadline more than 15
320
- * seconds away. Throws otherwise.
321
- */
322
- export declare function relayrPaymentDetails(payment: RelayrPayment, { bundleUuid, destinationChainIds, nowSeconds, }: {
348
+ * seconds away. With `requestsDeadline`, the earliest deadline of the bundle's
349
+ * signed requests, or `expectedTransactions`, the quote's bindings it is read
350
+ * from, the payment deadline must also be at least
351
+ * {@link RELAYR_REQUEST_RUN_MARGIN_SECONDS} before the earliest of them, so a
352
+ * paid bundle's requests can still run; bindings with a forwarder call that
353
+ * can't be read refuse every option. Throws otherwise.
354
+ */
355
+ export declare function relayrPaymentDetails(payment: RelayrPayment, { bundleUuid, destinationChainIds, nowSeconds, requestsDeadline, expectedTransactions, }: {
323
356
  bundleUuid: string;
324
357
  destinationChainIds: readonly number[];
325
358
  nowSeconds?: number;
359
+ requestsDeadline?: number | bigint;
360
+ expectedTransactions?: readonly RelayrTransactionBinding[];
326
361
  }): RelayrPaymentDetails;
327
362
  /**
328
363
  * The payment options to offer: each passes {@link relayrPaymentDetails} for
329
- * the quote's bundle and destinations, one per chain (Relayr's first), copied
364
+ * the quote's bundle and destinations (and, when the quote has them, its
365
+ * `requestsDeadline` and the bindings it is read from), one per chain (Relayr's first), copied
330
366
  * so the quote's owner cannot change one under a later review. A chain with
331
367
  * any option whose contract or token is not an address as viem's strict check
332
368
  * reads one (in lower case, or with a valid EIP-55 checksum) gets no option:
333
369
  * Relayr's answer for that chain is corrupted.
334
370
  */
335
- export declare function relayrPaymentOptions(quote: Pick<RelayrQuote, "bundle_uuid" | "payment_info">, destinationChainIds: readonly number[], nowSeconds?: number): RelayrPayment[];
371
+ export declare function relayrPaymentOptions(quote: Pick<RelayrQuote, "bundle_uuid" | "payment_info"> & Partial<Pick<RelayrQuote, "requestsDeadline" | "expectedTransactions">>, destinationChainIds: readonly number[], nowSeconds?: number): RelayrPayment[];
336
372
  /**
337
373
  * Prove the payment chain runs Relayr's payment contract: the code at
338
374
  * {@link RELAYR_PAYMENT_ADDRESS} hashes to {@link RELAYR_PAYMENT_CODE_HASH}.
@@ -1 +1 @@
1
- {"version":3,"file":"relayr.d.ts","sourceRoot":"","sources":["../../../src/review/relayr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relayr.d.ts","sourceRoot":"","sources":["../../../src/review/relayr.ts"],"names":[],"mappings":"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"}
@@ -31,10 +31,42 @@ export const RELAYR_NATIVE_TOKEN = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
31
31
  /** The gas a payment is simulated and sent with. */
32
32
  export const RELAYR_PAYMENT_GAS = 150000n;
33
33
  /**
34
- * How long a signed ERC-2771 ForwardRequest stays executable: 47 hours from
35
- * signing. The forwarder rejects it afterwards, even if the bundle was paid.
34
+ * How long a signed ERC-2771 ForwardRequest stays executable by default: 2
35
+ * hours from signing. The forwarder rejects it afterwards, even if the bundle
36
+ * was paid. A saved session holds its signers' nonces while one of its
37
+ * requests is live (ruling R117), so a short deadline frees them sooner.
38
+ * {@link relayrForwarderDeadline} signs with it.
36
39
  */
37
- export const RELAYR_FORWARDER_DEADLINE_SECONDS = 47 * 60 * 60;
40
+ export const RELAYR_FORWARDER_DEADLINE_SECONDS = 2 * 60 * 60;
41
+ /** The shortest and longest a signed request may stay executable: Relayr refuses 48 hours or more. */
42
+ const FORWARDER_DEADLINE_MIN_SECONDS = 60 * 60;
43
+ const FORWARDER_DEADLINE_MAX_SECONDS = 47 * 60 * 60;
44
+ /**
45
+ * The time Relayr is given to run a bundle's requests after its quote's
46
+ * payment deadline: a payment option is offered only when its deadline is at
47
+ * least this long before the earliest signed request's (see
48
+ * {@link relayrPaymentDetails}). An app that refreshes signatures before a
49
+ * quote refreshes them once less than the payment window plus this margin is
50
+ * left.
51
+ */
52
+ export const RELAYR_REQUEST_RUN_MARGIN_SECONDS = 30 * 60;
53
+ /**
54
+ * The deadline to sign a ForwardRequest with: `seconds` (by default
55
+ * {@link RELAYR_FORWARDER_DEADLINE_SECONDS}) after `nowSeconds` (the clock by
56
+ * default), in whole seconds. Throws unless `seconds` is a whole number from
57
+ * 1 hour to 47 hours.
58
+ */
59
+ export function relayrForwarderDeadline({ seconds = RELAYR_FORWARDER_DEADLINE_SECONDS, nowSeconds = Date.now() / 1_000, } = {}) {
60
+ if (!Number.isSafeInteger(seconds) ||
61
+ seconds < FORWARDER_DEADLINE_MIN_SECONDS ||
62
+ seconds > FORWARDER_DEADLINE_MAX_SECONDS) {
63
+ throw new Error("A signed request must stay executable for 1 to 47 hours.");
64
+ }
65
+ if (!Number.isFinite(nowSeconds) || nowSeconds < 0) {
66
+ throw new Error("Invalid time for a signed request's deadline.");
67
+ }
68
+ return Math.floor(nowSeconds) + seconds;
69
+ }
38
70
  /** ERC2771Context's view on a destination contract. */
39
71
  export const TRUSTED_FORWARDER_ABI = [
40
72
  {
@@ -487,13 +519,63 @@ export async function bindRelayrQuote(response, request, { fetch: fetchBundle =
487
519
  transactions.length) {
488
520
  throw new Error(UNBOUND);
489
521
  }
522
+ const requestsDeadline = requestsDeadlineOf(expectedTransactions);
490
523
  return {
491
524
  bundle_uuid: bundleUuid,
492
525
  payment_info: body.payment_info,
493
526
  transactions: bound,
494
527
  expectedTransactions,
528
+ ...(typeof requestsDeadline === "number" ? { requestsDeadline } : {}),
495
529
  };
496
530
  }
531
+ /**
532
+ * The earliest deadline of the signed forward requests among a quote's
533
+ * bindings: undefined when none is a forward request, and null when one can't
534
+ * be read. Each binding must name its entry's chain, a Relayr chain. A call to
535
+ * the chain's forwarder counts as raw only when it decodes to a function that
536
+ * forwards nothing (a view such as `eip712Domain`); an `execute` must be one
537
+ * {@link relayrForwardRequest} reads, and anything else (an `executeBatch`,
538
+ * calldata that doesn't decode) can't be read.
539
+ */
540
+ function requestsDeadlineOf(bindings) {
541
+ if (!Array.isArray(bindings))
542
+ return null;
543
+ let earliest;
544
+ for (const binding of bindings) {
545
+ const { chain, entry } = (binding ?? {});
546
+ if (!entry ||
547
+ typeof entry !== "object" ||
548
+ typeof chain !== "number" ||
549
+ entry.chain !== chain ||
550
+ !relayrSupportsChain(chain)) {
551
+ return null;
552
+ }
553
+ if (!sameAddress(entry.target, forwarderOn(chain)))
554
+ continue;
555
+ let functionName;
556
+ try {
557
+ ({ functionName } = decodeFunctionData({
558
+ abi: erc2771ForwarderAbi,
559
+ data: entry.data,
560
+ }));
561
+ }
562
+ catch {
563
+ return null;
564
+ }
565
+ if (functionName === "executeBatch")
566
+ return null;
567
+ if (functionName !== "execute")
568
+ continue;
569
+ const request = relayrForwardRequest(entry);
570
+ if (!request)
571
+ return null;
572
+ earliest =
573
+ earliest === undefined
574
+ ? request.deadline
575
+ : Math.min(earliest, request.deadline);
576
+ }
577
+ return earliest;
578
+ }
497
579
  /** A quoted deadline in seconds: integer seconds, or an RFC 3339 time with an offset. */
498
580
  function deadlineSeconds(value) {
499
581
  if (typeof value === "number") {
@@ -536,9 +618,14 @@ function paymentCalldataFor(calldata, bundleUuid) {
536
618
  * the destinations' network family, Relayr's payment contract and native
537
619
  * token (in lower case or with their EIP-55 checksum), calldata that pays for
538
620
  * exactly `bundleUuid` with the quoted deadline, and a deadline more than 15
539
- * seconds away. Throws otherwise.
621
+ * seconds away. With `requestsDeadline`, the earliest deadline of the bundle's
622
+ * signed requests, or `expectedTransactions`, the quote's bindings it is read
623
+ * from, the payment deadline must also be at least
624
+ * {@link RELAYR_REQUEST_RUN_MARGIN_SECONDS} before the earliest of them, so a
625
+ * paid bundle's requests can still run; bindings with a forwarder call that
626
+ * can't be read refuse every option. Throws otherwise.
540
627
  */
541
- export function relayrPaymentDetails(payment, { bundleUuid, destinationChainIds, nowSeconds = Date.now() / 1_000, }) {
628
+ export function relayrPaymentDetails(payment, { bundleUuid, destinationChainIds, nowSeconds = Date.now() / 1_000, requestsDeadline, expectedTransactions, }) {
542
629
  const chainId = payment?.chain;
543
630
  if (typeof chainId !== "number" || !relayrSupportsChain(chainId)) {
544
631
  throw new Error("Relayr returned an unsupported payment chain.");
@@ -579,6 +666,21 @@ export function relayrPaymentDetails(payment, { bundleUuid, destinationChainIds,
579
666
  }
580
667
  if (quoteExpired(deadline, nowSeconds))
581
668
  throw new Error(EXPIRED);
669
+ const ends = [
670
+ requestsDeadline,
671
+ expectedTransactions === undefined
672
+ ? undefined
673
+ : requestsDeadlineOf(expectedTransactions),
674
+ ].filter((end) => end !== undefined);
675
+ for (const value of ends) {
676
+ const end = uint256(value);
677
+ if (end === null) {
678
+ throw new Error("This quote's signed requests can't be read. Review the action again.");
679
+ }
680
+ if (deadline + BigInt(RELAYR_REQUEST_RUN_MARGIN_SECONDS) > end) {
681
+ throw new Error("This quote's payment window ends too close to when the signed requests expire. Review the action again.");
682
+ }
683
+ }
582
684
  return {
583
685
  chainId,
584
686
  target: RELAYR_PAYMENT_ADDRESS,
@@ -590,7 +692,8 @@ export function relayrPaymentDetails(payment, { bundleUuid, destinationChainIds,
590
692
  }
591
693
  /**
592
694
  * The payment options to offer: each passes {@link relayrPaymentDetails} for
593
- * the quote's bundle and destinations, one per chain (Relayr's first), copied
695
+ * the quote's bundle and destinations (and, when the quote has them, its
696
+ * `requestsDeadline` and the bindings it is read from), one per chain (Relayr's first), copied
594
697
  * so the quote's owner cannot change one under a later review. A chain with
595
698
  * any option whose contract or token is not an address as viem's strict check
596
699
  * reads one (in lower case, or with a valid EIP-55 checksum) gets no option:
@@ -612,6 +715,13 @@ export function relayrPaymentOptions(quote, destinationChainIds, nowSeconds) {
612
715
  bundleUuid: quote.bundle_uuid,
613
716
  destinationChainIds,
614
717
  nowSeconds,
718
+ // A key present with an unreadable value refuses every option.
719
+ ...("requestsDeadline" in quote
720
+ ? { requestsDeadline: quote.requestsDeadline }
721
+ : {}),
722
+ ...("expectedTransactions" in quote
723
+ ? { expectedTransactions: quote.expectedTransactions }
724
+ : {}),
615
725
  }));
616
726
  }
617
727
  catch {
@@ -1676,6 +1786,27 @@ async function relayrBundleIfNamed(bundleUuid, fetchBundle) {
1676
1786
  * each option {@link relayrQuotedOptions} keeps, has passed at a canonical
1677
1787
  * finalized block on its chain. Anything unread is false.
1678
1788
  */
1789
+ /**
1790
+ * Whether `hash`'s own receipt reverted in a block still canonical. A payment
1791
+ * sent through a wallet contract (a Safe or smart account) reverts there
1792
+ * rather than at the payment contract, and a reverted transaction paid
1793
+ * nothing, whatever it called.
1794
+ */
1795
+ async function receiptReverted(client, hash) {
1796
+ try {
1797
+ const receipt = await client.getTransactionReceipt({ hash });
1798
+ if (receipt.status !== "reverted" ||
1799
+ receipt.transactionHash?.toLowerCase() !== hash.toLowerCase() ||
1800
+ typeof receipt.blockNumber !== "bigint")
1801
+ return false;
1802
+ const block = await client.getBlock({ blockNumber: receipt.blockNumber });
1803
+ return (isBytes32(block.hash) &&
1804
+ block.hash.toLowerCase() === receipt.blockHash?.toLowerCase());
1805
+ }
1806
+ catch {
1807
+ return false;
1808
+ }
1809
+ }
1679
1810
  async function relayrQuoteUnfundable(clientFor, { payments, options, bundleUuid, destinationChainIds, account, }) {
1680
1811
  if (!Array.isArray(payments) ||
1681
1812
  !payments.length ||
@@ -1696,7 +1827,8 @@ async function relayrQuoteUnfundable(clientFor, { payments, options, bundleUuid,
1696
1827
  return false;
1697
1828
  }
1698
1829
  catch (error) {
1699
- if (!(error instanceof RelayrPaymentRevertedError))
1830
+ if (!(error instanceof RelayrPaymentRevertedError) &&
1831
+ !(await receiptReverted(client, payment.hash)))
1700
1832
  return false;
1701
1833
  }
1702
1834
  // The proof read the calldata's deadline word; the saved one must be it.