@tempoxyz/id 0.0.0-pr-496.sha-e625357 → 0.0.0-pr-349.sha-e95088c

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 (42) hide show
  1. package/dist/AccessKey.d.ts.map +1 -1
  2. package/dist/AccessKey.js +11 -5
  3. package/dist/AccessKey.js.map +1 -1
  4. package/dist/TempoAccount.d.ts +26 -20
  5. package/dist/TempoAccount.d.ts.map +1 -1
  6. package/dist/TempoAccount.js +48 -15
  7. package/dist/TempoAccount.js.map +1 -1
  8. package/dist/internal/accessKey.d.ts +5 -0
  9. package/dist/internal/accessKey.d.ts.map +1 -1
  10. package/dist/internal/accessKey.js +11 -0
  11. package/dist/internal/accessKey.js.map +1 -1
  12. package/dist/internal/relayRoute.d.ts +55 -0
  13. package/dist/internal/relayRoute.d.ts.map +1 -0
  14. package/dist/internal/relayRoute.js +67 -0
  15. package/dist/internal/relayRoute.js.map +1 -0
  16. package/dist/internal/signer.d.ts.map +1 -1
  17. package/dist/internal/signer.js +3 -3
  18. package/dist/internal/signer.js.map +1 -1
  19. package/dist/plugins/index.d.ts +1 -0
  20. package/dist/plugins/index.d.ts.map +1 -1
  21. package/dist/plugins/index.js +1 -0
  22. package/dist/plugins/index.js.map +1 -1
  23. package/dist/plugins/relay.d.ts +73 -0
  24. package/dist/plugins/relay.d.ts.map +1 -0
  25. package/dist/plugins/relay.js +84 -0
  26. package/dist/plugins/relay.js.map +1 -0
  27. package/dist/plugins/viem.d.ts +7 -0
  28. package/dist/plugins/viem.d.ts.map +1 -1
  29. package/dist/plugins/viem.js +12 -7
  30. package/dist/plugins/viem.js.map +1 -1
  31. package/dist/wagmi/index.js +2 -2
  32. package/dist/wagmi/index.js.map +1 -1
  33. package/package.json +2 -2
  34. package/src/AccessKey.ts +14 -5
  35. package/src/TempoAccount.ts +68 -26
  36. package/src/internal/accessKey.ts +14 -0
  37. package/src/internal/relayRoute.ts +113 -0
  38. package/src/internal/signer.ts +6 -2
  39. package/src/plugins/index.ts +1 -0
  40. package/src/plugins/relay.ts +141 -0
  41. package/src/plugins/viem.ts +18 -6
  42. package/src/wagmi/index.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AccessKey.d.ts","sourceRoot":"","sources":["../src/AccessKey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,KAAK,aAAa,EAAE,MAAM,IAAI,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACvD,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAA;IAChB,0DAA0D;IAC1D,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAA;CACvC,GAAG,QAAQ,CAAA;AAEZ,iEAAiE;AACjE,MAAM,MAAM,QAAQ,GAAG,KAAK,CACxB;IACE,+DAA+D;IAC/D,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,UAAU,CAAA;CAChD,GACD;IACE,kFAAkF;IAClF,UAAU,EAAE,GAAG,CAAC,GAAG,CAAA;CACpB,GACD,EAAE,CACL,CAAA;AAED,+EAA+E;AAC/E,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAkB,IAAI,sCAAqC;IAE3D,cAEC;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,WAGrC;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAClD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GACzB,SAAS,CAAC,OAAO,CAAC,CAOpB;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,KAAK,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;QAC5C,iDAAiD;QACjD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,kEAAkE;QAClE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,0DAA0D;QAC1D,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAA;KACvC,GAAG,QAAQ,CAAA;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,SAAS,EACd,OAAO,GAAE,SAAS,CAAC,OAAY,GAC9B,OAAO,CAAC,gBAAgB,CAiB1B;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,OAAO,GAAG;QACb,2GAA2G;QAC3G,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;KACxC,CAAA;CACF"}
1
+ {"version":3,"file":"AccessKey.d.ts","sourceRoot":"","sources":["../src/AccessKey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,KAAK,aAAa,EAAE,MAAM,IAAI,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,OAAO,EAA2B,MAAM,YAAY,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACvD,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAA;IAChB,0DAA0D;IAC1D,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAA;CACvC,GAAG,QAAQ,CAAA;AAEZ,iEAAiE;AACjE,MAAM,MAAM,QAAQ,GAAG,KAAK,CACxB;IACE,+DAA+D;IAC/D,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,UAAU,CAAA;CAChD,GACD;IACE,kFAAkF;IAClF,UAAU,EAAE,GAAG,CAAC,GAAG,CAAA;CACpB,GACD,EAAE,CACL,CAAA;AAED,+EAA+E;AAC/E,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAkB,IAAI,sCAAqC;IAE3D,cAEC;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,WAGrC;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAClD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GACzB,SAAS,CAAC,OAAO,CAAC,CAOpB;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,KAAK,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;QAC5C,iDAAiD;QACjD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,kEAAkE;QAClE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,0DAA0D;QAC1D,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAA;KACvC,GAAG,QAAQ,CAAA;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,SAAS,EACd,OAAO,GAAE,SAAS,CAAC,OAAY,GAC9B,OAAO,CAAC,gBAAgB,CA0B1B;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,OAAO,GAAG;QACb,2GAA2G;QAC3G,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;KACxC,CAAA;CACF"}
package/dist/AccessKey.js CHANGED
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { PublicKey } from 'ox';
6
6
  import { KeyAuthorization } from 'ox/tempo';
7
- import { Account } from 'viem/tempo';
7
+ import { Account, KeyAuthorizationManager } from 'viem/tempo';
8
8
  /** `toAccount` received an access key without material, and no `accessKey`. */
9
9
  export class AccessKeyRequiredError extends Error {
10
10
  name = 'AccessKey.AccessKeyRequiredError';
@@ -54,10 +54,16 @@ export function from(value) {
54
54
  */
55
55
  export function toAccount(key, options = {}) {
56
56
  const { accessKey } = options;
57
- const access = {
58
- access: key.account,
59
- keyAuthorization: KeyAuthorization.fromRpc(key.keyAuthorization),
60
- };
57
+ const keyAuthorization = KeyAuthorization.fromRpc(key.keyAuthorization);
58
+ const keyAuthorizationManager = KeyAuthorizationManager.memory();
59
+ // The memory manager stores synchronously, so the authorization is in place before the account
60
+ // is returned.
61
+ void keyAuthorizationManager.set({
62
+ accessKey: keyAuthorization.address,
63
+ address: key.account,
64
+ chainId: Number(keyAuthorization.chainId),
65
+ }, keyAuthorization);
66
+ const access = { access: key.account, keyAuthorizationManager };
61
67
  if (key.keyPair)
62
68
  return Account.fromWebCryptoP256(key.keyPair, access);
63
69
  if (key.privateKey)
@@ -1 +1 @@
1
- {"version":3,"file":"AccessKey.js","sourceRoot":"","sources":["../src/AccessKey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAA0B,SAAS,EAAsB,MAAM,IAAI,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AA4BpC,+EAA+E;AAC/E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC7B,IAAI,GAAG,kCAAkC,CAAA;IAE3D;QACE,KAAK,CAAC,qEAAqE,CAAC,CAAA;IAC9E,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,GAAc;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACjE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,MAAO,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAClB,KAA0B;IAE1B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IAC5E,iFAAiF;IACjF,MAAM,OAAO,GAAG,MAAM,CACpB,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAC9C,CAAA;IACZ,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAA;AAC9B,CAAC;AAaD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CACvB,GAAc,EACd,OAAO,GAAsB,EAAE;IAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC7B,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;KACjE,CAAA;IAED,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtE,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACxE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;IAClD,gGAAgG;IAChG,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,GAAG,MAAM;QACT,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KACnE,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"AccessKey.js","sourceRoot":"","sources":["../src/AccessKey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAA0B,SAAS,EAAsB,MAAM,IAAI,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AA4B7D,+EAA+E;AAC/E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC7B,IAAI,GAAG,kCAAkC,CAAA;IAE3D;QACE,KAAK,CAAC,qEAAqE,CAAC,CAAA;IAC9E,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,GAAc;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACjE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,MAAO,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAClB,KAA0B;IAE1B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IAC5E,iFAAiF;IACjF,MAAM,OAAO,GAAG,MAAM,CACpB,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAC9C,CAAA;IACZ,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAA;AAC9B,CAAC;AAaD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CACvB,GAAc,EACd,OAAO,GAAsB,EAAE;IAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC7B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACvE,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAA;IAChE,+FAA+F;IAC/F,eAAe;IACf,KAAK,uBAAuB,CAAC,GAAG,CAC9B;QACE,SAAS,EAAE,gBAAgB,CAAC,OAAO;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;KAC1C,EACD,gBAAgB,CACjB,CAAA;IACD,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAE/D,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtE,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACxE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;IAClD,gGAAgG;IAChG,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,GAAG,MAAM;QACT,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KACnE,CAAC,CAAA;AACJ,CAAC"}
@@ -1,14 +1,20 @@
1
- /**
2
- * One of a user's Tempo Accounts, as a Viem configurable account (TIP-1107) with Tempo ID's fields.
3
- * @module
4
- */
1
+ import { AccountConfig } from 'ox/tempo';
5
2
  import { Account } from 'viem/tempo';
6
- /**
7
- * A version 0 configuration that does not derive the account's address: Viem's
8
- * `Account.AddressMismatchError`, whose `derived` is the address that the configuration derives.
9
- */
10
- export declare const AddressMismatchError: typeof Account.AddressMismatchError;
11
- export type AddressMismatchError = Account.AddressMismatchError;
3
+ /** A configuration that does not derive the account's address. */
4
+ export declare class AddressMismatchError extends Error {
5
+ readonly name = "TempoAccount.AddressMismatchError";
6
+ /** The address that the configuration derives. */
7
+ readonly derived: `0x${string}`;
8
+ constructor(options: AddressMismatchError.Options);
9
+ }
10
+ export declare namespace AddressMismatchError {
11
+ type Options = {
12
+ /** The address of the account. */
13
+ address: `0x${string}`;
14
+ /** The address that the configuration derives. */
15
+ derived: `0x${string}`;
16
+ };
17
+ }
12
18
  /**
13
19
  * One of the user's Tempo Accounts: the Viem account that `Account.fromConfig` from `viem/tempo`
14
20
  * returns, with the account's keys, its signer of key authorizations, and its realm. On a chain with
@@ -63,11 +69,10 @@ export declare namespace TempoAccount {
63
69
  }
64
70
  }
65
71
  /**
66
- * Rebuilds a Tempo Account from the value of {@link serialize}, with no request, through Viem's
67
- * `Account.deserialize`. On a chain with configurable accounts, a passkey among `keys` whose
68
- * `credential` derives one of the configuration's owners signs as that owner, through `getFn`.
69
- * Throws {@link AddressMismatchError} for a version 0 configuration that does not derive `address`.
70
- * A later version keeps `address`, since its configuration no longer derives it.
72
+ * Rebuilds a Tempo Account from the value of {@link serialize}, with no request. On a chain with
73
+ * configurable accounts, a passkey among `keys` that holds a credential signs as an owner, through
74
+ * `getFn`. Throws {@link AddressMismatchError} for a version 0 configuration that does not derive
75
+ * `address`. A later version keeps `address`, since its configuration no longer derives it.
71
76
  *
72
77
  * @example
73
78
  * ```ts
@@ -95,11 +100,12 @@ export declare namespace deserialize {
95
100
  * ```
96
101
  */
97
102
  export declare function from(value: TempoAccount): TempoAccount;
98
- /**
99
- * A Tempo Account as JSON, which {@link serialize} returns and {@link deserialize} rebuilds: Viem's
100
- * `Account.Serialized`, with Tempo ID's fields.
101
- */
102
- export type Serialized = Account.Serialized & {
103
+ /** A Tempo Account as JSON, which {@link serialize} returns and {@link deserialize} rebuilds. */
104
+ export type Serialized = {
105
+ /** The account's address. */
106
+ address: `0x${string}`;
107
+ /** The account's configuration. Absent where the account is not configurable. */
108
+ config?: AccountConfig.Rpc | undefined;
103
109
  /** The owner keys, as for `TempoAccount.keys`. */
104
110
  keys: readonly TempoAccount.Key[];
105
111
  /** Who signs the account's key authorizations, as for `TempoAccount.owner`. */
@@ -1 +1 @@
1
- {"version":3,"file":"TempoAccount.d.ts","sourceRoot":"","sources":["../src/TempoAccount.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qCAA+B,CAAA;AAChE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,GAAG;IACvD;;;OAGG;IACH,IAAI,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,CAAA;IACjC;;;;;OAKG;IACH,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACzD,2EAA2E;IAC3E,KAAK,EAAE;QACL,+EAA+E;QAC/E,EAAE,EAAE,MAAM,CAAA;QACV,8CAA8C;QAC9C,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,wCAAwC;IACxC,KAAK,GAAG,GAAG;QACT,+BAA+B;QAC/B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;QACtB;;;WAGG;QACH,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS,CAAA;QACvC,sDAAsD;QACtD,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;KACzD,CAAA;IAED,UAAU,GAAG,CAAC;QACZ,yCAAyC;QACzC,KAAK,UAAU,GAAG;YAChB,oCAAoC;YACpC,EAAE,EAAE,MAAM,CAAA;YACV,uEAAuE;YACvE,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;YACxB,2DAA2D;YAC3D,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,WAAW,CAAC,OAAY,GAChC,YAAY,CAUd;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb,oFAAoF;QACpF,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;KAC9D,CAAA;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAEtD;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG;IAC5C,kDAAkD;IAClD,IAAI,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,CAAA;IACjC,+EAA+E;IAC/E,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IAC5B,wDAAwD;IACxD,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAG3D"}
1
+ {"version":3,"file":"TempoAccount.d.ts","sourceRoot":"","sources":["../src/TempoAccount.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,kEAAkE;AAClE,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAkB,IAAI,uCAAsC;IAC5D,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IAE/B,YAAY,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAKhD;CACF;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,KAAK,OAAO,GAAG;QACb,kCAAkC;QAClC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;QACtB,kDAAkD;QAClD,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;KACvB,CAAA;CACF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,GAAG;IACvD;;;OAGG;IACH,IAAI,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,CAAA;IACjC;;;;;OAKG;IACH,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACzD,2EAA2E;IAC3E,KAAK,EAAE;QACL,+EAA+E;QAC/E,EAAE,EAAE,MAAM,CAAA;QACV,8CAA8C;QAC9C,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,wCAAwC;IACxC,KAAK,GAAG,GAAG;QACT,+BAA+B;QAC/B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;QACtB;;;WAGG;QACH,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS,CAAA;QACvC,sDAAsD;QACtD,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;KACzD,CAAA;IAED,UAAU,GAAG,CAAC;QACZ,yCAAyC;QACzC,KAAK,UAAU,GAAG;YAChB,oCAAoC;YACpC,EAAE,EAAE,MAAM,CAAA;YACV,uEAAuE;YACvE,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;YACxB,2DAA2D;YAC3D,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,WAAW,CAAC,OAAY,GAChC,YAAY,CA6Bd;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb,oFAAoF;QACpF,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;KAC9D,CAAA;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAEtD;AAED,iGAAiG;AACjG,MAAM,MAAM,UAAU,GAAG;IACvB,6BAA6B;IAC7B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,iFAAiF;IACjF,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,GAAG,SAAS,CAAA;IACtC,kDAAkD;IAClD,IAAI,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,CAAA;IACjC,+EAA+E;IAC/E,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IAC5B,wDAAwD;IACxD,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAC7B,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAQ3D"}
@@ -2,18 +2,24 @@
2
2
  * One of a user's Tempo Accounts, as a Viem configurable account (TIP-1107) with Tempo ID's fields.
3
3
  * @module
4
4
  */
5
+ import { Address } from 'ox';
6
+ import { AccountConfig } from 'ox/tempo';
5
7
  import { Account } from 'viem/tempo';
8
+ /** A configuration that does not derive the account's address. */
9
+ export class AddressMismatchError extends Error {
10
+ name = 'TempoAccount.AddressMismatchError';
11
+ /** The address that the configuration derives. */
12
+ derived;
13
+ constructor(options) {
14
+ super(`Invalid account configuration: it derives ${options.derived}, not ${options.address}. Read the account again.`);
15
+ this.derived = options.derived;
16
+ }
17
+ }
6
18
  /**
7
- * A version 0 configuration that does not derive the account's address: Viem's
8
- * `Account.AddressMismatchError`, whose `derived` is the address that the configuration derives.
9
- */
10
- export const AddressMismatchError = Account.AddressMismatchError;
11
- /**
12
- * Rebuilds a Tempo Account from the value of {@link serialize}, with no request, through Viem's
13
- * `Account.deserialize`. On a chain with configurable accounts, a passkey among `keys` whose
14
- * `credential` derives one of the configuration's owners signs as that owner, through `getFn`.
15
- * Throws {@link AddressMismatchError} for a version 0 configuration that does not derive `address`.
16
- * A later version keeps `address`, since its configuration no longer derives it.
19
+ * Rebuilds a Tempo Account from the value of {@link serialize}, with no request. On a chain with
20
+ * configurable accounts, a passkey among `keys` that holds a credential signs as an owner, through
21
+ * `getFn`. Throws {@link AddressMismatchError} for a version 0 configuration that does not derive
22
+ * `address`. A later version keeps `address`, since its configuration no longer derives it.
17
23
  *
18
24
  * @example
19
25
  * ```ts
@@ -22,9 +28,31 @@ export const AddressMismatchError = Account.AddressMismatchError;
22
28
  */
23
29
  export function deserialize(value, options = {}) {
24
30
  const { address, config, keys, owner, realm } = value;
25
- const credentials = keys.flatMap((key) => key.credential ? [key.credential] : []);
26
- const account = Account.deserialize({ address, ...(config ? { config } : {}) }, { credentials, getFn: options.getFn });
27
- return { ...account, keys, owner, realm };
31
+ const viem = (() => {
32
+ if (!config)
33
+ return Account.fromConfig(address);
34
+ const owners = config.owners.map((entry) => {
35
+ const credential = keys.find((key) => Address.isEqual(key.address, entry.owner))?.credential;
36
+ return {
37
+ owner: credential
38
+ ? Account.fromWebAuthnP256(credential, {
39
+ getFn: options.getFn,
40
+ rpId: credential.rpId,
41
+ })
42
+ : entry.owner,
43
+ weight: entry.weight,
44
+ };
45
+ });
46
+ const { salt, threshold } = config;
47
+ const version = BigInt(config.version);
48
+ // Viem derives the address of a version 0 configuration, and refuses an address beside it.
49
+ if (version === 0n)
50
+ return Account.fromConfig({ owners, salt, threshold });
51
+ return Account.fromConfig({ address, owners, salt, threshold, version });
52
+ })();
53
+ if (!Address.isEqual(viem.address, address))
54
+ throw new AddressMismatchError({ address, derived: viem.address });
55
+ return { ...viem, keys, owner, realm };
28
56
  }
29
57
  /**
30
58
  * Instantiates a {@link TempoAccount}.
@@ -52,7 +80,12 @@ export function from(value) {
52
80
  * ```
53
81
  */
54
82
  export function serialize(account) {
55
- const { keys, owner, realm } = account;
56
- return { ...Account.serialize(account), keys, owner, realm };
83
+ return {
84
+ address: account.address,
85
+ ...(account.config ? { config: AccountConfig.toRpc(account.config) } : {}),
86
+ keys: account.keys,
87
+ owner: account.owner,
88
+ realm: account.realm,
89
+ };
57
90
  }
58
91
  //# sourceMappingURL=TempoAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TempoAccount.js","sourceRoot":"","sources":["../src/TempoAccount.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAA;AA2DhE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CACzB,KAAiB,EACjB,OAAO,GAAwB,EAAE;IAEjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CACvC,CAAA;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CACjC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAC1C,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CACtC,CAAA;IACD,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAC3C,CAAC;AASD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,IAAI,CAAC,KAAmB;IACtC,OAAO,KAAK,CAAA;AACd,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,OAAqB;IAC7C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IACtC,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"TempoAccount.js","sourceRoot":"","sources":["../src/TempoAccount.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@ import type * as AccessKey from '../AccessKey.js';
5
5
  * secp256k1 access key.
6
6
  */
7
7
  export declare function resolve(accessKey: Account.Account | undefined): Promise<resolve.ReturnType>;
8
+ /**
9
+ * Rebuilds an access key that {@link resolve} generated from its material. Returns `undefined` for the
10
+ * empty material of the app's own access key.
11
+ */
12
+ export declare function restore(material: AccessKey.Material): resolve.ReturnType | undefined;
8
13
  export declare namespace resolve {
9
14
  type ReturnType = {
10
15
  /** A Viem account that signs with the access key. */
@@ -1 +1 @@
1
- {"version":3,"file":"accessKey.d.ts","sourceRoot":"","sources":["../../src/internal/accessKey.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAa,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAEjD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,GACrC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAgB7B;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,UAAU,GAAG;QAChB,qDAAqD;QACrD,SAAS,EAAE,OAAO,CAAC,OAAO,CAAA;QAC1B,kGAAkG;QAClG,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAA;KAC7B,CAAA;CACF"}
1
+ {"version":3,"file":"accessKey.d.ts","sourceRoot":"","sources":["../../src/internal/accessKey.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAa,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAEjD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,GACrC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAgB7B;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAC3B,OAAO,CAAC,UAAU,GAAG,SAAS,CAMhC;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,UAAU,GAAG;QAChB,qDAAqD;QACrD,SAAS,EAAE,OAAO,CAAC,OAAO,CAAA;QAC1B,kGAAkG;QAClG,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAA;KAC7B,CAAA;CACF"}
@@ -24,4 +24,15 @@ export async function resolve(accessKey) {
24
24
  material: { privateKey },
25
25
  };
26
26
  }
27
+ /**
28
+ * Rebuilds an access key that {@link resolve} generated from its material. Returns `undefined` for the
29
+ * empty material of the app's own access key.
30
+ */
31
+ export function restore(material) {
32
+ if (material.keyPair)
33
+ return { accessKey: Account.fromWebCryptoP256(material.keyPair), material };
34
+ if (material.privateKey)
35
+ return { accessKey: Account.fromSecp256k1(material.privateKey), material };
36
+ return undefined;
37
+ }
27
38
  //# sourceMappingURL=accessKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessKey.js","sourceRoot":"","sources":["../../src/internal/accessKey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAG/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAsC;IAEtC,IAAI,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IAEjD,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAA;QACnD,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC7C,QAAQ,EAAE,EAAE,OAAO,EAAE;SACtB,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAA;IAC/C,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,QAAQ,EAAE,EAAE,UAAU,EAAE;KACzB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"accessKey.js","sourceRoot":"","sources":["../../src/internal/accessKey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAG/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAsC;IAEtC,IAAI,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IAEjD,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAA;QACnD,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC7C,QAAQ,EAAE,EAAE,OAAO,EAAE;SACtB,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAA;IAC/C,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,QAAQ,EAAE,EAAE,UAAU,EAAE;KACzB,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CACrB,QAA4B;IAE5B,IAAI,QAAQ,CAAC,OAAO;QAClB,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC7E,IAAI,QAAQ,CAAC,UAAU;QACrB,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC5E,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The app's relay route, which pays the fees of its pages' transactions: its handler on the app's
3
+ * server, which the `relay` plugin serves, and the page's transport, which the `viem` plugin's
4
+ * `relay` option builds. The entries of the package do not export it.
5
+ * @module
6
+ */
7
+ import { type HttpTransportConfig, type Transport } from 'viem';
8
+ import { Relay } from 'viem/tempo';
9
+ /**
10
+ * Returns the handler of the relay route. With `apiKey`, it forwards each request to the Tempo
11
+ * API's `/rpc/sponsor` of `chainId`, whose sponsor pays the fees. Otherwise it serves Viem's relay
12
+ * of `Relay.create` with the options. The handler checks no caller, so any caller that reaches the
13
+ * route spends the fee payer's balance, within the limits of the API key or of the relay's plugins.
14
+ */
15
+ export declare function handler(options: handler.Options): handler.ReturnType;
16
+ export declare namespace handler {
17
+ type Options = Options.TempoApi | Options.Viem;
18
+ namespace Options {
19
+ /** The options of the Tempo API mode, whose sponsor pays the fees. */
20
+ type TempoApi = {
21
+ /** The app's Tempo API key, with the `rpc-relay:sponsor` scope. Its sponsor pays the fees. */
22
+ apiKey: string;
23
+ /** The origin of the Tempo API. Defaults to `https://api.tempo.xyz`. */
24
+ apiUrl?: string | undefined;
25
+ /** The chain whose transactions the route relays. */
26
+ chainId: number;
27
+ };
28
+ /** The options of the Viem relay mode: those of Viem's `Relay.create`. */
29
+ type Viem = Relay.create.Options & {
30
+ apiKey?: undefined;
31
+ /** The chain whose transactions the route relays. */
32
+ chainId: number;
33
+ };
34
+ }
35
+ /** The handler: a function of the Fetch API from a request to its response. */
36
+ type ReturnType = {
37
+ /** Serves `request`, and returns its response. */
38
+ fetch: (request: Request) => Promise<Response>;
39
+ };
40
+ }
41
+ /**
42
+ * Returns a transport that sends the sponsorship requests of a transaction to the relay route at
43
+ * `url`, and every other request to `rpc`. Viem's `withRelay` selects the requests: a fill, and a
44
+ * raw transaction without its fee payer's signature.
45
+ */
46
+ export declare function transport(options: transport.Options): Transport;
47
+ export declare namespace transport {
48
+ type Options = HttpTransportConfig & {
49
+ /** The transport of every request but a sponsorship's. Defaults to `http()`, the chain's own RPC. */
50
+ rpc?: Transport | undefined;
51
+ /** The URL of the app's relay route, such as `/api/relay`. */
52
+ url: string;
53
+ };
54
+ }
55
+ //# sourceMappingURL=relayRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relayRoute.d.ts","sourceRoot":"","sources":["../../src/internal/relayRoute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAQ,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,MAAM,CAAA;AACrE,OAAO,EAAE,KAAK,EAAa,MAAM,YAAY,CAAA;AAE7C;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAUpE;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;IAE9C,UAAU,OAAO,CAAC;QAChB,sEAAsE;QACtE,KAAK,QAAQ,GAAG;YACd,8FAA8F;YAC9F,MAAM,EAAE,MAAM,CAAA;YACd,wEAAwE;YACxE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC3B,qDAAqD;YACrD,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;QAED,0EAA0E;QAC1E,KAAK,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG;YACjC,MAAM,CAAC,EAAE,SAAS,CAAA;YAClB,qDAAqD;YACrD,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;KACF;IAED,+EAA+E;IAC/E,KAAK,UAAU,GAAG;QAChB,kDAAkD;QAClD,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KAC/C,CAAA;CACF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAG/D;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,OAAO,GAAG,mBAAmB,GAAG;QACnC,qGAAqG;QACrG,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;QAC3B,8DAA8D;QAC9D,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The app's relay route, which pays the fees of its pages' transactions: its handler on the app's
3
+ * server, which the `relay` plugin serves, and the page's transport, which the `viem` plugin's
4
+ * `relay` option builds. The entries of the package do not export it.
5
+ * @module
6
+ */
7
+ import { http } from 'viem';
8
+ import { Relay, withRelay } from 'viem/tempo';
9
+ /**
10
+ * Returns the handler of the relay route. With `apiKey`, it forwards each request to the Tempo
11
+ * API's `/rpc/sponsor` of `chainId`, whose sponsor pays the fees. Otherwise it serves Viem's relay
12
+ * of `Relay.create` with the options. The handler checks no caller, so any caller that reaches the
13
+ * route spends the fee payer's balance, within the limits of the API key or of the relay's plugins.
14
+ */
15
+ export function handler(options) {
16
+ if (options.apiKey !== undefined)
17
+ return tempoApi(options);
18
+ const { apiKey: _apiKey, chainId, ...relayOptions } = options;
19
+ // `Relay.create` takes `client` and `getClient` in separate overloads, and no overload takes
20
+ // their union, which the options hold.
21
+ const relay = Relay.create(relayOptions);
22
+ // Viem's fill names no chain, so each request relays on the route's chain.
23
+ return { fetch: (request) => relay.fetch(request, { chainId }) };
24
+ }
25
+ /**
26
+ * Returns a transport that sends the sponsorship requests of a transaction to the relay route at
27
+ * `url`, and every other request to `rpc`. Viem's `withRelay` selects the requests: a fill, and a
28
+ * raw transaction without its fee payer's signature.
29
+ */
30
+ export function transport(options) {
31
+ const { rpc = http(), url, ...httpOptions } = options;
32
+ return withRelay(rpc, http(url, httpOptions));
33
+ }
34
+ /** Returns the handler of the Tempo API mode, which forwards each request with the API key. */
35
+ function tempoApi(options) {
36
+ const { apiKey, apiUrl = 'https://api.tempo.xyz', chainId } = options;
37
+ return {
38
+ async fetch(request) {
39
+ if (request.method !== 'POST')
40
+ return new Response(null, { headers: { allow: 'POST' }, status: 405 });
41
+ const response = await fetch(new URL(`/rpc/sponsor/${chainId}`, apiUrl), {
42
+ body: await request.text(),
43
+ headers: {
44
+ 'content-type': 'application/json',
45
+ 'tempo-api-key': apiKey,
46
+ },
47
+ method: 'POST',
48
+ }).catch(() => undefined);
49
+ if (!response)
50
+ return Response.json({
51
+ error: {
52
+ code: -32002,
53
+ data: { reason: 'temporarily_unavailable' },
54
+ message: 'Sponsor unavailable: the request to the Tempo API failed. Retry later.',
55
+ },
56
+ id: null,
57
+ jsonrpc: '2.0',
58
+ }, { status: 503 });
59
+ // A Node `fetch` decodes a compressed body, so the response forwards none of its encoding.
60
+ return new Response(response.body, {
61
+ headers: { 'content-type': 'application/json' },
62
+ status: response.status,
63
+ });
64
+ },
65
+ };
66
+ }
67
+ //# sourceMappingURL=relayRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relayRoute.js","sourceRoot":"","sources":["../../src/internal/relayRoute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAA4C,MAAM,MAAM,CAAA;AACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,OAAwB;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAA;IAC7D,6FAA6F;IAC7F,uCAAuC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACxB,YAAkE,CACnE,CAAA;IACD,2EAA2E;IAC3E,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;AAClE,CAAC;AA+BD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAA0B;IAClD,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;IACrD,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;AAC/C,CAAC;AAWD,+FAA+F;AAC/F,SAAS,QAAQ,CAAC,OAAiC;IACjD,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,uBAAuB,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAErE,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,OAAO;YACjB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;gBAC3B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,gBAAgB,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE;gBACvE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE;gBAC1B,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,MAAM;iBACxB;gBACD,MAAM,EAAE,MAAM;aACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACzB,IAAI,CAAC,QAAQ;gBACX,OAAO,QAAQ,CAAC,IAAI,CAClB;oBACE,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,IAAI,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE;wBAC3C,OAAO,EACL,wEAAwE;qBAC3E;oBACD,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,KAAK;iBACf,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;YACH,2FAA2F;YAC3F,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACjC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/internal/signer.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAEL,KAAK,MAAM,EAIZ,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAG7C;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,YAAY,GAAG,SAAS,CAwC1B;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb;;;;WAIG;QACH,WAAW,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;QAC7D,yEAAyE;QACzE,OAAO,EAAE,MAAM,CAAA;QACf;;;;WAIG;QACH,UAAU,CAAC,EACP,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAC3D,SAAS,CAAA;QACb;;;;WAIG;QACH,MAAM,EAAE,WAAW,GAAG,UAAU,CAAA;KACjC,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,CA4BtE"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/internal/signer.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAEL,KAAK,MAAM,EAIZ,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAG7C;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,YAAY,GAAG,SAAS,CAwC1B;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,OAAO,GAAG;QACb;;;;WAIG;QACH,WAAW,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;QAC7D,yEAAyE;QACzE,OAAO,EAAE,MAAM,CAAA;QACf;;;;WAIG;QACH,UAAU,CAAC,EACP,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAC3D,SAAS,CAAA;QACb;;;;WAIG;QACH,MAAM,EAAE,WAAW,GAAG,UAAU,CAAA;KACjC,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,CA4BtE"}
@@ -5,7 +5,7 @@
5
5
  * @module
6
6
  */
7
7
  import { Address } from 'ox';
8
- import {} from 'viem';
8
+ import { hashMessage, hashTypedData, } from 'viem';
9
9
  import { toAccount } from 'viem/accounts';
10
10
  import { Account } from 'viem/tempo';
11
11
  import * as Actions from '../Actions.js';
@@ -116,8 +116,8 @@ function ownerSigners(config, options) {
116
116
  if (weight < Number(configuration.threshold))
117
117
  return undefined;
118
118
  return {
119
- signMessage: (parameters) => account.signMessage(parameters),
120
- signTypedData: (typedData) => account.signTypedData(typedData),
119
+ signMessage: (parameters) => account.sign({ hash: hashMessage(parameters.message) }),
120
+ signTypedData: (typedData) => account.sign({ hash: hashTypedData(typedData) }),
121
121
  };
122
122
  }
123
123
  // On a chain without configurable accounts, a passkey of the user's whose key is the account's
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/internal/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/internal/signer.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,6 @@ export { email } from './email.js';
18
18
  export { funding } from './funding.js';
19
19
  export { passkey } from './passkey.js';
20
20
  export { redirect } from './redirect.js';
21
+ export { relay } from './relay.js';
21
22
  export { viem } from './viem.js';
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
@@ -18,5 +18,6 @@ export { email } from './email.js';
18
18
  export { funding } from './funding.js';
19
19
  export { passkey } from './passkey.js';
20
20
  export { redirect } from './redirect.js';
21
+ export { relay } from './relay.js';
21
22
  export { viem } from './viem.js';
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * The plugin of an app's relay route: `tempoId.relay`, the handler on the app's server that pays the
3
+ * fees of its pages' transactions, through the Tempo API's sponsor or the app's own fee payer.
4
+ * @module
5
+ */
6
+ import { type LocalAccount } from 'viem';
7
+ import { Relay } from 'viem/tempo';
8
+ import * as RelayRoute from '../internal/relayRoute.js';
9
+ import * as Plugin from '../Plugin.js';
10
+ import { viem } from './viem.js';
11
+ /**
12
+ * Returns the plugin of the app's relay route, which adds `tempoId.relay`: a handler of the Fetch
13
+ * API that the app's server serves at the URL of the page's `viem({ relay })`.
14
+ *
15
+ * With `apiKey`, the handler forwards each request to the Tempo API's `/rpc/sponsor`, whose sponsor
16
+ * pays the fees. Otherwise it serves Viem's relay over the chains and transports of the `viem`
17
+ * plugin, and `account` pays the fees through `Relay.feePayer`. Without a `viem` plugin in
18
+ * `plugins`, it adds the Viem client itself, as `viem()` does.
19
+ *
20
+ * The handler checks no caller, so any caller that reaches the route spends the fee payer's balance,
21
+ * within the limits of the API key or of the relay's plugins.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const tempoId = Id.create({
26
+ * clientId: 'https://app.example',
27
+ * plugins: [relay({ account: privateKeyToAccount(env.FEE_PAYER_KEY) })],
28
+ * })
29
+ *
30
+ * app.post('/api/relay', (c) => tempoId.relay.fetch(c.req.raw))
31
+ * ```
32
+ */
33
+ export declare function relay(options: relay.Options): Plugin.Plugin<"relay", unknown, relay.Members>;
34
+ export declare namespace relay {
35
+ type Options = Options.TempoApi | Options.Viem;
36
+ namespace Options {
37
+ /** The options of the Tempo API mode, whose sponsor pays the fees. */
38
+ type TempoApi = {
39
+ account?: undefined;
40
+ /** The app's Tempo API key, with the `rpc-relay:sponsor` scope. Its sponsor pays the fees. */
41
+ apiKey: string;
42
+ /** The origin of the Tempo API. Defaults to `https://api.tempo.xyz`. */
43
+ apiUrl?: string | undefined;
44
+ /**
45
+ * The chain whose transactions the route relays. A fill names no chain, so a route serves one
46
+ * chain. Defaults to the instance's `chainId`.
47
+ */
48
+ chainId?: number | undefined;
49
+ };
50
+ /** The options of the Viem relay mode: those of Viem's `Relay.handleRequest`, and `account`. */
51
+ type Viem = Relay.handleRequest.Options & {
52
+ /** The fee payer, which signs for the fees of each transaction through `Relay.feePayer`. */
53
+ account?: LocalAccount | undefined;
54
+ apiKey?: undefined;
55
+ /**
56
+ * The chain of a request that names none, such as Viem's fill. Defaults to the instance's
57
+ * `chainId`.
58
+ */
59
+ chainId?: number | undefined;
60
+ };
61
+ }
62
+ /**
63
+ * The members that the plugin adds to the instance: `relay`, and the `viem` plugin's members when
64
+ * `plugins` holds no `viem` plugin.
65
+ */
66
+ type Members = {
67
+ /** The handler of the app's relay route. */
68
+ relay: RelayRoute.handler.ReturnType;
69
+ /** The Viem client, as the `viem` plugin adds it. */
70
+ viem: viem.Namespace;
71
+ } & viem.Actions;
72
+ }
73
+ //# sourceMappingURL=relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/plugins/relay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,kDA+D3C;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;IAE9C,UAAU,OAAO,CAAC;QAChB,sEAAsE;QACtE,KAAK,QAAQ,GAAG;YACd,OAAO,CAAC,EAAE,SAAS,CAAA;YACnB,8FAA8F;YAC9F,MAAM,EAAE,MAAM,CAAA;YACd,wEAAwE;YACxE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC3B;;;eAGG;YACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC7B,CAAA;QAED,gGAAgG;QAChG,KAAK,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG;YACxC,4FAA4F;YAC5F,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;YAClC,MAAM,CAAC,EAAE,SAAS,CAAA;YAClB;;;eAGG;YACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC7B,CAAA;KACF;IAED;;;OAGG;IACH,KAAK,OAAO,GAAG;QACb,4CAA4C;QAC5C,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAA;QACpC,qDAAqD;QACrD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;KACrB,GAAG,IAAI,CAAC,OAAO,CAAA;CACjB"}