@tempoxyz/id 0.0.0-pr-494.sha-e349a84 → 0.0.0-pr-490.sha-3effdd1

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.
@@ -7,7 +7,7 @@
7
7
  * import { Id } from '@tempoxyz/id'
8
8
  * import { email, passkey, viem } from '@tempoxyz/id/plugins'
9
9
  *
10
- * const tempoId = Id.create({ plugins: [email(), passkey(), viem({ chains: [tempo] })] })
10
+ * const tempoId = Id.create({ plugins: [email(), passkey(), viem({ chain: tempo })] })
11
11
  * ```
12
12
  * @module
13
13
  */
@@ -7,7 +7,7 @@
7
7
  * import { Id } from '@tempoxyz/id'
8
8
  * import { email, passkey, viem } from '@tempoxyz/id/plugins'
9
9
  *
10
- * const tempoId = Id.create({ plugins: [email(), passkey(), viem({ chains: [tempo] })] })
10
+ * const tempoId = Id.create({ plugins: [email(), passkey(), viem({ chain: tempo })] })
11
11
  * ```
12
12
  * @module
13
13
  */
@@ -13,6 +13,9 @@ import type * as Session from '../Session.js';
13
13
  * instance's chain, its transport, and an account that follows the instance's session.
14
14
  * `tempoId.viem({ … })` returns a client with overrides, such as another chain, or a fixed `session`
15
15
  * for one request on a backend. Without options, the clients use Tempo's chains and their own RPC.
16
+ * The plugin takes options, or a function that returns the options of a chain by its ID, such as
17
+ * for a transport of each chain. A chain ID is valid when it names a Tempo chain, or when its
18
+ * options name a `chain` of that ID.
16
19
  *
17
20
  * The access key signs transactions. On a page, the account's owner signs messages and typed data:
18
21
  * the cloud wallet through Tempo ID, or the account's passkey. Elsewhere, and for a fixed session,
@@ -30,16 +33,17 @@ import type * as Session from '../Session.js';
30
33
  * await tempoId.viem({ session }).token.transferSync({ amount, to, token })
31
34
  * ```
32
35
  */
33
- export declare function viem(options?: viem.Options): Plugin.Plugin<"viem", viem.Namespace, viem.Actions> & {
34
- [pluginOptions]: viem.Options;
36
+ export declare function viem(options?: viem.Options | viem.Resolver): Plugin.Plugin<"viem", viem.Namespace, viem.Actions> & {
37
+ [pluginOptions]: viem.Resolver | viem.Options;
35
38
  };
36
39
  export declare namespace viem {
37
40
  type Options = Omit<NonNullable<Parameters<typeof createClient>[0]>, 'account' | 'chain' | 'testnet' | 'transport'> & {
38
41
  /**
39
- * The chains that the clients use. The instance's `chainId` must be one of them. Defaults to
40
- * Tempo mainnet, testnet, devnet, and a local node.
42
+ * The chain of the options' chain ID, such as one with a `feeToken` or another RPC URL. A chain of
43
+ * another ID does not apply. Defaults to Tempo's chain of the ID: mainnet, testnet, devnet, or a
44
+ * local node.
41
45
  */
42
- chains?: readonly [Chain, ...Chain[]] | undefined;
46
+ chain?: Chain | undefined;
43
47
  /**
44
48
  * Whether the account's owner signs messages and typed data, through the user's Tempo ID
45
49
  * session: the cloud wallet through Tempo ID, or the account's passkey. Defaults to `true` on a
@@ -48,14 +52,19 @@ export declare namespace viem {
48
52
  */
49
53
  owner?: boolean | undefined;
50
54
  /**
51
- * The transport of each chain, by its ID, or a function that returns it. Defaults to `http()`,
52
- * the chain's own RPC.
55
+ * The transport of the chain's clients. In the object form, it applies to the options' `chain`,
56
+ * or to the instance's chain without one. Defaults to `http()`, the chain's own RPC.
53
57
  */
54
- transports?: Readonly<Record<number, Transport>> | ((chainId: number) => Transport | undefined) | undefined;
58
+ transport?: Transport | undefined;
55
59
  };
60
+ /** Returns the options of the chain of `chainId`. */
61
+ type Resolver = (chainId: number) => Options;
56
62
  /** The overrides of a client, for one call. */
57
63
  type Overrides = Omit<NonNullable<Parameters<typeof createClient>[0]>, 'account' | 'chain' | 'testnet'> & {
58
- /** The chain, one of `chains`. Defaults to the instance's `chainId`. */
64
+ /**
65
+ * The chain ID: a Tempo chain, or one whose options name its `chain`. Defaults to the instance's
66
+ * `chainId`.
67
+ */
59
68
  chainId?: number | undefined;
60
69
  /**
61
70
  * A fixed session, such as one that `tempoId.backend.get` returns, whose access key signs. A
@@ -74,9 +83,9 @@ export declare namespace viem {
74
83
  type Internal = 'account' | 'batch' | 'cacheTime' | 'ccipRead' | 'chain' | 'dataSuffix' | 'extend' | 'key' | 'name' | 'pollingInterval' | 'request' | 'scope' | 'tokens' | 'transport' | 'type' | 'uid';
75
84
  /** The chains and transports of the plugin, which `tempoId.viem[settings]` returns. */
76
85
  type Settings = {
77
- /** The chains that the clients use. */
86
+ /** Tempo's chains, with the instance's chain first when it is another, each from its options. */
78
87
  chains: readonly [Chain, ...Chain[]];
79
- /** Returns the transport of the chain of `chainId`, or `http()` when `transports` holds none. */
88
+ /** Returns the transport of the chain of `chainId`, or `http()` when its options hold none. */
80
89
  transport: (chainId: number) => Transport;
81
90
  };
82
91
  /** `tempoId.viem`: the default client, which a call configures. */
@@ -1 +1 @@
1
- {"version":3,"file":"viem.d.ts","sourceRoot":"","sources":["../../src/plugins/viem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viem.d.ts","sourceRoot":"","sources":["../../src/plugins/viem.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ import * as Plugin from '../Plugin.js';
17
17
  * instance's chain, its transport, and an account that follows the instance's session.
18
18
  * `tempoId.viem({ … })` returns a client with overrides, such as another chain, or a fixed `session`
19
19
  * for one request on a backend. Without options, the clients use Tempo's chains and their own RPC.
20
+ * The plugin takes options, or a function that returns the options of a chain by its ID, such as
21
+ * for a transport of each chain. A chain ID is valid when it names a Tempo chain, or when its
22
+ * options name a `chain` of that ID.
20
23
  *
21
24
  * The access key signs transactions. On a page, the account's owner signs messages and typed data:
22
25
  * the cloud wallet through Tempo ID, or the account's passkey. Elsewhere, and for a fixed session,
@@ -35,12 +38,25 @@ import * as Plugin from '../Plugin.js';
35
38
  * ```
36
39
  */
37
40
  export function viem(options = {}) {
38
- const { chains = [tempo, tempoTestnet, tempoDevnet, tempoLocalnet],
39
- // A page holds the user's Tempo ID session, through which the account's owner signs.
40
- owner = typeof document !== 'undefined', transports = {}, ...defaults } = options;
41
+ /** Returns the options of the chain of `chainId`. */
42
+ const resolve = (chainId) => typeof options === 'function' ? options(chainId) : options;
41
43
  const plugin = Plugin.from({
42
44
  actions: (context) => {
43
45
  const { config } = context;
46
+ /** Returns the chain of `chainId`: its options' `chain`, or Tempo's chain of that ID. */
47
+ function chainOf(chainId) {
48
+ const { chain } = resolve(chainId);
49
+ if (chain?.id === chainId)
50
+ return chain;
51
+ return defaultChains.find((entry) => entry.id === chainId);
52
+ }
53
+ // The wagmi plugin's config holds Tempo's chains, and the instance's chain when it is another.
54
+ const tempoChains = defaultChains.map((entry) => chainOf(entry.id));
55
+ const instanceChain = chainOf(config.chainId);
56
+ const chains = (instanceChain &&
57
+ !tempoChains.some((entry) => entry.id === instanceChain.id)
58
+ ? [instanceChain, ...tempoChains]
59
+ : tempoChains);
44
60
  // The account of each session on each chain, so a client rebuilds no access key at each read.
45
61
  const accounts = new WeakMap();
46
62
  // The clients without overrides beyond `chainId`, one for each chain.
@@ -48,10 +64,22 @@ export function viem(options = {}) {
48
64
  // The plugin's chains and transports, which the clients and the wagmi plugin share.
49
65
  const own = {
50
66
  chains,
51
- transport: (chainId) => (typeof transports === 'function'
52
- ? transports(chainId)
53
- : transports[chainId]) ?? http(),
67
+ transport: (chainId) => {
68
+ if (typeof options === 'function')
69
+ return options(chainId).transport ?? http();
70
+ // The object form names one chain: its `chain`, or the instance's chain. Other chains keep
71
+ // their own RPC, so one transport never serves another chain's requests.
72
+ const target = options.chain?.id ?? config.chainId;
73
+ return (chainId === target ? options.transport : undefined) ?? http();
74
+ },
54
75
  };
76
+ /**
77
+ * Returns whether the account's owner signs on `chainId`. A page holds the user's Tempo ID
78
+ * session, through which the account's owner signs.
79
+ */
80
+ function owner(chainId) {
81
+ return resolve(chainId).owner ?? typeof document !== 'undefined';
82
+ }
55
83
  /**
56
84
  * Returns a live access token of `session`, refreshed through the instance when it expires
57
85
  * within the margin. Returns `undefined` when the instance holds another user's session.
@@ -76,16 +104,16 @@ export function viem(options = {}) {
76
104
  byChain.set(chainId, Signer.fromSession(config, session, {
77
105
  accessToken: () => accessToken(session),
78
106
  chainId,
79
- owner,
107
+ owner: owner(chainId),
80
108
  }));
81
109
  return byChain.get(chainId);
82
110
  }
83
111
  /** Returns a new client with `overrides`. */
84
112
  function create(overrides = {}) {
85
113
  const { chainId = config.chainId, session, transport, ...clientOptions } = overrides;
86
- const chain = chains.find((entry) => entry.id === chainId);
114
+ const chain = chainOf(chainId);
87
115
  if (!chain)
88
- throw new Error(`Invalid chain: ${chainId} is not one of the plugin's \`chains\`. Add its definition to \`chains\`.`);
116
+ throw new Error(`Invalid chain: ${chainId} is not a Tempo chain, and its options name no \`chain\`. Return its definition as \`chain\`.`);
89
117
  const account = (() => {
90
118
  if (!session)
91
119
  return Signer.live(() => current(chainId));
@@ -98,6 +126,7 @@ export function viem(options = {}) {
98
126
  throw new KeyRequiredError();
99
127
  return fixed;
100
128
  })();
129
+ const { chain: _chain, owner: _owner, transport: _transport, ...defaults } = resolve(chainId);
101
130
  const client = build({
102
131
  ...defaults,
103
132
  ...clientOptions,
@@ -159,7 +188,7 @@ export function viem(options = {}) {
159
188
  // sends no request, so its transport needs no URL, and a chain without one still builds.
160
189
  const sample = build({
161
190
  account: Signer.live(() => undefined),
162
- chain: chains[0],
191
+ chain: namespace[settings].chains[0],
163
192
  transport: custom({ request: () => Promise.resolve(undefined) }),
164
193
  });
165
194
  const members = {};
@@ -188,6 +217,8 @@ export const settings = Symbol('viem.settings');
188
217
  * do not export it, so only the package's own plugins read it.
189
218
  */
190
219
  export const pluginOptions = Symbol('viem.options');
220
+ /** Tempo's chains, which a chain ID without a `chain` in its options uses. */
221
+ const defaultChains = [tempo, tempoTestnet, tempoDevnet, tempoLocalnet];
191
222
  /** The time before a token's expiry at which the owner's account read refreshes it, in milliseconds. */
192
223
  const refreshMargin = 30_000;
193
224
  /** Creates a Tempo client with an account and a chain, so its type holds both. */
@@ -1 +1 @@
1
- {"version":3,"file":"viem.js","sourceRoot":"","sources":["../../src/plugins/viem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viem.js","sourceRoot":"","sources":["../../src/plugins/viem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wagmi/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wagmi/index.ts"],"names":[],"mappings":"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"}
@@ -111,10 +111,16 @@ export function tempoId(options = {}) {
111
111
  chainId: config.chains[0].id,
112
112
  plugins: [
113
113
  others,
114
- viem({
115
- ...own?.[pluginOptions],
116
- chains: config.chains,
117
- transports: config.transports,
114
+ viem((chainId) => {
115
+ const options = own?.[pluginOptions];
116
+ const base = typeof options === 'function' ? options(chainId) : options;
117
+ const transport = config.transports?.[chainId];
118
+ const chain = config.chains.find((entry) => entry.id === chainId);
119
+ return {
120
+ ...base,
121
+ ...(chain ? { chain } : {}),
122
+ ...(transport ? { transport } : {}),
123
+ };
118
124
  }),
119
125
  // Holds the instance's context, through which a session without an access key receives its
120
126
  // account.
@@ -166,7 +172,7 @@ export function wagmi(options = {}) {
166
172
  const { chainId } = instance.config;
167
173
  const chain = chains.find((entry) => entry.id === chainId);
168
174
  if (!chain)
169
- throw new Error(`Invalid chain: ${chainId} is not one of the viem plugin's \`chains\`. Add its definition to \`chains\`.`);
175
+ throw new Error(`Invalid chain: ${chainId} is not a Tempo chain, and the viem plugin's options name no \`chain\`. Return its definition as \`chain\`.`);
170
176
  // The connector's chain is the config's first. The instance's namespaces come in the order
171
177
  // of `plugins`, so the first namespace that signs in without input signs in at `connect`.
172
178
  const ordered = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wagmi/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wagmi/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tempoxyz/id",
3
- "version": "0.0.0-pr-494.sha-e349a84",
3
+ "version": "0.0.0-pr-490.sha-3effdd1",
4
4
  "description": "Identity and Auth for Tempo",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -41,11 +41,6 @@
41
41
  "types": "./dist/internal.d.ts",
42
42
  "default": "./dist/internal.js"
43
43
  },
44
- "./mpp": {
45
- "src": "./src/mpp/index.ts",
46
- "types": "./dist/mpp/index.d.ts",
47
- "default": "./dist/mpp/index.js"
48
- },
49
44
  "./plugins": {
50
45
  "src": "./src/plugins/index.ts",
51
46
  "types": "./dist/plugins/index.d.ts",
@@ -85,7 +80,6 @@
85
80
  "@wagmi/core": "^3.6.7",
86
81
  "expo-secure-store": ">=14",
87
82
  "expo-web-browser": ">=14",
88
- "mppx": ">=0.12",
89
83
  "react": ">=18",
90
84
  "react-native-get-random-values": ">=1",
91
85
  "viem": "^2.57.12"
@@ -100,9 +94,6 @@
100
94
  "expo-web-browser": {
101
95
  "optional": true
102
96
  },
103
- "mppx": {
104
- "optional": true
105
- },
106
97
  "react": {
107
98
  "optional": true
108
99
  },
@@ -7,7 +7,7 @@
7
7
  * import { Id } from '@tempoxyz/id'
8
8
  * import { email, passkey, viem } from '@tempoxyz/id/plugins'
9
9
  *
10
- * const tempoId = Id.create({ plugins: [email(), passkey(), viem({ chains: [tempo] })] })
10
+ * const tempoId = Id.create({ plugins: [email(), passkey(), viem({ chain: tempo })] })
11
11
  * ```
12
12
  * @module
13
13
  */
@@ -31,6 +31,9 @@ import type * as Session from '../Session.js'
31
31
  * instance's chain, its transport, and an account that follows the instance's session.
32
32
  * `tempoId.viem({ … })` returns a client with overrides, such as another chain, or a fixed `session`
33
33
  * for one request on a backend. Without options, the clients use Tempo's chains and their own RPC.
34
+ * The plugin takes options, or a function that returns the options of a chain by its ID, such as
35
+ * for a transport of each chain. A chain ID is valid when it names a Tempo chain, or when its
36
+ * options name a `chain` of that ID.
34
37
  *
35
38
  * The access key signs transactions. On a page, the account's owner signs messages and typed data:
36
39
  * the cloud wallet through Tempo ID, or the account's passkey. Elsewhere, and for a fixed session,
@@ -48,18 +51,29 @@ import type * as Session from '../Session.js'
48
51
  * await tempoId.viem({ session }).token.transferSync({ amount, to, token })
49
52
  * ```
50
53
  */
51
- export function viem(options: viem.Options = {}) {
52
- const {
53
- chains = [tempo, tempoTestnet, tempoDevnet, tempoLocalnet],
54
- // A page holds the user's Tempo ID session, through which the account's owner signs.
55
- owner = typeof document !== 'undefined',
56
- transports = {},
57
- ...defaults
58
- } = options
54
+ export function viem(options: viem.Options | viem.Resolver = {}) {
55
+ /** Returns the options of the chain of `chainId`. */
56
+ const resolve = (chainId: number) =>
57
+ typeof options === 'function' ? options(chainId) : options
59
58
 
60
59
  const plugin = Plugin.from({
61
60
  actions: (context) => {
62
61
  const { config } = context
62
+
63
+ /** Returns the chain of `chainId`: its options' `chain`, or Tempo's chain of that ID. */
64
+ function chainOf(chainId: number) {
65
+ const { chain } = resolve(chainId)
66
+ if (chain?.id === chainId) return chain
67
+ return defaultChains.find((entry) => entry.id === chainId)
68
+ }
69
+
70
+ // The wagmi plugin's config holds Tempo's chains, and the instance's chain when it is another.
71
+ const tempoChains = defaultChains.map((entry) => chainOf(entry.id)!)
72
+ const instanceChain = chainOf(config.chainId)
73
+ const chains = (instanceChain &&
74
+ !tempoChains.some((entry) => entry.id === instanceChain.id)
75
+ ? [instanceChain, ...tempoChains]
76
+ : tempoChains) as unknown as readonly [Chain, ...Chain[]]
63
77
  // The account of each session on each chain, so a client rebuilds no access key at each read.
64
78
  const accounts = new WeakMap<
65
79
  Session.Session,
@@ -70,12 +84,24 @@ export function viem(options: viem.Options = {}) {
70
84
  // The plugin's chains and transports, which the clients and the wagmi plugin share.
71
85
  const own = {
72
86
  chains,
73
- transport: (chainId: number) =>
74
- (typeof transports === 'function'
75
- ? transports(chainId)
76
- : transports[chainId]) ?? http(),
87
+ transport: (chainId: number) => {
88
+ if (typeof options === 'function')
89
+ return options(chainId).transport ?? http()
90
+ // The object form names one chain: its `chain`, or the instance's chain. Other chains keep
91
+ // their own RPC, so one transport never serves another chain's requests.
92
+ const target = options.chain?.id ?? config.chainId
93
+ return (chainId === target ? options.transport : undefined) ?? http()
94
+ },
77
95
  } satisfies viem.Settings
78
96
 
97
+ /**
98
+ * Returns whether the account's owner signs on `chainId`. A page holds the user's Tempo ID
99
+ * session, through which the account's owner signs.
100
+ */
101
+ function owner(chainId: number) {
102
+ return resolve(chainId).owner ?? typeof document !== 'undefined'
103
+ }
104
+
79
105
  /**
80
106
  * Returns a live access token of `session`, refreshed through the instance when it expires
81
107
  * within the margin. Returns `undefined` when the instance holds another user's session.
@@ -100,7 +126,7 @@ export function viem(options: viem.Options = {}) {
100
126
  Signer.fromSession(config, session, {
101
127
  accessToken: () => accessToken(session),
102
128
  chainId,
103
- owner,
129
+ owner: owner(chainId),
104
130
  }),
105
131
  )
106
132
  return byChain.get(chainId)
@@ -114,10 +140,10 @@ export function viem(options: viem.Options = {}) {
114
140
  transport,
115
141
  ...clientOptions
116
142
  } = overrides
117
- const chain = chains.find((entry) => entry.id === chainId)
143
+ const chain = chainOf(chainId)
118
144
  if (!chain)
119
145
  throw new Error(
120
- `Invalid chain: ${chainId} is not one of the plugin's \`chains\`. Add its definition to \`chains\`.`,
146
+ `Invalid chain: ${chainId} is not a Tempo chain, and its options name no \`chain\`. Return its definition as \`chain\`.`,
121
147
  )
122
148
  const account = (() => {
123
149
  if (!session) return Signer.live(() => current(chainId))
@@ -129,6 +155,12 @@ export function viem(options: viem.Options = {}) {
129
155
  if (!fixed) throw new KeyRequiredError()
130
156
  return fixed
131
157
  })()
158
+ const {
159
+ chain: _chain,
160
+ owner: _owner,
161
+ transport: _transport,
162
+ ...defaults
163
+ } = resolve(chainId)
132
164
  const client = build({
133
165
  ...defaults,
134
166
  ...clientOptions,
@@ -189,13 +221,17 @@ export function viem(options: viem.Options = {}) {
189
221
  // whose account follows the session, so `tempoId.token.transferSync()` sends as
190
222
  // `tempoId.viem.token.transferSync()` does.
191
223
  extend: (instance: Id.Id) => {
192
- const namespace = (instance as unknown as { viem: viem.Namespace }).viem
224
+ const namespace = (
225
+ instance as unknown as {
226
+ viem: viem.Namespace & { [settings]: viem.Settings }
227
+ }
228
+ ).viem
193
229
  // A client on the first chain names the actions, since the instance's chain may be one that
194
230
  // only a call's overrides reach. Each member reads the default client at its use. The sample
195
231
  // sends no request, so its transport needs no URL, and a chain without one still builds.
196
232
  const sample = build({
197
233
  account: Signer.live(() => undefined),
198
- chain: chains[0],
234
+ chain: namespace[settings].chains[0],
199
235
  transport: custom({ request: () => Promise.resolve(undefined) }),
200
236
  })
201
237
  const members = {}
@@ -220,10 +256,11 @@ export declare namespace viem {
220
256
  'account' | 'chain' | 'testnet' | 'transport'
221
257
  > & {
222
258
  /**
223
- * The chains that the clients use. The instance's `chainId` must be one of them. Defaults to
224
- * Tempo mainnet, testnet, devnet, and a local node.
259
+ * The chain of the options' chain ID, such as one with a `feeToken` or another RPC URL. A chain of
260
+ * another ID does not apply. Defaults to Tempo's chain of the ID: mainnet, testnet, devnet, or a
261
+ * local node.
225
262
  */
226
- chains?: readonly [Chain, ...Chain[]] | undefined
263
+ chain?: Chain | undefined
227
264
  /**
228
265
  * Whether the account's owner signs messages and typed data, through the user's Tempo ID
229
266
  * session: the cloud wallet through Tempo ID, or the account's passkey. Defaults to `true` on a
@@ -232,21 +269,24 @@ export declare namespace viem {
232
269
  */
233
270
  owner?: boolean | undefined
234
271
  /**
235
- * The transport of each chain, by its ID, or a function that returns it. Defaults to `http()`,
236
- * the chain's own RPC.
272
+ * The transport of the chain's clients. In the object form, it applies to the options' `chain`,
273
+ * or to the instance's chain without one. Defaults to `http()`, the chain's own RPC.
237
274
  */
238
- transports?:
239
- | Readonly<Record<number, Transport>>
240
- | ((chainId: number) => Transport | undefined)
241
- | undefined
275
+ transport?: Transport | undefined
242
276
  }
243
277
 
278
+ /** Returns the options of the chain of `chainId`. */
279
+ type Resolver = (chainId: number) => Options
280
+
244
281
  /** The overrides of a client, for one call. */
245
282
  type Overrides = Omit<
246
283
  NonNullable<Parameters<typeof createClient>[0]>,
247
284
  'account' | 'chain' | 'testnet'
248
285
  > & {
249
- /** The chain, one of `chains`. Defaults to the instance's `chainId`. */
286
+ /**
287
+ * The chain ID: a Tempo chain, or one whose options name its `chain`. Defaults to the instance's
288
+ * `chainId`.
289
+ */
250
290
  chainId?: number | undefined
251
291
  /**
252
292
  * A fixed session, such as one that `tempoId.backend.get` returns, whose access key signs. A
@@ -285,9 +325,9 @@ export declare namespace viem {
285
325
 
286
326
  /** The chains and transports of the plugin, which `tempoId.viem[settings]` returns. */
287
327
  type Settings = {
288
- /** The chains that the clients use. */
328
+ /** Tempo's chains, with the instance's chain first when it is another, each from its options. */
289
329
  chains: readonly [Chain, ...Chain[]]
290
- /** Returns the transport of the chain of `chainId`, or `http()` when `transports` holds none. */
330
+ /** Returns the transport of the chain of `chainId`, or `http()` when its options hold none. */
291
331
  transport: (chainId: number) => Transport
292
332
  }
293
333
 
@@ -307,6 +347,9 @@ export const settings = Symbol('viem.settings')
307
347
  */
308
348
  export const pluginOptions = Symbol('viem.options')
309
349
 
350
+ /** Tempo's chains, which a chain ID without a `chain` in its options uses. */
351
+ const defaultChains = [tempo, tempoTestnet, tempoDevnet, tempoLocalnet] as const
352
+
310
353
  /** The time before a token's expiry at which the owner's account read refreshes it, in milliseconds. */
311
354
  const refreshMargin = 30_000
312
355
 
@@ -131,7 +131,7 @@ export function tempoId<const plugins extends readonly Plugin.Option[] = []>(
131
131
  // which takes the config's `chains` and `transports` in their place.
132
132
  const flattened = Plugin.flatten(entries)
133
133
  const own = flattened.find((plugin) => plugin.id === 'viem') as
134
- | { [pluginOptions]?: viem.Options | undefined }
134
+ | { [pluginOptions]?: viem.Options | viem.Resolver | undefined }
135
135
  | undefined
136
136
  const others = flattened.filter((plugin) => plugin !== own)
137
137
 
@@ -151,12 +151,21 @@ export function tempoId<const plugins extends readonly Plugin.Option[] = []>(
151
151
  chainId: config.chains[0].id,
152
152
  plugins: [
153
153
  others,
154
- viem({
155
- ...own?.[pluginOptions],
156
- chains: config.chains,
157
- transports: config.transports as
158
- | Readonly<Record<number, Transport>>
159
- | undefined,
154
+ viem((chainId) => {
155
+ const options = own?.[pluginOptions]
156
+ const base =
157
+ typeof options === 'function' ? options(chainId) : options
158
+ const transport = (
159
+ config.transports as
160
+ | Readonly<Record<number, Transport>>
161
+ | undefined
162
+ )?.[chainId]
163
+ const chain = config.chains.find((entry) => entry.id === chainId)
164
+ return {
165
+ ...base,
166
+ ...(chain ? { chain } : {}),
167
+ ...(transport ? { transport } : {}),
168
+ }
160
169
  }),
161
170
  // Holds the instance's context, through which a session without an access key receives its
162
171
  // account.
@@ -294,7 +303,7 @@ export function wagmi(options: wagmi.Options = {}) {
294
303
  const chain = chains.find((entry) => entry.id === chainId)
295
304
  if (!chain)
296
305
  throw new Error(
297
- `Invalid chain: ${chainId} is not one of the viem plugin's \`chains\`. Add its definition to \`chains\`.`,
306
+ `Invalid chain: ${chainId} is not a Tempo chain, and the viem plugin's options name no \`chain\`. Return its definition as \`chain\`.`,
298
307
  )
299
308
  // The connector's chain is the config's first. The instance's namespaces come in the order
300
309
  // of `plugins`, so the first namespace that signs in without input signs in at `connect`.
@@ -1,109 +0,0 @@
1
- /**
2
- * The entry for MPP: `mpp`, a plugin that adds `tempoId.mpp`, which pays the 402 challenges of
3
- * Machine Payments Protocol (MPP) endpoints with the session's access key, through mppx.
4
- *
5
- * @example
6
- * ```ts
7
- * import { Id } from '@tempoxyz/id'
8
- * import { mpp } from '@tempoxyz/id/mpp'
9
- * import { dialog } from '@tempoxyz/id/plugins'
10
- *
11
- * const tempoId = Id.create({ accessKey, plugins: [dialog(), mpp()] })
12
- *
13
- * await tempoId.dialog.signIn()
14
- * const response = await tempoId.mpp.fetch('https://api.example.com/fortune')
15
- * ```
16
- * @module
17
- */
18
- import { tempo } from 'mppx/client';
19
- import * as Plugin from '../Plugin.js';
20
- import type * as Session from '../Session.js';
21
- /** A charge costs more than `maxAmount`, so the payer signs nothing. */
22
- export declare class MaxAmountError extends Error {
23
- readonly name = "mpp.MaxAmountError";
24
- constructor(options: MaxAmountError.Options);
25
- }
26
- export declare namespace MaxAmountError {
27
- type Options = {
28
- /** The charge's amount, in the units of its token. */
29
- amount: string;
30
- /** The most that a charge may cost, in the units of its token. */
31
- maxAmount: string;
32
- };
33
- }
34
- /**
35
- * Returns the plugin of MPP payments, which adds `tempoId.mpp`. `tempoId.mpp.fetch` is `fetch`
36
- * that pays each charge an endpoint challenges for, and `tempoId.mpp.session()` returns a session
37
- * manager, which pays each request of a channel with a voucher. The access key of the instance's
38
- * session signs every payment, so no payment reaches the account's owner. `tempoId.mpp({ session })`
39
- * pays with a fixed session's access key, such as one that `tempoId.backend.get` returns.
40
- *
41
- * The plugin reads the chains and transports of the `viem` plugin, or of a `viem` plugin of its
42
- * own without one in `plugins`. `mppx` is an optional peer dependency of `@tempoxyz/id`.
43
- *
44
- * @example
45
- * ```ts
46
- * const tempoId = Id.create({ accessKey, plugins: [dialog(), mpp()] })
47
- *
48
- * const response = await tempoId.mpp.fetch('https://api.example.com/fortune')
49
- *
50
- * const session = tempoId.mpp.session()
51
- * await session.fetch('https://api.example.com/content')
52
- * await session.close()
53
- * ```
54
- */
55
- export declare function mpp(options?: mpp.Options): Plugin.Plugin<"mpp", unknown, {
56
- mpp: mpp.Namespace;
57
- }>;
58
- export declare namespace mpp {
59
- type Options = Settings & {
60
- /** Sends each request to an endpoint, and its paid retry. Defaults to the global `fetch`. */
61
- fetch?: typeof globalThis.fetch | undefined;
62
- };
63
- /** The settings of the payments, which the plugin's options set and a call overrides. */
64
- type Settings = {
65
- /**
66
- * The most that a charge may cost, in the units of its token, such as `'0.1'`. A larger charge
67
- * throws `mpp.MaxAmountError` before the access key signs. Defaults to no maximum, within the
68
- * access key's token limits.
69
- */
70
- maxAmount?: string | undefined;
71
- /**
72
- * The most that a session's channel holds, in the units of its token, such as `'0.05'`. It
73
- * caps the deposit that an endpoint suggests and each top-up. Defaults to the deposit that the
74
- * endpoint suggests, within the access key's token limits.
75
- */
76
- maxDeposit?: string | undefined;
77
- /**
78
- * Who broadcasts a charge's transaction: the endpoint (`'pull'`) or the app (`'push'`).
79
- * Defaults to `'pull'`.
80
- */
81
- mode?: 'pull' | 'push' | undefined;
82
- };
83
- /** The overrides of a payer, for one call. */
84
- type Overrides = Settings & {
85
- /**
86
- * A fixed session, such as one that `tempoId.backend.get` returns, whose access key pays.
87
- * Defaults to the instance's session, read at each payment.
88
- */
89
- session?: Session.Session | undefined;
90
- };
91
- /** The payments of one access key. */
92
- type Payer = {
93
- /**
94
- * Sends a request, and pays a 402 charge challenge with the access key, then returns the
95
- * endpoint's response to the paid retry. Throws `Id.SignedOutError` without a session, and
96
- * `Id.KeyRequiredError` for a session without an access key.
97
- */
98
- fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
99
- /**
100
- * Returns a session manager of mppx, which opens a channel on the first request of a session
101
- * endpoint, pays each request with a voucher of the access key, and closes the channel at
102
- * `close()`. The manager holds the channel in memory, so close it before it is discarded.
103
- */
104
- session: (parameters?: Omit<Parameters<typeof tempo.session.manager>[0], 'account' | 'client' | 'getClient'>) => ReturnType<typeof tempo.session.manager>;
105
- };
106
- /** `tempoId.mpp`: the payer of the instance's session, which a call fixes to another session. */
107
- type Namespace = Payer & ((overrides?: Overrides) => Payer);
108
- }
109
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mpp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAQ,KAAK,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAE7C,wEAAwE;AACxE,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAkB,IAAI,wBAAuB;IAE7C,YAAY,OAAO,EAAE,cAAc,CAAC,OAAO,EAI1C;CACF;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,OAAO,GAAG;QACb,sDAAsD;QACtD,MAAM,EAAE,MAAM,CAAA;QACd,kEAAkE;QAClE,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,GAAG,CAAC,OAAO,GAAE,GAAG,CAAC,OAAY;SAyED,GAAG,CAAC,SAAS;GAQxD;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,OAAO,GAAG,QAAQ,GAAG;QACxB,6FAA6F;QAC7F,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;KAC5C,CAAA;IAED,yFAAyF;IACzF,KAAK,QAAQ,GAAG;QACd;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B;;;;WAIG;QACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B;;;WAGG;QACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;IAED,8CAA8C;IAC9C,KAAK,SAAS,GAAG,QAAQ,GAAG;QAC1B;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,sCAAsC;IACtC,KAAK,KAAK,GAAG;QACX;;;;WAIG;QACH,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1E;;;;WAIG;QACH,OAAO,EAAE,CACP,UAAU,CAAC,EAAE,IAAI,CACf,UAAU,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAC3C,SAAS,GAAG,QAAQ,GAAG,WAAW,CACnC,KACE,UAAU,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KAC9C,CAAA;IAED,iGAAiG;IACjG,KAAK,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,KAAK,CAAC,CAAA;CAC5D"}
package/dist/mpp/index.js DELETED
@@ -1,159 +0,0 @@
1
- /**
2
- * The entry for MPP: `mpp`, a plugin that adds `tempoId.mpp`, which pays the 402 challenges of
3
- * Machine Payments Protocol (MPP) endpoints with the session's access key, through mppx.
4
- *
5
- * @example
6
- * ```ts
7
- * import { Id } from '@tempoxyz/id'
8
- * import { mpp } from '@tempoxyz/id/mpp'
9
- * import { dialog } from '@tempoxyz/id/plugins'
10
- *
11
- * const tempoId = Id.create({ accessKey, plugins: [dialog(), mpp()] })
12
- *
13
- * await tempoId.dialog.signIn()
14
- * const response = await tempoId.mpp.fetch('https://api.example.com/fortune')
15
- * ```
16
- * @module
17
- */
18
- import { Mppx, tempo } from 'mppx/client';
19
- import { createClient, formatUnits, parseUnits } from 'viem';
20
- import * as AccessKey from '../AccessKey.js';
21
- import * as Id from '../Id.js';
22
- import * as Plugin from '../Plugin.js';
23
- import { settings, viem } from '../plugins/viem.js';
24
- /** A charge costs more than `maxAmount`, so the payer signs nothing. */
25
- export class MaxAmountError extends Error {
26
- name = 'mpp.MaxAmountError';
27
- constructor(options) {
28
- super(`The charge of ${options.amount} exceeds the \`maxAmount\` of ${options.maxAmount}. Raise \`maxAmount\` to pay it.`);
29
- }
30
- }
31
- /**
32
- * Returns the plugin of MPP payments, which adds `tempoId.mpp`. `tempoId.mpp.fetch` is `fetch`
33
- * that pays each charge an endpoint challenges for, and `tempoId.mpp.session()` returns a session
34
- * manager, which pays each request of a channel with a voucher. The access key of the instance's
35
- * session signs every payment, so no payment reaches the account's owner. `tempoId.mpp({ session })`
36
- * pays with a fixed session's access key, such as one that `tempoId.backend.get` returns.
37
- *
38
- * The plugin reads the chains and transports of the `viem` plugin, or of a `viem` plugin of its
39
- * own without one in `plugins`. `mppx` is an optional peer dependency of `@tempoxyz/id`.
40
- *
41
- * @example
42
- * ```ts
43
- * const tempoId = Id.create({ accessKey, plugins: [dialog(), mpp()] })
44
- *
45
- * const response = await tempoId.mpp.fetch('https://api.example.com/fortune')
46
- *
47
- * const session = tempoId.mpp.session()
48
- * await session.fetch('https://api.example.com/content')
49
- * await session.close()
50
- * ```
51
- */
52
- export function mpp(options = {}) {
53
- const { fetch } = options;
54
- // The context of each instance, by its configuration, since an app can pass one plugin to
55
- // several instances.
56
- const contexts = new WeakMap();
57
- return Plugin.from({
58
- extend(instance) {
59
- const context = contexts.get(instance.config);
60
- const held = instance.viem;
61
- const namespace = held ?? viem().actions(context);
62
- const { chains, transport } = namespace[settings];
63
- // A client without an account reads the chain and broadcasts. The access key signs.
64
- const clients = new Map();
65
- // The payers of each access key, one for each setting of the charges.
66
- const payers = new WeakMap();
67
- /** Returns the client of the chain of `chainId`, one of the plugin's chains. */
68
- function getClient(parameters = {}) {
69
- const chainId = parameters.chainId ?? instance.config.chainId;
70
- const existing = clients.get(chainId);
71
- if (existing)
72
- return existing;
73
- const chain = chains.find((entry) => entry.id === chainId);
74
- if (!chain)
75
- throw new Error(`Invalid chain: ${chainId} is not one of the viem plugin's \`chains\`. Add its definition to \`chains\`.`);
76
- const client = createClient({ chain, transport: transport(chainId) });
77
- clients.set(chainId, client);
78
- return client;
79
- }
80
- /**
81
- * Returns the payer of the access key of `overrides.session`, or of the instance's session,
82
- * with the plugin's settings under `overrides`.
83
- */
84
- function payer(overrides) {
85
- const current = overrides.session ?? context.session.get();
86
- if (!current)
87
- throw new Id.SignedOutError();
88
- if (!current.key)
89
- throw new Id.KeyRequiredError();
90
- const maxAmount = overrides.maxAmount ?? options.maxAmount;
91
- const maxDeposit = overrides.maxDeposit ?? options.maxDeposit;
92
- const mode = overrides.mode ?? options.mode;
93
- let byKey = payers.get(current.key);
94
- if (!byKey)
95
- payers.set(current.key, (byKey = new Map()));
96
- const name = [maxAmount, maxDeposit, mode].join('\n');
97
- const existing = byKey.get(name);
98
- if (existing)
99
- return existing;
100
- const created = create({
101
- account: AccessKey.toAccount(AccessKey.from(current.key)),
102
- fetch,
103
- getClient,
104
- maxAmount,
105
- maxDeposit,
106
- mode,
107
- });
108
- byKey.set(name, created);
109
- return created;
110
- }
111
- /** Returns the payer that resolves its access key at each call, as `payer` does. */
112
- function bind(overrides = {}) {
113
- return {
114
- // A missing session or access key rejects the request, as a failed fetch does.
115
- fetch: async (input, init) => payer(overrides).fetch(input, init),
116
- session: (parameters) => payer(overrides).session(parameters),
117
- };
118
- }
119
- return {
120
- mpp: Object.assign(bind, bind()),
121
- };
122
- },
123
- id: 'mpp',
124
- setup(value) {
125
- contexts.set(value.config, value);
126
- },
127
- });
128
- }
129
- /** Creates the payer of `account`. */
130
- function create(options) {
131
- const { account, fetch, getClient, maxAmount, maxDeposit, mode } = options;
132
- const mppx = Mppx.create({
133
- ...(fetch ? { fetch } : {}),
134
- methods: [tempo.charge({ account, getClient, ...(mode ? { mode } : {}) })],
135
- // The payer reads each charge's amount before the access key signs. A TIP-20 token has 6
136
- // decimals.
137
- onChallenge: (challenge) => {
138
- if (maxAmount === undefined)
139
- return Promise.resolve(undefined);
140
- const amount = BigInt(String(challenge.request.amount ?? 0));
141
- if (amount > parseUnits(maxAmount, 6))
142
- throw new MaxAmountError({ amount: formatUnits(amount, 6), maxAmount });
143
- return Promise.resolve(undefined);
144
- },
145
- // The payer pays only through its own `fetch`, so the app's other requests stay unchanged.
146
- polyfill: false,
147
- });
148
- return {
149
- fetch: (input, init) => mppx.fetch(input, init),
150
- session: (parameters = {}) => tempo.session.manager({
151
- ...(fetch ? { fetch } : {}),
152
- ...(maxDeposit ? { maxDeposit } : {}),
153
- ...parameters,
154
- account,
155
- getClient,
156
- }),
157
- };
158
- }
159
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mpp/index.ts"],"names":[],"mappings":"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"}
package/src/mpp/index.ts DELETED
@@ -1,249 +0,0 @@
1
- /**
2
- * The entry for MPP: `mpp`, a plugin that adds `tempoId.mpp`, which pays the 402 challenges of
3
- * Machine Payments Protocol (MPP) endpoints with the session's access key, through mppx.
4
- *
5
- * @example
6
- * ```ts
7
- * import { Id } from '@tempoxyz/id'
8
- * import { mpp } from '@tempoxyz/id/mpp'
9
- * import { dialog } from '@tempoxyz/id/plugins'
10
- *
11
- * const tempoId = Id.create({ accessKey, plugins: [dialog(), mpp()] })
12
- *
13
- * await tempoId.dialog.signIn()
14
- * const response = await tempoId.mpp.fetch('https://api.example.com/fortune')
15
- * ```
16
- * @module
17
- */
18
- import { Mppx, tempo } from 'mppx/client'
19
- import type { Chain, Client, Transport } from 'viem'
20
- import { createClient, formatUnits, parseUnits } from 'viem'
21
- import type { Account } from 'viem/tempo'
22
- import * as AccessKey from '../AccessKey.js'
23
- import * as Id from '../Id.js'
24
- import * as Plugin from '../Plugin.js'
25
- import { settings, viem } from '../plugins/viem.js'
26
- import type * as Session from '../Session.js'
27
-
28
- /** A charge costs more than `maxAmount`, so the payer signs nothing. */
29
- export class MaxAmountError extends Error {
30
- override readonly name = 'mpp.MaxAmountError'
31
-
32
- constructor(options: MaxAmountError.Options) {
33
- super(
34
- `The charge of ${options.amount} exceeds the \`maxAmount\` of ${options.maxAmount}. Raise \`maxAmount\` to pay it.`,
35
- )
36
- }
37
- }
38
-
39
- export declare namespace MaxAmountError {
40
- type Options = {
41
- /** The charge's amount, in the units of its token. */
42
- amount: string
43
- /** The most that a charge may cost, in the units of its token. */
44
- maxAmount: string
45
- }
46
- }
47
-
48
- /**
49
- * Returns the plugin of MPP payments, which adds `tempoId.mpp`. `tempoId.mpp.fetch` is `fetch`
50
- * that pays each charge an endpoint challenges for, and `tempoId.mpp.session()` returns a session
51
- * manager, which pays each request of a channel with a voucher. The access key of the instance's
52
- * session signs every payment, so no payment reaches the account's owner. `tempoId.mpp({ session })`
53
- * pays with a fixed session's access key, such as one that `tempoId.backend.get` returns.
54
- *
55
- * The plugin reads the chains and transports of the `viem` plugin, or of a `viem` plugin of its
56
- * own without one in `plugins`. `mppx` is an optional peer dependency of `@tempoxyz/id`.
57
- *
58
- * @example
59
- * ```ts
60
- * const tempoId = Id.create({ accessKey, plugins: [dialog(), mpp()] })
61
- *
62
- * const response = await tempoId.mpp.fetch('https://api.example.com/fortune')
63
- *
64
- * const session = tempoId.mpp.session()
65
- * await session.fetch('https://api.example.com/content')
66
- * await session.close()
67
- * ```
68
- */
69
- export function mpp(options: mpp.Options = {}) {
70
- const { fetch } = options
71
- // The context of each instance, by its configuration, since an app can pass one plugin to
72
- // several instances.
73
- const contexts = new WeakMap<Id.Config, Plugin.Context>()
74
-
75
- return Plugin.from({
76
- extend(instance: Id.Id) {
77
- const context = contexts.get(instance.config)!
78
- const held = (instance as unknown as { viem?: viem.Namespace }).viem
79
- const namespace = held ?? (viem().actions!(context) as viem.Namespace)
80
- const { chains, transport } = namespace[
81
- settings as never
82
- ] as unknown as viem.Settings
83
- // A client without an account reads the chain and broadcasts. The access key signs.
84
- const clients = new Map<number, Client<Transport, Chain>>()
85
- // The payers of each access key, one for each setting of the charges.
86
- const payers = new WeakMap<AccessKey.AccessKey, Map<string, mpp.Payer>>()
87
-
88
- /** Returns the client of the chain of `chainId`, one of the plugin's chains. */
89
- function getClient(parameters: { chainId?: number | undefined } = {}) {
90
- const chainId = parameters.chainId ?? instance.config.chainId
91
- const existing = clients.get(chainId)
92
- if (existing) return existing
93
- const chain = chains.find((entry) => entry.id === chainId)
94
- if (!chain)
95
- throw new Error(
96
- `Invalid chain: ${chainId} is not one of the viem plugin's \`chains\`. Add its definition to \`chains\`.`,
97
- )
98
- const client = createClient({ chain, transport: transport(chainId) })
99
- clients.set(chainId, client)
100
- return client
101
- }
102
-
103
- /**
104
- * Returns the payer of the access key of `overrides.session`, or of the instance's session,
105
- * with the plugin's settings under `overrides`.
106
- */
107
- function payer(overrides: mpp.Overrides) {
108
- const current = overrides.session ?? context.session.get()
109
- if (!current) throw new Id.SignedOutError()
110
- if (!current.key) throw new Id.KeyRequiredError()
111
- const maxAmount = overrides.maxAmount ?? options.maxAmount
112
- const maxDeposit = overrides.maxDeposit ?? options.maxDeposit
113
- const mode = overrides.mode ?? options.mode
114
- let byKey = payers.get(current.key)
115
- if (!byKey) payers.set(current.key, (byKey = new Map()))
116
- const name = [maxAmount, maxDeposit, mode].join('\n')
117
- const existing = byKey.get(name)
118
- if (existing) return existing
119
-
120
- const created = create({
121
- account: AccessKey.toAccount(AccessKey.from(current.key)),
122
- fetch,
123
- getClient,
124
- maxAmount,
125
- maxDeposit,
126
- mode,
127
- })
128
- byKey.set(name, created)
129
- return created
130
- }
131
-
132
- /** Returns the payer that resolves its access key at each call, as `payer` does. */
133
- function bind(overrides: mpp.Overrides = {}): mpp.Payer {
134
- return {
135
- // A missing session or access key rejects the request, as a failed fetch does.
136
- fetch: async (input, init) => payer(overrides).fetch(input, init),
137
- session: (parameters) => payer(overrides).session(parameters),
138
- }
139
- }
140
-
141
- return {
142
- mpp: Object.assign(bind, bind()) as mpp.Namespace,
143
- }
144
- },
145
- id: 'mpp',
146
- setup(value) {
147
- contexts.set(value.config, value)
148
- },
149
- })
150
- }
151
-
152
- export declare namespace mpp {
153
- type Options = Settings & {
154
- /** Sends each request to an endpoint, and its paid retry. Defaults to the global `fetch`. */
155
- fetch?: typeof globalThis.fetch | undefined
156
- }
157
-
158
- /** The settings of the payments, which the plugin's options set and a call overrides. */
159
- type Settings = {
160
- /**
161
- * The most that a charge may cost, in the units of its token, such as `'0.1'`. A larger charge
162
- * throws `mpp.MaxAmountError` before the access key signs. Defaults to no maximum, within the
163
- * access key's token limits.
164
- */
165
- maxAmount?: string | undefined
166
- /**
167
- * The most that a session's channel holds, in the units of its token, such as `'0.05'`. It
168
- * caps the deposit that an endpoint suggests and each top-up. Defaults to the deposit that the
169
- * endpoint suggests, within the access key's token limits.
170
- */
171
- maxDeposit?: string | undefined
172
- /**
173
- * Who broadcasts a charge's transaction: the endpoint (`'pull'`) or the app (`'push'`).
174
- * Defaults to `'pull'`.
175
- */
176
- mode?: 'pull' | 'push' | undefined
177
- }
178
-
179
- /** The overrides of a payer, for one call. */
180
- type Overrides = Settings & {
181
- /**
182
- * A fixed session, such as one that `tempoId.backend.get` returns, whose access key pays.
183
- * Defaults to the instance's session, read at each payment.
184
- */
185
- session?: Session.Session | undefined
186
- }
187
-
188
- /** The payments of one access key. */
189
- type Payer = {
190
- /**
191
- * Sends a request, and pays a 402 charge challenge with the access key, then returns the
192
- * endpoint's response to the paid retry. Throws `Id.SignedOutError` without a session, and
193
- * `Id.KeyRequiredError` for a session without an access key.
194
- */
195
- fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>
196
- /**
197
- * Returns a session manager of mppx, which opens a channel on the first request of a session
198
- * endpoint, pays each request with a voucher of the access key, and closes the channel at
199
- * `close()`. The manager holds the channel in memory, so close it before it is discarded.
200
- */
201
- session: (
202
- parameters?: Omit<
203
- Parameters<typeof tempo.session.manager>[0],
204
- 'account' | 'client' | 'getClient'
205
- >,
206
- ) => ReturnType<typeof tempo.session.manager>
207
- }
208
-
209
- /** `tempoId.mpp`: the payer of the instance's session, which a call fixes to another session. */
210
- type Namespace = Payer & ((overrides?: Overrides) => Payer)
211
- }
212
-
213
- /** Creates the payer of `account`. */
214
- function create(options: {
215
- account: Account.AccessKeyAccount
216
- fetch: typeof globalThis.fetch | undefined
217
- getClient: (parameters: { chainId?: number | undefined }) => Client
218
- maxAmount: string | undefined
219
- maxDeposit: string | undefined
220
- mode: 'pull' | 'push' | undefined
221
- }): mpp.Payer {
222
- const { account, fetch, getClient, maxAmount, maxDeposit, mode } = options
223
- const mppx = Mppx.create({
224
- ...(fetch ? { fetch } : {}),
225
- methods: [tempo.charge({ account, getClient, ...(mode ? { mode } : {}) })],
226
- // The payer reads each charge's amount before the access key signs. A TIP-20 token has 6
227
- // decimals.
228
- onChallenge: (challenge) => {
229
- if (maxAmount === undefined) return Promise.resolve(undefined)
230
- const amount = BigInt(String(challenge.request.amount ?? 0))
231
- if (amount > parseUnits(maxAmount, 6))
232
- throw new MaxAmountError({ amount: formatUnits(amount, 6), maxAmount })
233
- return Promise.resolve(undefined)
234
- },
235
- // The payer pays only through its own `fetch`, so the app's other requests stay unchanged.
236
- polyfill: false,
237
- })
238
- return {
239
- fetch: (input, init) => mppx.fetch(input, init),
240
- session: (parameters = {}) =>
241
- tempo.session.manager({
242
- ...(fetch ? { fetch } : {}),
243
- ...(maxDeposit ? { maxDeposit } : {}),
244
- ...parameters,
245
- account,
246
- getClient,
247
- }),
248
- }
249
- }