accounts 0.12.2 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +6 -5
- package/dist/cli/adapter.d.ts.map +1 -1
- package/dist/cli/adapter.js +53 -67
- package/dist/cli/adapter.js.map +1 -1
- package/dist/core/AccessKey.d.ts +89 -106
- package/dist/core/AccessKey.d.ts.map +1 -1
- package/dist/core/AccessKey.js +226 -210
- package/dist/core/AccessKey.js.map +1 -1
- package/dist/core/Account.d.ts +0 -9
- package/dist/core/Account.d.ts.map +1 -1
- package/dist/core/Account.js +1 -13
- package/dist/core/Account.js.map +1 -1
- package/dist/core/Adapter.d.ts +10 -2
- package/dist/core/Adapter.d.ts.map +1 -1
- package/dist/core/Provider.d.ts +4 -5
- package/dist/core/Provider.d.ts.map +1 -1
- package/dist/core/Provider.js +66 -76
- package/dist/core/Provider.js.map +1 -1
- package/dist/core/Schema.d.ts +7 -7
- package/dist/core/adapters/dialog.d.ts.map +1 -1
- package/dist/core/adapters/dialog.js +114 -124
- package/dist/core/adapters/dialog.js.map +1 -1
- package/dist/core/adapters/local.d.ts.map +1 -1
- package/dist/core/adapters/local.js +92 -105
- package/dist/core/adapters/local.js.map +1 -1
- package/dist/core/adapters/privy.d.ts +164 -0
- package/dist/core/adapters/privy.d.ts.map +1 -0
- package/dist/core/adapters/privy.js +574 -0
- package/dist/core/adapters/privy.js.map +1 -0
- package/dist/core/adapters/turnkey.d.ts.map +1 -1
- package/dist/core/adapters/turnkey.js +136 -133
- package/dist/core/adapters/turnkey.js.map +1 -1
- package/dist/core/internal/AccessKeyTransaction.d.ts +59 -0
- package/dist/core/internal/AccessKeyTransaction.d.ts.map +1 -0
- package/dist/core/internal/AccessKeyTransaction.js +155 -0
- package/dist/core/internal/AccessKeyTransaction.js.map +1 -0
- package/dist/core/zod/rpc.d.ts +9 -4
- package/dist/core/zod/rpc.d.ts.map +1 -1
- package/dist/core/zod/rpc.js +9 -4
- package/dist/core/zod/rpc.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react-native/adapter.d.ts.map +1 -1
- package/dist/react-native/adapter.js +61 -72
- package/dist/react-native/adapter.js.map +1 -1
- package/dist/server/Kv.d.ts +19 -9
- package/dist/server/Kv.d.ts.map +1 -1
- package/dist/server/Kv.js +32 -9
- package/dist/server/Kv.js.map +1 -1
- package/dist/server/internal/handlers/auth.d.ts.map +1 -1
- package/dist/server/internal/handlers/auth.js +2 -0
- package/dist/server/internal/handlers/auth.js.map +1 -1
- package/dist/server/internal/handlers/relay.d.ts +18 -12
- package/dist/server/internal/handlers/relay.d.ts.map +1 -1
- package/dist/server/internal/handlers/relay.js +115 -2
- package/dist/server/internal/handlers/relay.js.map +1 -1
- package/dist/server/internal/handlers/webAuthn.d.ts +6 -1
- package/dist/server/internal/handlers/webAuthn.d.ts.map +1 -1
- package/dist/server/internal/handlers/webAuthn.js +16 -9
- package/dist/server/internal/handlers/webAuthn.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/adapter.ts +69 -74
- package/src/core/AccessKey.test.ts +525 -559
- package/src/core/AccessKey.ts +323 -327
- package/src/core/Account.test.ts +5 -50
- package/src/core/Account.ts +1 -19
- package/src/core/Adapter.ts +6 -2
- package/src/core/{Provider.test.ts → Provider.localnet.test.ts} +97 -31
- package/src/core/Provider.ts +110 -110
- package/src/core/Schema.test-d.ts +18 -0
- package/src/core/adapters/dialog.test.ts +137 -13
- package/src/core/adapters/dialog.ts +109 -121
- package/src/core/adapters/local.ts +95 -119
- package/src/core/adapters/privy.test-d.ts +128 -0
- package/src/core/adapters/privy.test.ts +634 -0
- package/src/core/adapters/privy.ts +805 -0
- package/src/core/adapters/turnkey.test.ts +117 -13
- package/src/core/adapters/turnkey.ts +132 -149
- package/src/core/internal/AccessKeyTransaction.ts +243 -0
- package/src/core/{mppx.test.ts → mppx.localnet.test.ts} +32 -2
- package/src/core/zod/request.test.ts +36 -0
- package/src/core/zod/rpc.ts +17 -10
- package/src/index.ts +1 -1
- package/src/react-native/adapter.ts +77 -84
- package/src/server/Kv.test.ts +51 -0
- package/src/server/Kv.ts +43 -9
- package/src/server/internal/handlers/auth.test.ts +10 -5
- package/src/server/internal/handlers/auth.ts +3 -0
- package/src/server/internal/handlers/{relay.test.ts → relay.localnet.test.ts} +3 -0
- package/src/server/internal/handlers/relay.ts +138 -13
- package/src/server/internal/handlers/session.test.ts +1 -1
- package/src/server/internal/handlers/webAuthn.test.ts +20 -0
- package/src/server/internal/handlers/webAuthn.ts +24 -12
- /package/src/cli/{Provider.test.ts → Provider.localnet.test.ts} +0 -0
- /package/src/react-native/{Provider.test.ts → Provider.localnet.test.ts} +0 -0
- /package/src/server/internal/handlers/{exchange.test.ts → exchange.localnet.test.ts} +0 -0
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Address, Provider as ox_Provider, RpcRequest as ox_RpcRequest } from 'ox';
|
|
2
2
|
import { KeyAuthorization } from 'ox/tempo';
|
|
3
|
-
import { prepareTransactionRequest } from 'viem/actions';
|
|
4
|
-
import { Account as TempoAccount } from 'viem/tempo';
|
|
5
3
|
import { z } from 'zod/mini';
|
|
6
4
|
import * as AccessKey from '../AccessKey.js';
|
|
7
5
|
import * as Adapter from '../Adapter.js';
|
|
8
6
|
import * as Dialog from '../Dialog.js';
|
|
7
|
+
import * as AccessKeyTransaction from '../internal/AccessKeyTransaction.js';
|
|
9
8
|
import * as Schema from '../Schema.js';
|
|
10
9
|
import * as Rpc from '../zod/rpc.js';
|
|
11
10
|
/**
|
|
@@ -107,38 +106,12 @@ export function dialog(options = {}) {
|
|
|
107
106
|
*/
|
|
108
107
|
function saveAccessKey(address, keyAuth, keyPair) {
|
|
109
108
|
const keyAuthorization = KeyAuthorization.fromRpc(keyAuth);
|
|
110
|
-
AccessKey.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
* when no access key exists so the caller can fall through to the dialog.
|
|
115
|
-
* On stale-key errors, removes the key and also returns `undefined`.
|
|
116
|
-
* On recoverable transaction errors, keeps the key and falls through to
|
|
117
|
-
* the dialog so the user can fund, approve, or retry.
|
|
118
|
-
*/
|
|
119
|
-
async function withAccessKey(options, fn) {
|
|
120
|
-
if (!options.from || typeof options.chainId === 'undefined')
|
|
121
|
-
return undefined;
|
|
122
|
-
const account = AccessKey.selectAccount({
|
|
123
|
-
address: options.from,
|
|
124
|
-
calls: options.calls,
|
|
125
|
-
chainId: options.chainId,
|
|
109
|
+
AccessKey.add({
|
|
110
|
+
account: address,
|
|
111
|
+
authorization: keyAuthorization,
|
|
112
|
+
keyPair,
|
|
126
113
|
store,
|
|
127
114
|
});
|
|
128
|
-
if (!account)
|
|
129
|
-
return undefined;
|
|
130
|
-
const keyAuthorization = AccessKey.getPending(account, { store });
|
|
131
|
-
try {
|
|
132
|
-
const result = await fn(account, keyAuthorization ?? undefined);
|
|
133
|
-
return { account, result };
|
|
134
|
-
}
|
|
135
|
-
catch (err) {
|
|
136
|
-
if (AccessKey.invalidate(account, err, { store }))
|
|
137
|
-
console.warn('[accounts] access key invalidated, falling through to dialog:', err);
|
|
138
|
-
else
|
|
139
|
-
console.warn('[accounts] access key sign failed, falling through to dialog:', err);
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
115
|
}
|
|
143
116
|
const dialogInstance = dialog({ host, store, theme });
|
|
144
117
|
// Sync store → dialog: whenever the request queue changes, notify
|
|
@@ -177,18 +150,16 @@ export function dialog(options = {}) {
|
|
|
177
150
|
],
|
|
178
151
|
});
|
|
179
152
|
const address = accounts[0]?.address;
|
|
180
|
-
const
|
|
153
|
+
const capabilities = accounts[0]?.capabilities;
|
|
154
|
+
const keyAuthorization = capabilities?.keyAuthorization;
|
|
181
155
|
if (accessKey && address && keyAuthorization)
|
|
182
156
|
saveAccessKey(address, keyAuthorization, accessKey.keyPair);
|
|
183
157
|
return {
|
|
184
158
|
accounts: accounts.map((a) => ({ address: a.address })),
|
|
159
|
+
...(capabilities?.auth ? { auth: capabilities.auth } : {}),
|
|
185
160
|
...(keyAuthorization ? { keyAuthorization } : {}),
|
|
186
|
-
...(
|
|
187
|
-
|
|
188
|
-
: {}),
|
|
189
|
-
...(accounts[0]?.capabilities.personalSign
|
|
190
|
-
? { personalSign: accounts[0].capabilities.personalSign }
|
|
191
|
-
: {}),
|
|
161
|
+
...(capabilities?.signature ? { signature: capabilities.signature } : {}),
|
|
162
|
+
...(capabilities?.personalSign ? { personalSign: capabilities.personalSign } : {}),
|
|
192
163
|
};
|
|
193
164
|
},
|
|
194
165
|
async loadAccounts(parameters, request) {
|
|
@@ -210,47 +181,54 @@ export function dialog(options = {}) {
|
|
|
210
181
|
],
|
|
211
182
|
});
|
|
212
183
|
const address = accounts[0]?.address;
|
|
213
|
-
const
|
|
184
|
+
const capabilities = accounts[0]?.capabilities;
|
|
185
|
+
const keyAuthorization = capabilities?.keyAuthorization;
|
|
214
186
|
if (accessKey && address && keyAuthorization)
|
|
215
187
|
saveAccessKey(address, keyAuthorization, accessKey.keyPair);
|
|
216
188
|
return {
|
|
217
189
|
accounts: accounts.map((a) => ({ address: a.address })),
|
|
190
|
+
...(capabilities?.auth ? { auth: capabilities.auth } : {}),
|
|
218
191
|
...(keyAuthorization ? { keyAuthorization } : {}),
|
|
219
|
-
...(
|
|
220
|
-
|
|
221
|
-
: {}),
|
|
222
|
-
...(accounts[0]?.capabilities.personalSign
|
|
223
|
-
? { personalSign: accounts[0].capabilities.personalSign }
|
|
224
|
-
: {}),
|
|
192
|
+
...(capabilities?.signature ? { signature: capabilities.signature } : {}),
|
|
193
|
+
...(capabilities?.personalSign ? { personalSign: capabilities.personalSign } : {}),
|
|
225
194
|
};
|
|
226
195
|
},
|
|
227
196
|
async signPersonalMessage(_params, request) {
|
|
228
197
|
return await provider.request(request);
|
|
229
198
|
},
|
|
230
199
|
async signTransaction(parameters, request) {
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
})(),
|
|
242
|
-
});
|
|
243
|
-
const prepared = await prepareTransactionRequest(client, {
|
|
244
|
-
account,
|
|
245
|
-
...rest,
|
|
246
|
-
...(typeof feePayer !== 'undefined' ? { feePayer: !!feePayer } : {}),
|
|
247
|
-
keyAuthorization,
|
|
248
|
-
type: 'tempo',
|
|
249
|
-
});
|
|
250
|
-
return await account.signTransaction(prepared);
|
|
200
|
+
const { feePayer, ...rest } = parameters;
|
|
201
|
+
const client = getClient({
|
|
202
|
+
chainId: parameters.chainId,
|
|
203
|
+
feePayer: (() => {
|
|
204
|
+
if (feePayer === false)
|
|
205
|
+
return false;
|
|
206
|
+
if (typeof feePayer === 'string')
|
|
207
|
+
return feePayer;
|
|
208
|
+
return undefined;
|
|
209
|
+
})(),
|
|
251
210
|
});
|
|
252
|
-
|
|
253
|
-
|
|
211
|
+
const transaction = parameters.from && typeof parameters.chainId !== 'undefined'
|
|
212
|
+
? await AccessKeyTransaction.create({
|
|
213
|
+
address: parameters.from,
|
|
214
|
+
calls: parameters.calls,
|
|
215
|
+
chainId: parameters.chainId,
|
|
216
|
+
client,
|
|
217
|
+
store,
|
|
218
|
+
})
|
|
219
|
+
: undefined;
|
|
220
|
+
if (transaction) {
|
|
221
|
+
try {
|
|
222
|
+
const prepared = await transaction.prepare({
|
|
223
|
+
...rest,
|
|
224
|
+
...(typeof feePayer !== 'undefined' ? { feePayer: !!feePayer } : {}),
|
|
225
|
+
});
|
|
226
|
+
return await prepared.sign();
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
console.warn('[accounts] access key sign failed, falling through to dialog:', error);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
254
232
|
return await provider.request({
|
|
255
233
|
...request,
|
|
256
234
|
params: [z.encode(Rpc.transactionRequest, parameters)],
|
|
@@ -260,34 +238,37 @@ export function dialog(options = {}) {
|
|
|
260
238
|
return await provider.request(request);
|
|
261
239
|
},
|
|
262
240
|
async sendTransaction(parameters, request) {
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
})(),
|
|
274
|
-
});
|
|
275
|
-
const prepared = await prepareTransactionRequest(client, {
|
|
276
|
-
account,
|
|
277
|
-
...rest,
|
|
278
|
-
...(typeof feePayer !== 'undefined' ? { feePayer: !!feePayer } : {}),
|
|
279
|
-
keyAuthorization,
|
|
280
|
-
type: 'tempo',
|
|
281
|
-
});
|
|
282
|
-
const signed = await account.signTransaction(prepared);
|
|
283
|
-
return await client.request({
|
|
284
|
-
method: 'eth_sendRawTransaction',
|
|
285
|
-
params: [signed],
|
|
286
|
-
});
|
|
241
|
+
const { feePayer, ...rest } = parameters;
|
|
242
|
+
const client = getClient({
|
|
243
|
+
chainId: parameters.chainId,
|
|
244
|
+
feePayer: (() => {
|
|
245
|
+
if (feePayer === false)
|
|
246
|
+
return false;
|
|
247
|
+
if (typeof feePayer === 'string')
|
|
248
|
+
return feePayer;
|
|
249
|
+
return undefined;
|
|
250
|
+
})(),
|
|
287
251
|
});
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
252
|
+
const transaction = parameters.from && typeof parameters.chainId !== 'undefined'
|
|
253
|
+
? await AccessKeyTransaction.create({
|
|
254
|
+
address: parameters.from,
|
|
255
|
+
calls: parameters.calls,
|
|
256
|
+
chainId: parameters.chainId,
|
|
257
|
+
client,
|
|
258
|
+
store,
|
|
259
|
+
})
|
|
260
|
+
: undefined;
|
|
261
|
+
if (transaction) {
|
|
262
|
+
try {
|
|
263
|
+
const prepared = await transaction.prepare({
|
|
264
|
+
...rest,
|
|
265
|
+
...(typeof feePayer !== 'undefined' ? { feePayer: !!feePayer } : {}),
|
|
266
|
+
});
|
|
267
|
+
return await prepared.send();
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
console.warn('[accounts] access key sign failed, falling through to dialog:', error);
|
|
271
|
+
}
|
|
291
272
|
}
|
|
292
273
|
return await provider.request({
|
|
293
274
|
...request,
|
|
@@ -295,34 +276,37 @@ export function dialog(options = {}) {
|
|
|
295
276
|
});
|
|
296
277
|
},
|
|
297
278
|
async sendTransactionSync(parameters, request) {
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
})(),
|
|
309
|
-
});
|
|
310
|
-
const prepared = await prepareTransactionRequest(client, {
|
|
311
|
-
account,
|
|
312
|
-
...rest,
|
|
313
|
-
...(typeof feePayer !== 'undefined' ? { feePayer: !!feePayer } : {}),
|
|
314
|
-
keyAuthorization,
|
|
315
|
-
type: 'tempo',
|
|
316
|
-
});
|
|
317
|
-
const signed = await account.signTransaction(prepared);
|
|
318
|
-
return await client.request({
|
|
319
|
-
method: 'eth_sendRawTransactionSync',
|
|
320
|
-
params: [signed],
|
|
321
|
-
});
|
|
279
|
+
const { feePayer, ...rest } = parameters;
|
|
280
|
+
const client = getClient({
|
|
281
|
+
chainId: parameters.chainId,
|
|
282
|
+
feePayer: (() => {
|
|
283
|
+
if (feePayer === false)
|
|
284
|
+
return false;
|
|
285
|
+
if (typeof feePayer === 'string')
|
|
286
|
+
return feePayer;
|
|
287
|
+
return undefined;
|
|
288
|
+
})(),
|
|
322
289
|
});
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
290
|
+
const transaction = parameters.from && typeof parameters.chainId !== 'undefined'
|
|
291
|
+
? await AccessKeyTransaction.create({
|
|
292
|
+
address: parameters.from,
|
|
293
|
+
calls: parameters.calls,
|
|
294
|
+
chainId: parameters.chainId,
|
|
295
|
+
client,
|
|
296
|
+
store,
|
|
297
|
+
})
|
|
298
|
+
: undefined;
|
|
299
|
+
if (transaction) {
|
|
300
|
+
try {
|
|
301
|
+
const prepared = await transaction.prepare({
|
|
302
|
+
...rest,
|
|
303
|
+
...(typeof feePayer !== 'undefined' ? { feePayer: !!feePayer } : {}),
|
|
304
|
+
});
|
|
305
|
+
return await prepared.sendSync();
|
|
306
|
+
}
|
|
307
|
+
catch (error) {
|
|
308
|
+
console.warn('[accounts] access key sign failed, falling through to dialog:', error);
|
|
309
|
+
}
|
|
326
310
|
}
|
|
327
311
|
return await provider.request({
|
|
328
312
|
...request,
|
|
@@ -338,13 +322,19 @@ export function dialog(options = {}) {
|
|
|
338
322
|
],
|
|
339
323
|
});
|
|
340
324
|
if (accessKey) {
|
|
341
|
-
const account = getAccount({
|
|
325
|
+
const account = getAccount({ signable: false });
|
|
342
326
|
saveAccessKey(account.address, result.keyAuthorization, accessKey.keyPair);
|
|
343
327
|
}
|
|
344
328
|
return result;
|
|
345
329
|
},
|
|
346
|
-
async revokeAccessKey(
|
|
330
|
+
async revokeAccessKey(params, request) {
|
|
347
331
|
await provider.request(request);
|
|
332
|
+
AccessKey.remove({
|
|
333
|
+
accessKey: params.accessKeyAddress,
|
|
334
|
+
account: params.address,
|
|
335
|
+
chainId: store.getState().chainId,
|
|
336
|
+
store,
|
|
337
|
+
});
|
|
348
338
|
},
|
|
349
339
|
async deposit(_params, request) {
|
|
350
340
|
return await provider.request(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/core/adapters/dialog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/core/adapters/dialog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/local.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/local.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAuQ7D;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,OAAO,GAAG;QACb,kEAAkE;QAClE,aAAa,CAAC,EACV,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GACzF,SAAS,CAAA;QACb,4DAA4D;QAC5D,YAAY,EAAE,CACZ,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,GAAG,SAAS,KACjD,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QAC7C,6DAA6D;QAC7D,IAAI,CAAC,EAAE,cAAc,MAAM,EAAE,GAAG,SAAS,CAAA;QACzC,oFAAoF;QACpF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,8DAA8D;QAC9D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,CAAA;CACF"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Provider as ox_Provider } from 'ox';
|
|
2
|
-
import { KeyAuthorization } from 'ox/tempo';
|
|
3
|
-
import {
|
|
2
|
+
import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo';
|
|
3
|
+
import { hashMessage } from 'viem';
|
|
4
4
|
import { prepareTransactionRequest } from 'viem/actions';
|
|
5
|
-
import {
|
|
5
|
+
import { Actions } from 'viem/tempo';
|
|
6
6
|
import * as AccessKey from '../AccessKey.js';
|
|
7
7
|
import * as Account from '../Account.js';
|
|
8
8
|
import * as Adapter from '../Adapter.js';
|
|
9
|
+
import * as AccessKeyTransaction from '../internal/AccessKeyTransaction.js';
|
|
9
10
|
/**
|
|
10
11
|
* Creates a local adapter where the app manages keys and signing in-process.
|
|
11
12
|
*
|
|
@@ -25,19 +26,70 @@ import * as Adapter from '../Adapter.js';
|
|
|
25
26
|
export function local(options) {
|
|
26
27
|
const { createAccount, icon, loadAccounts, name, rdns } = options;
|
|
27
28
|
return Adapter.define({ icon, name, rdns }, ({ getAccount, getClient, store }) => {
|
|
28
|
-
async function
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
async function prepareTransaction(parameters) {
|
|
30
|
+
const { feePayer, ...rest } = parameters;
|
|
31
|
+
const client = getClient({
|
|
32
|
+
chainId: parameters.chainId,
|
|
33
|
+
feePayer: (() => {
|
|
34
|
+
if (feePayer === false)
|
|
35
|
+
return false;
|
|
36
|
+
if (typeof feePayer === 'string')
|
|
37
|
+
return feePayer;
|
|
38
|
+
return undefined;
|
|
39
|
+
})(),
|
|
40
|
+
});
|
|
41
|
+
const request = {
|
|
42
|
+
...rest,
|
|
43
|
+
...(feePayer ? { feePayer: true } : {}),
|
|
44
|
+
};
|
|
45
|
+
const state = store.getState();
|
|
46
|
+
const address = parameters.from ?? state.accounts[state.activeAccount]?.address;
|
|
47
|
+
const transaction = address
|
|
48
|
+
? await AccessKeyTransaction.create({
|
|
49
|
+
address,
|
|
50
|
+
calls: parameters.calls,
|
|
51
|
+
chainId: parameters.chainId ?? state.chainId,
|
|
52
|
+
client,
|
|
53
|
+
store,
|
|
54
|
+
})
|
|
55
|
+
: undefined;
|
|
56
|
+
if (transaction) {
|
|
57
|
+
try {
|
|
58
|
+
return await transaction.prepare(request);
|
|
59
|
+
}
|
|
60
|
+
catch { }
|
|
33
61
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
62
|
+
const account = getAccount({
|
|
63
|
+
address: parameters.from,
|
|
64
|
+
signable: true,
|
|
65
|
+
});
|
|
66
|
+
const prepared = await prepareTransactionRequest(client, {
|
|
67
|
+
account,
|
|
68
|
+
...request,
|
|
69
|
+
keyAuthorization: undefined,
|
|
70
|
+
type: 'tempo',
|
|
71
|
+
});
|
|
72
|
+
async function sign() {
|
|
73
|
+
return await account.signTransaction(prepared);
|
|
40
74
|
}
|
|
75
|
+
return {
|
|
76
|
+
request: prepared,
|
|
77
|
+
sign,
|
|
78
|
+
async send() {
|
|
79
|
+
const signed = await sign();
|
|
80
|
+
return (await client.request({
|
|
81
|
+
method: 'eth_sendRawTransaction',
|
|
82
|
+
params: [signed],
|
|
83
|
+
}));
|
|
84
|
+
},
|
|
85
|
+
async sendSync() {
|
|
86
|
+
const signed = await sign();
|
|
87
|
+
return (await client.request({
|
|
88
|
+
method: 'eth_sendRawTransactionSync',
|
|
89
|
+
params: [signed],
|
|
90
|
+
}));
|
|
91
|
+
},
|
|
92
|
+
};
|
|
41
93
|
}
|
|
42
94
|
return {
|
|
43
95
|
actions: {
|
|
@@ -85,7 +137,7 @@ export function local(options) {
|
|
|
85
137
|
};
|
|
86
138
|
},
|
|
87
139
|
async authorizeAccessKey(parameters) {
|
|
88
|
-
const account = getAccount({
|
|
140
|
+
const account = getAccount({ signable: true });
|
|
89
141
|
const keyAuthorization = await AccessKey.authorize({
|
|
90
142
|
account,
|
|
91
143
|
chainId: getClient().chain.id,
|
|
@@ -113,7 +165,7 @@ export function local(options) {
|
|
|
113
165
|
: undefined;
|
|
114
166
|
// Slot allocation:
|
|
115
167
|
// 1. `personalSign` digest, if present.
|
|
116
|
-
// 2. Else key-auth digest (existing 1-prompt fold for `authorizeAccessKey`).
|
|
168
|
+
// 2. Else unsigned key-auth digest (existing 1-prompt fold for `authorizeAccessKey`).
|
|
117
169
|
// 3. Else caller's `rest.digest`.
|
|
118
170
|
// When BOTH `personalSign` and `authorizeAccessKey` are present,
|
|
119
171
|
// `personalSign` wins the load-accounts ceremony and the key
|
|
@@ -140,12 +192,18 @@ export function local(options) {
|
|
|
140
192
|
const signature_keyAuthorization = peronsalSign_digest || !signature_
|
|
141
193
|
? await account.sign({ hash: keyAuthorization_digest })
|
|
142
194
|
: signature_;
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
195
|
+
const keyAuthorization = KeyAuthorization.from(keyAuthorization_unsigned.keyAuthorization, {
|
|
196
|
+
signature: SignatureEnvelope.from(signature_keyAuthorization),
|
|
197
|
+
});
|
|
198
|
+
AccessKey.add({
|
|
199
|
+
account: account.address,
|
|
200
|
+
authorization: keyAuthorization,
|
|
201
|
+
...(keyAuthorization_unsigned.keyPair
|
|
202
|
+
? { keyPair: keyAuthorization_unsigned.keyPair }
|
|
203
|
+
: {}),
|
|
147
204
|
store,
|
|
148
205
|
});
|
|
206
|
+
return KeyAuthorization.toRpc(keyAuthorization);
|
|
149
207
|
})();
|
|
150
208
|
return {
|
|
151
209
|
accounts,
|
|
@@ -157,7 +215,7 @@ export function local(options) {
|
|
|
157
215
|
};
|
|
158
216
|
},
|
|
159
217
|
async revokeAccessKey(parameters) {
|
|
160
|
-
const account = getAccount({
|
|
218
|
+
const account = getAccount({ signable: true });
|
|
161
219
|
const client = getClient();
|
|
162
220
|
try {
|
|
163
221
|
await Actions.accessKey.revoke(client, {
|
|
@@ -166,42 +224,23 @@ export function local(options) {
|
|
|
166
224
|
});
|
|
167
225
|
}
|
|
168
226
|
catch (error) {
|
|
169
|
-
|
|
170
|
-
!!error.walk((e) => e.data?.errorName === 'KeyNotFound');
|
|
171
|
-
if (!isKeyNotFound)
|
|
227
|
+
if (!AccessKey.isUnavailableError(error))
|
|
172
228
|
throw error;
|
|
173
229
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
230
|
+
AccessKey.remove({
|
|
231
|
+
accessKey: parameters.accessKeyAddress,
|
|
232
|
+
account: account.address,
|
|
233
|
+
chainId: client.chain.id,
|
|
234
|
+
store,
|
|
235
|
+
});
|
|
177
236
|
},
|
|
178
237
|
async signPersonalMessage({ data, address }) {
|
|
179
238
|
const account = getAccount({ address, signable: true });
|
|
180
239
|
return await account.signMessage({ message: { raw: data } });
|
|
181
240
|
},
|
|
182
241
|
async signTransaction(parameters) {
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
chainId: parameters.chainId,
|
|
186
|
-
feePayer: (() => {
|
|
187
|
-
if (feePayer === false)
|
|
188
|
-
return false;
|
|
189
|
-
if (typeof feePayer === 'string')
|
|
190
|
-
return feePayer;
|
|
191
|
-
return undefined;
|
|
192
|
-
})(),
|
|
193
|
-
});
|
|
194
|
-
const { account, prepared } = await withAccessKey({ address: parameters.from, calls: parameters.calls, chainId: parameters.chainId }, async (account, keyAuthorization) => ({
|
|
195
|
-
account,
|
|
196
|
-
prepared: await prepareTransactionRequest(client, {
|
|
197
|
-
account,
|
|
198
|
-
...rest,
|
|
199
|
-
...(feePayer ? { feePayer: true } : {}),
|
|
200
|
-
keyAuthorization,
|
|
201
|
-
type: 'tempo',
|
|
202
|
-
}),
|
|
203
|
-
}));
|
|
204
|
-
return await account.signTransaction(prepared);
|
|
242
|
+
const prepared = await prepareTransaction(parameters);
|
|
243
|
+
return await prepared.sign();
|
|
205
244
|
},
|
|
206
245
|
async signTypedData({ data, address }) {
|
|
207
246
|
const account = getAccount({ address, signable: true });
|
|
@@ -209,64 +248,12 @@ export function local(options) {
|
|
|
209
248
|
return await account.signTypedData(parsed);
|
|
210
249
|
},
|
|
211
250
|
async sendTransaction(parameters) {
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
chainId: parameters.chainId,
|
|
215
|
-
feePayer: (() => {
|
|
216
|
-
if (feePayer === false)
|
|
217
|
-
return false;
|
|
218
|
-
if (typeof feePayer === 'string')
|
|
219
|
-
return feePayer;
|
|
220
|
-
return undefined;
|
|
221
|
-
})(),
|
|
222
|
-
});
|
|
223
|
-
const { account, prepared } = await withAccessKey({ address: parameters.from, calls: parameters.calls, chainId: parameters.chainId }, async (account, keyAuthorization) => ({
|
|
224
|
-
account,
|
|
225
|
-
prepared: await prepareTransactionRequest(client, {
|
|
226
|
-
account,
|
|
227
|
-
...rest,
|
|
228
|
-
...(feePayer ? { feePayer: true } : {}),
|
|
229
|
-
keyAuthorization,
|
|
230
|
-
type: 'tempo',
|
|
231
|
-
}),
|
|
232
|
-
}));
|
|
233
|
-
const signed = await account.signTransaction(prepared);
|
|
234
|
-
const result = await client.request({
|
|
235
|
-
method: 'eth_sendRawTransaction',
|
|
236
|
-
params: [signed],
|
|
237
|
-
});
|
|
238
|
-
AccessKey.removePending(account, { store });
|
|
239
|
-
return result;
|
|
251
|
+
const prepared = await prepareTransaction(parameters);
|
|
252
|
+
return await prepared.send();
|
|
240
253
|
},
|
|
241
254
|
async sendTransactionSync(parameters) {
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
chainId: parameters.chainId,
|
|
245
|
-
feePayer: (() => {
|
|
246
|
-
if (feePayer === false)
|
|
247
|
-
return false;
|
|
248
|
-
if (typeof feePayer === 'string')
|
|
249
|
-
return feePayer;
|
|
250
|
-
return undefined;
|
|
251
|
-
})(),
|
|
252
|
-
});
|
|
253
|
-
const { account, prepared } = await withAccessKey({ address: parameters.from, calls: parameters.calls, chainId: parameters.chainId }, async (account, keyAuthorization) => ({
|
|
254
|
-
account,
|
|
255
|
-
prepared: await prepareTransactionRequest(client, {
|
|
256
|
-
account,
|
|
257
|
-
...rest,
|
|
258
|
-
...(feePayer ? { feePayer: true } : {}),
|
|
259
|
-
keyAuthorization,
|
|
260
|
-
type: 'tempo',
|
|
261
|
-
}),
|
|
262
|
-
}));
|
|
263
|
-
const signed = await account.signTransaction(prepared);
|
|
264
|
-
const result = await client.request({
|
|
265
|
-
method: 'eth_sendRawTransactionSync',
|
|
266
|
-
params: [signed],
|
|
267
|
-
});
|
|
268
|
-
AccessKey.removePending(account, { store });
|
|
269
|
-
return result;
|
|
255
|
+
const prepared = await prepareTransaction(parameters);
|
|
256
|
+
return await prepared.sendSync();
|
|
270
257
|
},
|
|
271
258
|
},
|
|
272
259
|
};
|