accounts 0.10.5 → 0.10.7

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 (50) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/core/AccessKey.d.ts +87 -0
  3. package/dist/core/AccessKey.d.ts.map +1 -1
  4. package/dist/core/AccessKey.js +109 -1
  5. package/dist/core/AccessKey.js.map +1 -1
  6. package/dist/core/Account.d.ts +2 -36
  7. package/dist/core/Account.d.ts.map +1 -1
  8. package/dist/core/Account.js +8 -52
  9. package/dist/core/Account.js.map +1 -1
  10. package/dist/core/Provider.d.ts.map +1 -1
  11. package/dist/core/Provider.js +16 -3
  12. package/dist/core/Provider.js.map +1 -1
  13. package/dist/core/Schema.d.ts +1 -1
  14. package/dist/core/Store.d.ts +32 -2
  15. package/dist/core/Store.d.ts.map +1 -1
  16. package/dist/core/Store.js +31 -26
  17. package/dist/core/Store.js.map +1 -1
  18. package/dist/core/adapters/dialog.d.ts.map +1 -1
  19. package/dist/core/adapters/dialog.js +10 -17
  20. package/dist/core/adapters/dialog.js.map +1 -1
  21. package/dist/core/adapters/local.d.ts.map +1 -1
  22. package/dist/core/adapters/local.js +13 -33
  23. package/dist/core/adapters/local.js.map +1 -1
  24. package/dist/core/adapters/turnkey.d.ts +10 -18
  25. package/dist/core/adapters/turnkey.d.ts.map +1 -1
  26. package/dist/core/adapters/turnkey.js +31 -43
  27. package/dist/core/adapters/turnkey.js.map +1 -1
  28. package/dist/core/adapters/webAuthn.d.ts +11 -1
  29. package/dist/core/adapters/webAuthn.d.ts.map +1 -1
  30. package/dist/core/adapters/webAuthn.js +8 -2
  31. package/dist/core/adapters/webAuthn.js.map +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/core/AccessKey.test.ts +453 -2
  38. package/src/core/AccessKey.ts +206 -4
  39. package/src/core/Account.test.ts +1 -239
  40. package/src/core/Account.ts +9 -90
  41. package/src/core/Provider.test.ts +22 -23
  42. package/src/core/Provider.ts +17 -4
  43. package/src/core/Store.test.ts +190 -0
  44. package/src/core/Store.ts +68 -33
  45. package/src/core/adapters/dialog.ts +10 -16
  46. package/src/core/adapters/local.ts +43 -56
  47. package/src/core/adapters/turnkey.test.ts +40 -1
  48. package/src/core/adapters/turnkey.ts +122 -124
  49. package/src/core/adapters/webAuthn.ts +18 -3
  50. package/src/index.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # accounts
2
2
 
3
+ ## 0.10.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 7cb2162: Exposed the `Adapter` namespace from the package root so consumers can author custom adapters with `Adapter.define`.
8
+ - 195d6e8: Fixed scoped access key selection to only match keys whose scopes covered the current transaction calls.
9
+ - 70814cd: Made `turnkey` `createAccount` optional and default registration requests to `loadAccounts`.
10
+
11
+ ## 0.10.6
12
+
13
+ ### Patch Changes
14
+
15
+ - e12ae75: Added `auth` option to the `webAuthn` adapter, mirroring the Provider `auth` capability shape (`string | { url, ... }`); the existing `authUrl` option is preserved as a deprecated alias.
16
+
17
+ ```diff
18
+ - webAuthn({ authUrl: '/webauthn' })
19
+ + webAuthn({ auth: '/webauthn' })
20
+ ```
21
+
3
22
  ## 0.10.5
4
23
 
5
24
  ### Patch Changes
@@ -1,7 +1,39 @@
1
1
  import { Address, Hex, WebCryptoP256 } from 'ox';
2
2
  import { KeyAuthorization } from 'ox/tempo';
3
3
  import { Account as TempoAccount } from 'viem/tempo';
4
+ import type { OneOf } from '../internal/types.js';
4
5
  import type * as Store from './Store.js';
6
+ /** Access key entry stored alongside accounts. */
7
+ export type AccessKey = {
8
+ /** Access key address. */
9
+ address: Address.Address;
10
+ /** Owner of the access key. */
11
+ access: Address.Address;
12
+ /** Unix timestamp when the access key expires. */
13
+ expiry?: number | undefined;
14
+ /** Signed key authorization to attach to the first transaction. Consumed on use. */
15
+ keyAuthorization?: KeyAuthorization.Signed | undefined;
16
+ /** Key type. */
17
+ keyType: 'secp256k1' | 'p256' | 'webAuthn' | 'webCrypto';
18
+ /** TIP-20 spending limits for the access key. */
19
+ limits?: {
20
+ token: Address.Address;
21
+ limit: bigint;
22
+ period?: number | undefined;
23
+ }[] | undefined;
24
+ /** Call scopes restricting which contracts/selectors this key can call. */
25
+ scopes?: {
26
+ address: Address.Address;
27
+ selector?: Hex.Hex | string | undefined;
28
+ recipients?: readonly Address.Address[] | undefined;
29
+ }[] | undefined;
30
+ } & OneOf<{} | {
31
+ /** The exported private key backing the access key. */
32
+ privateKey: Hex.Hex;
33
+ } | {
34
+ /** The WebCrypto key pair backing the access key. */
35
+ keyPair: Awaited<ReturnType<typeof WebCryptoP256.createKeyPair>>;
36
+ }>;
5
37
  /** Returns the pending key authorization for an access key account without removing it. */
6
38
  export declare function getPending(account: TempoAccount.Account, options: {
7
39
  store: Store.Store;
@@ -20,14 +52,69 @@ export declare namespace generate {
20
52
  keyPair: Awaited<globalThis.ReturnType<typeof WebCryptoP256.createKeyPair>>;
21
53
  };
22
54
  }
55
+ /** Prepares an unsigned key authorization and local key material when needed. */
56
+ export declare function prepare(options: prepare.Options): Promise<prepare.ReturnType>;
57
+ export declare namespace prepare {
58
+ /** Options for {@link prepare}. */
59
+ type Options = {
60
+ /** External access key address. Alternative to `publicKey`. */
61
+ address?: Address.Address | undefined;
62
+ /** Chain ID the key authorization is scoped to. */
63
+ chainId: bigint | number;
64
+ /** Unix timestamp when the key expires. */
65
+ expiry: number;
66
+ /** External key type. Defaults to `secp256k1` for external keys. */
67
+ keyType?: 'secp256k1' | 'p256' | 'webAuthn' | undefined;
68
+ /** TIP-20 spending limits for this key. */
69
+ limits?: readonly KeyAuthorization.TokenLimit[] | undefined;
70
+ /** External public key to derive the access key address from. */
71
+ publicKey?: Hex.Hex | undefined;
72
+ /** Call scopes restricting which contracts/selectors this key can call. */
73
+ scopes?: readonly KeyAuthorization.Scope[] | undefined;
74
+ };
75
+ /** Prepared unsigned key authorization and optional local key material. */
76
+ type ReturnType = {
77
+ /** Unsigned key authorization to sign with the root account. */
78
+ keyAuthorization: KeyAuthorization.KeyAuthorization<false>;
79
+ /** Generated WebCrypto key pair for local access keys. */
80
+ keyPair?: Awaited<globalThis.ReturnType<typeof WebCryptoP256.createKeyPair>> | undefined;
81
+ };
82
+ }
83
+ /** Hydrates an access key entry to a viem Account. Only works for locally-generated keys. */
84
+ export declare function hydrate(accessKey: AccessKey): TempoAccount.Account;
23
85
  /** Removes an access key entry for the given account from the store. */
24
86
  export declare function remove(account: TempoAccount.Account, options: {
25
87
  store: Store.Store;
26
88
  }): void;
89
+ /** Invalidates a stored access key when the error proves it is no longer usable. */
90
+ export declare function invalidate(account: TempoAccount.Account, error: unknown, options: invalidate.Options): boolean;
91
+ export declare namespace invalidate {
92
+ /** Options for {@link invalidate}. */
93
+ type Options = {
94
+ /** Reactive state store. */
95
+ store: Store.Store;
96
+ };
97
+ }
27
98
  /** Permanently removes the pending key authorization for an access key account. */
28
99
  export declare function removePending(account: TempoAccount.Account, options: {
29
100
  store: Store.Store;
30
101
  }): void;
102
+ /** Selects a locally-signable access key for a root account, removing expired keys. */
103
+ export declare function select(options: select.Options): AccessKey | undefined;
104
+ export declare namespace select {
105
+ /** Options for {@link select}. */
106
+ type Options = {
107
+ /** Root account address. */
108
+ address: Address.Address;
109
+ /** Calls to match against access key scopes. */
110
+ calls?: readonly {
111
+ to?: Address.Address | undefined;
112
+ data?: Hex.Hex | undefined;
113
+ }[] | undefined;
114
+ /** Reactive state store. */
115
+ store: Store.Store;
116
+ };
117
+ }
31
118
  /** Removes an access key from the store. */
32
119
  export declare function revoke(options: revoke.Options): void;
33
120
  export declare namespace revoke {
@@ -1 +1 @@
1
- {"version":3,"file":"AccessKey.d.ts","sourceRoot":"","sources":["../../src/core/AccessKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,2FAA2F;AAC3F,wBAAgB,UAAU,CACxB,OAAO,EAAE,YAAY,CAAC,OAAO,EAC7B,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CAAE,GAC9B,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAOrC;AAED,wDAAwD;AACxD,wBAAsB,QAAQ,CAAC,OAAO,GAAE,QAAQ,CAAC,OAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAQ3F;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAK,OAAO,GAAG;QACb,gDAAgD;QAChD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,GAAG,SAAS,CAAA;KAC3C,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,wCAAwC;QACxC,SAAS,EAAE,YAAY,CAAC,gBAAgB,CAAA;QACxC,0DAA0D;QAC1D,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;KAC5E,CAAA;CACF;AAED,wEAAwE;AACxE,wBAAgB,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CAAE,GAAG,IAAI,CAS3F;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,CAAC,OAAO,EAC7B,OAAO,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CAAE,GAC9B,IAAI,CAWN;AAED,4CAA4C;AAC5C,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAMpD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,4BAA4B;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,4BAA4B;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;KACnB,CAAA;CACF;AAED,4EAA4E;AAC5E,wBAAgB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CA2BhD;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,OAAO,GAAG;QACb,sDAAsD;QACtD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,mEAAmE;QACnE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAA;QACzC,uDAAuD;QACvD,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;QAChC,8FAA8F;QAC9F,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAA;QAC7E,4BAA4B;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;KACnB,CAAA;CACF"}
1
+ {"version":3,"file":"AccessKey.d.ts","sourceRoot":"","sources":["../../src/core/AccessKey.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
- import { Address, Hex, WebCryptoP256 } from 'ox';
1
+ import { AbiFunction, Address, Hex, Provider, PublicKey, WebCryptoP256 } from 'ox';
2
2
  import { KeyAuthorization } from 'ox/tempo';
3
3
  import { Account as TempoAccount } from 'viem/tempo';
4
+ import * as ExecutionError from './ExecutionError.js';
5
+ const removalErrorNames = new Set([
6
+ 'InvalidSignature',
7
+ 'InvalidSignatureFormat',
8
+ 'InvalidSignatureType',
9
+ 'KeyAlreadyRevoked',
10
+ 'KeyExpired',
11
+ 'KeyNotFound',
12
+ 'SignatureTypeMismatch',
13
+ ]);
4
14
  /** Returns the pending key authorization for an access key account without removing it. */
5
15
  export function getPending(account, options) {
6
16
  if (account.source !== 'accessKey')
@@ -18,6 +28,47 @@ export async function generate(options = {}) {
18
28
  const accessKey = TempoAccount.fromWebCryptoP256(keyPair, account ? { access: account } : undefined);
19
29
  return { accessKey, keyPair };
20
30
  }
31
+ /** Prepares an unsigned key authorization and local key material when needed. */
32
+ export async function prepare(options) {
33
+ const { address, chainId, expiry, keyType, limits, publicKey, scopes } = options;
34
+ if (address || publicKey) {
35
+ const keyAuthorization = KeyAuthorization.from({
36
+ address: address ?? Address.fromPublicKey(PublicKey.from(publicKey)),
37
+ chainId: BigInt(chainId),
38
+ expiry,
39
+ limits,
40
+ scopes,
41
+ type: keyType ?? 'secp256k1',
42
+ });
43
+ return { keyAuthorization };
44
+ }
45
+ const keyPair = await WebCryptoP256.createKeyPair();
46
+ const keyAuthorization = KeyAuthorization.from({
47
+ address: Address.fromPublicKey(PublicKey.from(keyPair.publicKey)),
48
+ chainId: BigInt(chainId),
49
+ expiry,
50
+ limits,
51
+ scopes,
52
+ type: 'p256',
53
+ });
54
+ return { keyAuthorization, keyPair };
55
+ }
56
+ /** Hydrates an access key entry to a viem Account. Only works for locally-generated keys. */
57
+ export function hydrate(accessKey) {
58
+ if ('keyPair' in accessKey && accessKey.keyPair)
59
+ return TempoAccount.fromWebCryptoP256(accessKey.keyPair, { access: accessKey.access });
60
+ if ('privateKey' in accessKey && accessKey.privateKey) {
61
+ switch (accessKey.keyType) {
62
+ case 'secp256k1':
63
+ return TempoAccount.fromSecp256k1(accessKey.privateKey, { access: accessKey.access });
64
+ case 'p256':
65
+ return TempoAccount.fromP256(accessKey.privateKey, { access: accessKey.access });
66
+ }
67
+ }
68
+ throw new Provider.UnauthorizedError({
69
+ message: 'External access key cannot be hydrated for signing.',
70
+ });
71
+ }
21
72
  /** Removes an access key entry for the given account from the store. */
22
73
  export function remove(account, options) {
23
74
  if (account.source !== 'accessKey')
@@ -28,6 +79,15 @@ export function remove(account, options) {
28
79
  accessKeys: state.accessKeys.filter((a) => a.address?.toLowerCase() !== accessKeyAddress?.toLowerCase()),
29
80
  }));
30
81
  }
82
+ /** Invalidates a stored access key when the error proves it is no longer usable. */
83
+ export function invalidate(account, error, options) {
84
+ if (account.source !== 'accessKey')
85
+ return false;
86
+ if (!shouldRemoveForError(error))
87
+ return false;
88
+ remove(account, options);
89
+ return true;
90
+ }
31
91
  /** Permanently removes the pending key authorization for an access key account. */
32
92
  export function removePending(account, options) {
33
93
  if (account.source !== 'accessKey')
@@ -40,6 +100,26 @@ export function removePending(account, options) {
40
100
  : a),
41
101
  }));
42
102
  }
103
+ /** Selects a locally-signable access key for a root account, removing expired keys. */
104
+ export function select(options) {
105
+ const { address, calls, store } = options;
106
+ const { accessKeys } = store.getState();
107
+ let accessKeys_next = accessKeys;
108
+ for (const key of accessKeys) {
109
+ if (key.access.toLowerCase() !== address.toLowerCase())
110
+ continue;
111
+ if (!('keyPair' in key && !!key.keyPair) && !('privateKey' in key && !!key.privateKey))
112
+ continue;
113
+ if (key.expiry && key.expiry < Date.now() / 1000) {
114
+ accessKeys_next = accessKeys_next.filter((a) => a !== key);
115
+ store.setState({ accessKeys: accessKeys_next });
116
+ continue;
117
+ }
118
+ if (scopesMatch(key, { calls }))
119
+ return key;
120
+ }
121
+ return undefined;
122
+ }
43
123
  /** Removes an access key from the store. */
44
124
  export function revoke(options) {
45
125
  const { address, store } = options;
@@ -48,6 +128,34 @@ export function revoke(options) {
48
128
  accessKeys: accessKeys.filter((a) => a.access.toLowerCase() !== address.toLowerCase()),
49
129
  });
50
130
  }
131
+ function scopesMatch(key, options) {
132
+ if (!key.scopes)
133
+ return true;
134
+ if (!options.calls)
135
+ return false;
136
+ return options.calls.every((call) => {
137
+ if (!call.to)
138
+ return false;
139
+ const callTo = call.to.toLowerCase();
140
+ const callSelector = call.data?.slice(0, 10).toLowerCase();
141
+ return key.scopes.some((scope) => {
142
+ if (scope.address.toLowerCase() !== callTo)
143
+ return false;
144
+ if (!scope.selector)
145
+ return true;
146
+ const scopeSelector = (scope.selector.startsWith('0x') && scope.selector.length === 10
147
+ ? scope.selector
148
+ : AbiFunction.getSelector(scope.selector)).toLowerCase();
149
+ return callSelector === scopeSelector;
150
+ });
151
+ });
152
+ }
153
+ function shouldRemoveForError(error) {
154
+ if (!(error instanceof Error))
155
+ return false;
156
+ const parsed = ExecutionError.parse(error);
157
+ return removalErrorNames.has(parsed.errorName);
158
+ }
51
159
  /** Saves an access key to the store with its one-time key authorization. */
52
160
  export function save(options) {
53
161
  const { address, keyAuthorization, keyPair, privateKey, store } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"AccessKey.js","sourceRoot":"","sources":["../../src/core/AccessKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccessKey.js","sourceRoot":"","sources":["../../src/core/AccessKey.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { type WebCryptoP256 } from 'ox';
2
- import { type KeyAuthorization } from 'ox/tempo';
3
2
  import type { Hex } from 'viem';
4
3
  import type { Address, JsonRpcAccount } from 'viem/accounts';
5
4
  import { Account as TempoAccount } from 'viem/tempo';
@@ -33,37 +32,6 @@ export type Store = {
33
32
  rpId: string;
34
33
  origin: string;
35
34
  }>;
36
- /** Access key entry stored alongside accounts. */
37
- export type AccessKey = {
38
- /** Access key address. */
39
- address: Address;
40
- /** Owner of the access key. */
41
- access: Address;
42
- /** Unix timestamp when the access key expires. */
43
- expiry?: number | undefined;
44
- /** Signed key authorization to attach to the first transaction. Consumed on use. */
45
- keyAuthorization?: KeyAuthorization.Signed | undefined;
46
- /** Key type. */
47
- keyType: 'secp256k1' | 'p256' | 'webAuthn' | 'webCrypto';
48
- /** TIP-20 spending limits for the access key. */
49
- limits?: {
50
- token: Address;
51
- limit: bigint;
52
- period?: number | undefined;
53
- }[] | undefined;
54
- /** Call scopes restricting which contracts/selectors this key can call. */
55
- scopes?: {
56
- address: Address;
57
- selector?: Hex | string | undefined;
58
- recipients?: readonly Address[] | undefined;
59
- }[] | undefined;
60
- } & OneOf<{} | {
61
- /** The exported private key backing the access key. */
62
- privateKey: Hex;
63
- } | {
64
- /** The WebCrypto key pair backing the access key. */
65
- keyPair: Awaited<ReturnType<typeof WebCryptoP256.createKeyPair>>;
66
- }>;
67
35
  /** Resolves a viem Account from the store by address (or active account). */
68
36
  export declare function find(options: find.Options & {
69
37
  signable: true;
@@ -71,9 +39,9 @@ export declare function find(options: find.Options & {
71
39
  export declare function find(options: find.Options): TempoAccount.Account | JsonRpcAccount;
72
40
  export declare namespace find {
73
41
  type Options = {
74
- /** Whether to resolve an access key for this account. @default true */
42
+ /** Whether to prefer an access key for this account. @default true */
75
43
  accessKey?: boolean | undefined;
76
- /** Address to resolve. Defaults to the active account. */
44
+ /** Address to find. Defaults to the active account. */
77
45
  address?: Address | undefined;
78
46
  /** Calls to match against access key scopes. When provided, access keys whose scopes don't cover these calls are skipped. */
79
47
  calls?: readonly {
@@ -93,8 +61,6 @@ export type Find = {
93
61
  }): TempoAccount.Account;
94
62
  (options?: Omit<find.Options, 'store'>): TempoAccount.Account | JsonRpcAccount;
95
63
  };
96
- /** Hydrates an access key entry to a viem Account. Only works for locally-generated keys with a `keyPair`. */
97
- export declare function hydrateAccessKey(accessKey: AccessKey): TempoAccount.Account;
98
64
  /** Hydrates a store account to a viem Account. */
99
65
  export declare function hydrate(account: Store, options: {
100
66
  signable: true;
@@ -1 +1 @@
1
- {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/core/Account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,IAAI,CAAA;AAC9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,KAAK,UAAU,MAAM,YAAY,CAAA;AAE7C,4CAA4C;AAC5C,MAAM,MAAM,KAAK,GAAG;IAClB,uBAAuB;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,GAAG,KAAK,CACL,EAAE,GACF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC,GAC9C;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAAE,GACpC;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjF;IACE,OAAO,EAAE,WAAW,CAAA;IACpB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;CACjE,GACD;IACE,OAAO,EAAE,mBAAmB,CAAA;IAC5B,UAAU,EAAE,GAAG,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,CACJ,CAAA;AAED,kDAAkD;AAClD,MAAM,MAAM,SAAS,GAAG;IACtB,0BAA0B;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAA;IACtD,gBAAgB;IAChB,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAA;IACxD,iDAAiD;IACjD,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAAE,GAAG,SAAS,CAAA;IACrF,2EAA2E;IAC3E,MAAM,CAAC,EACH;QACE,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAAA;QACnC,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAA;KAC5C,EAAE,GACH,SAAS,CAAA;CACd,GAAG,KAAK,CACL,EAAE,GACF;IACE,uDAAuD;IACvD,UAAU,EAAE,GAAG,CAAA;CAChB,GACD;IACE,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;CACjE,CACJ,CAAA;AAED,6EAA6E;AAC7E,wBAAgB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,YAAY,CAAC,OAAO,CAAA;AACtF,wBAAgB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,GAAG,cAAc,CAAA;AAiClF,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,OAAO,GAAG;QACb,uEAAuE;QACvE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC/B,0DAA0D;QAC1D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,6HAA6H;QAC7H,KAAK,CAAC,EAAE,SAAS;YAAE,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;YAAC,IAAI,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;SAAE,EAAE,GAAG,SAAS,CAAA;QACnF,4DAA4D;QAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC9B,4BAA4B;QAC5B,KAAK,EAAE,UAAU,CAAC,KAAK,CAAA;KACxB,CAAA;CACF;AAED,mFAAmF;AACnF,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,YAAY,CAAC,OAAO,CAAA;IACjF,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,GAAG,cAAc,CAAA;CAC/E,CAAA;AAED,8GAA8G;AAC9G,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAc3E;AAED,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,YAAY,CAAC,OAAO,CAAA;AAC1F,wBAAgB,OAAO,CACrB,OAAO,EAAE,KAAK,EACd,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GACxB,YAAY,CAAC,OAAO,GAAG,cAAc,CAAA;AAgCxC,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,OAAO,GAAG;QACb,4DAA4D;QAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC/B,CAAA;CACF"}
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/core/Account.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,25 @@
1
- import { AbiFunction, Provider } from 'ox';
2
- import {} from 'ox/tempo';
1
+ import { Provider } from 'ox';
3
2
  import { Account as TempoAccount } from 'viem/tempo';
3
+ import * as core_AccessKey from './AccessKey.js';
4
4
  export function find(options) {
5
5
  const { accessKey = true, address, signable = false, store } = options;
6
- const { accessKeys, accounts, activeAccount } = store.getState();
6
+ const { accounts, activeAccount } = store.getState();
7
7
  const activeAddr = accounts[activeAccount]?.address;
8
8
  const root = address
9
- ? accounts.find((a) => a.address === address)
10
- : accounts.find((a) => a.address === activeAddr);
9
+ ? accounts.find((a) => a.address.toLowerCase() === address.toLowerCase())
10
+ : accounts.find((a) => activeAddr && a.address.toLowerCase() === activeAddr.toLowerCase());
11
11
  if (!root)
12
12
  throw address
13
13
  ? new Provider.UnauthorizedError({ message: `Account "${address}" not found.` })
14
14
  : new Provider.DisconnectedError({ message: 'No active account.' });
15
15
  // When accessKey is requested, prefer a locally-signable access key for this address.
16
16
  if (accessKey) {
17
- const key = accessKeys.find((a) => a.access.toLowerCase() === root.address.toLowerCase() &&
18
- (('keyPair' in a && !!a.keyPair) || ('privateKey' in a && !!a.privateKey)));
19
- if (key) {
20
- // Remove expired access keys.
21
- if (key.expiry && key.expiry < Date.now() / 1000)
22
- store.setState({ accessKeys: accessKeys.filter((a) => a !== key) });
23
- // Use access key if unscoped or scopes cover the requested calls; otherwise fall through to root.
24
- else if (scopesMatch(key, options))
25
- return hydrateAccessKey(key);
26
- }
17
+ const key = core_AccessKey.select({ address: root.address, calls: options.calls, store });
18
+ if (key)
19
+ return core_AccessKey.hydrate(key);
27
20
  }
28
21
  return hydrate(root, { signable });
29
22
  }
30
- /** Hydrates an access key entry to a viem Account. Only works for locally-generated keys with a `keyPair`. */
31
- export function hydrateAccessKey(accessKey) {
32
- if ('keyPair' in accessKey && accessKey.keyPair)
33
- return TempoAccount.fromWebCryptoP256(accessKey.keyPair, { access: accessKey.access });
34
- if ('privateKey' in accessKey && accessKey.privateKey) {
35
- switch (accessKey.keyType) {
36
- case 'secp256k1':
37
- return TempoAccount.fromSecp256k1(accessKey.privateKey, { access: accessKey.access });
38
- case 'p256':
39
- return TempoAccount.fromP256(accessKey.privateKey, { access: accessKey.access });
40
- }
41
- }
42
- throw new Provider.UnauthorizedError({
43
- message: 'External access key cannot be hydrated for signing.',
44
- });
45
- }
46
23
  export function hydrate(account, options = {}) {
47
24
  const { signable = false } = options;
48
25
  if (!signable)
@@ -71,25 +48,4 @@ export function hydrate(account, options = {}) {
71
48
  throw new Provider.UnauthorizedError({ message: 'Unknown key type.' });
72
49
  }
73
50
  }
74
- /** Returns true if the access key's scopes cover the requested calls (or key is unscoped). */
75
- function scopesMatch(key, options) {
76
- if (!options.calls || !key.scopes)
77
- return true;
78
- return options.calls.every((call) => {
79
- if (!call.to)
80
- return false;
81
- const callTo = call.to.toLowerCase();
82
- const callSelector = call.data?.slice(0, 10).toLowerCase();
83
- return key.scopes.some((scope) => {
84
- if (scope.address.toLowerCase() !== callTo)
85
- return false;
86
- if (!scope.selector)
87
- return true;
88
- const scopeSelector = (scope.selector.startsWith('0x') && scope.selector.length === 10
89
- ? scope.selector
90
- : AbiFunction.getSelector(scope.selector)).toLowerCase();
91
- return callSelector === scopeSelector;
92
- });
93
- });
94
- }
95
51
  //# sourceMappingURL=Account.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/core/Account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/core/Account.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/core/Provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,QAAQ,IAAI,WAAW,EAAe,MAAM,IAAI,CAAA;AAEnF,OAAO,EAAQ,KAAK,KAAK,EAAE,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,MAAM,CAAA;AAClF,OAAO,EAAE,KAAK,EAA8B,MAAM,aAAa,CAAA;AAG/D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAEnC,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAAE,CAAC,GAChE,WAAW,CAAC,OAAO,GAAG;IACpB,yBAAyB;IACzB,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;IACpC,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAA;IACxB,iEAAiE;IACjE,SAAS,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC9B,GAAG,UAAU,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,CAAA;IACvC,4BAA4B;IAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CACnB,CAAA;AAIH;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,MAAM,CAAC,OAAY,GAAG,MAAM,CAAC,UAAU,CAs2BtE;AAMD,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,+DAA+D;QAC/D,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QACrC;;;;;;WAMG;QACH,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;QAC1D;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;QAC9E;;;WAGG;QACH,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;QACjD,gFAAgF;QAChF,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACjD,8FAA8F;QAC9F,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC;;;;;;WAMG;QACH,GAAG,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAA;QACvC,mIAAmI;QACnI,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACxC;;;;;;;;;;;;WAYG;QACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,sGAAsG;QACtG,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QACrC;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B;;;;;;;;;;;;;;;;WAgBG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;KACnD,CAAA;IACD,KAAK,UAAU,GAAG,QAAQ,CAAA;CAC3B;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,+DAA+D;IAC/D,KAAK,OAAO,GAAG;QACb;;;;;;;WAOG;QACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;CACF"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/core/Provider.ts"],"names":[],"mappings":"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"}
@@ -218,7 +218,20 @@ export function create(options = {}) {
218
218
  if (!parameters.keyAuthorization) {
219
219
  const account = (() => {
220
220
  try {
221
- return getAccount({ signable: true });
221
+ const calls = parameters.calls ??
222
+ (parameters.to
223
+ ? [
224
+ {
225
+ data: parameters.data,
226
+ to: parameters.to,
227
+ },
228
+ ]
229
+ : undefined);
230
+ return getAccount({
231
+ address: parameters.from,
232
+ calls,
233
+ signable: true,
234
+ });
222
235
  }
223
236
  catch {
224
237
  return undefined;
@@ -238,8 +251,8 @@ export function create(options = {}) {
238
251
  AccessKey.removePending(account, { store });
239
252
  return result;
240
253
  }
241
- catch {
242
- AccessKey.remove(account, { store });
254
+ catch (error) {
255
+ AccessKey.invalidate(account, error, { store });
243
256
  return await fill(parameters);
244
257
  }
245
258
  }