ox 0.14.10 → 0.14.12
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 +14 -0
- package/_cjs/erc8021/Attribution.js +7 -1
- package/_cjs/erc8021/Attribution.js.map +1 -1
- package/_cjs/tempo/KeyAuthorization.js +141 -21
- package/_cjs/tempo/KeyAuthorization.js.map +1 -1
- package/_cjs/tempo/Period.js +31 -0
- package/_cjs/tempo/Period.js.map +1 -0
- package/_cjs/tempo/index.js +2 -1
- package/_cjs/tempo/index.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_cjs/webauthn/Credential.js +6 -0
- package/_cjs/webauthn/Credential.js.map +1 -1
- package/_esm/erc8021/Attribution.js +7 -1
- package/_esm/erc8021/Attribution.js.map +1 -1
- package/_esm/tempo/KeyAuthorization.js +150 -22
- package/_esm/tempo/KeyAuthorization.js.map +1 -1
- package/_esm/tempo/Period.js +92 -0
- package/_esm/tempo/Period.js.map +1 -0
- package/_esm/tempo/index.js +29 -0
- package/_esm/tempo/index.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_esm/webauthn/Credential.js +9 -0
- package/_esm/webauthn/Credential.js.map +1 -1
- package/_types/erc8021/Attribution.d.ts +2 -0
- package/_types/erc8021/Attribution.d.ts.map +1 -1
- package/_types/tempo/KeyAuthorization.d.ts +91 -19
- package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
- package/_types/tempo/Period.d.ts +78 -0
- package/_types/tempo/Period.d.ts.map +1 -0
- package/_types/tempo/index.d.ts +29 -0
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/_types/webauthn/Credential.d.ts.map +1 -1
- package/erc8021/Attribution.ts +12 -1
- package/package.json +6 -1
- package/tempo/KeyAuthorization.test.ts +312 -3
- package/tempo/KeyAuthorization.ts +277 -51
- package/tempo/Period/package.json +6 -0
- package/tempo/Period.test.ts +44 -0
- package/tempo/Period.ts +97 -0
- package/tempo/e2e.test.ts +890 -1
- package/tempo/index.ts +30 -0
- package/version.ts +1 -1
- package/webauthn/Credential.ts +15 -0
|
@@ -154,6 +154,19 @@ export function from(authorization, options = {}) {
|
|
|
154
154
|
})),
|
|
155
155
|
}
|
|
156
156
|
: {}),
|
|
157
|
+
...(auth.scopes
|
|
158
|
+
? {
|
|
159
|
+
scopes: auth.scopes.map((scope) => ({
|
|
160
|
+
...scope,
|
|
161
|
+
contractAddress: TempoAddress.resolve(scope.contractAddress),
|
|
162
|
+
...(scope.recipients
|
|
163
|
+
? {
|
|
164
|
+
recipients: scope.recipients.map((r) => TempoAddress.resolve(r)),
|
|
165
|
+
}
|
|
166
|
+
: {}),
|
|
167
|
+
})),
|
|
168
|
+
}
|
|
169
|
+
: {}),
|
|
157
170
|
};
|
|
158
171
|
if (options.signature)
|
|
159
172
|
return {
|
|
@@ -188,8 +201,22 @@ export function from(authorization, options = {}) {
|
|
|
188
201
|
* @returns A signed {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
189
202
|
*/
|
|
190
203
|
export function fromRpc(authorization) {
|
|
191
|
-
const { chainId, keyId, expiry, limits, keyType } = authorization;
|
|
204
|
+
const { allowedCalls, chainId, keyId, expiry, limits, keyType } = authorization;
|
|
192
205
|
const signature = SignatureEnvelope.fromRpc(authorization.signature);
|
|
206
|
+
// Unflatten nested allowedCalls into flat scopes
|
|
207
|
+
const scopes = allowedCalls
|
|
208
|
+
? allowedCalls.flatMap((callScope) => {
|
|
209
|
+
if (!callScope.selectorRules || callScope.selectorRules.length === 0)
|
|
210
|
+
return [{ contractAddress: callScope.target }];
|
|
211
|
+
return callScope.selectorRules.map((rule) => ({
|
|
212
|
+
contractAddress: callScope.target,
|
|
213
|
+
selector: normalizeSelector(rule.selector),
|
|
214
|
+
...(rule.recipients && rule.recipients.length > 0
|
|
215
|
+
? { recipients: rule.recipients }
|
|
216
|
+
: {}),
|
|
217
|
+
}));
|
|
218
|
+
})
|
|
219
|
+
: undefined;
|
|
193
220
|
return {
|
|
194
221
|
address: keyId,
|
|
195
222
|
chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
|
|
@@ -197,7 +224,11 @@ export function fromRpc(authorization) {
|
|
|
197
224
|
limits: limits?.map((limit) => ({
|
|
198
225
|
token: limit.token,
|
|
199
226
|
limit: BigInt(limit.limit),
|
|
227
|
+
...(limit.period && hexToNumber(limit.period) > 0
|
|
228
|
+
? { period: hexToNumber(limit.period) }
|
|
229
|
+
: {}),
|
|
200
230
|
})),
|
|
231
|
+
...(scopes ? { scopes } : {}),
|
|
201
232
|
signature,
|
|
202
233
|
type: keyType,
|
|
203
234
|
};
|
|
@@ -243,7 +274,7 @@ export function fromRpc(authorization) {
|
|
|
243
274
|
*/
|
|
244
275
|
export function fromTuple(tuple) {
|
|
245
276
|
const [authorization, signatureSerialized] = tuple;
|
|
246
|
-
const [chainId, keyType_hex, keyId, expiry, limits] = authorization;
|
|
277
|
+
const [chainId, keyType_hex, keyId, expiry, limits, scopes] = authorization;
|
|
247
278
|
const keyType = (() => {
|
|
248
279
|
switch (keyType_hex) {
|
|
249
280
|
case '0x':
|
|
@@ -259,16 +290,49 @@ export function fromTuple(tuple) {
|
|
|
259
290
|
})();
|
|
260
291
|
const args = {
|
|
261
292
|
address: keyId,
|
|
262
|
-
expiry: typeof expiry !== 'undefined'
|
|
293
|
+
expiry: typeof expiry !== 'undefined'
|
|
294
|
+
? hexToNumber(expiry) || undefined
|
|
295
|
+
: undefined,
|
|
263
296
|
type: keyType,
|
|
264
297
|
chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
|
|
265
|
-
...(typeof expiry !== 'undefined'
|
|
266
|
-
|
|
298
|
+
...(typeof expiry !== 'undefined'
|
|
299
|
+
? { expiry: hexToNumber(expiry) || undefined }
|
|
300
|
+
: {}),
|
|
301
|
+
...(typeof limits !== 'undefined' &&
|
|
302
|
+
Array.isArray(limits) &&
|
|
303
|
+
limits.length > 0
|
|
267
304
|
? {
|
|
268
|
-
limits: limits.map((
|
|
269
|
-
token,
|
|
270
|
-
|
|
271
|
-
|
|
305
|
+
limits: limits.map((limitTuple) => {
|
|
306
|
+
const [token, limit, period] = limitTuple;
|
|
307
|
+
return {
|
|
308
|
+
token,
|
|
309
|
+
limit: hexToBigint(limit),
|
|
310
|
+
...(typeof period !== 'undefined'
|
|
311
|
+
? { period: hexToNumber(period) }
|
|
312
|
+
: {}),
|
|
313
|
+
};
|
|
314
|
+
}),
|
|
315
|
+
}
|
|
316
|
+
: {}),
|
|
317
|
+
...(typeof scopes !== 'undefined' && Array.isArray(scopes)
|
|
318
|
+
? {
|
|
319
|
+
scopes: scopes.flatMap((scopeTuple) => {
|
|
320
|
+
const [contractAddress, selectorRules] = scopeTuple;
|
|
321
|
+
// If no selector rules, this is an address-only scope
|
|
322
|
+
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
323
|
+
return [{ contractAddress }];
|
|
324
|
+
// Flatten each selector rule into a separate scope entry
|
|
325
|
+
return selectorRules.map((ruleTuple) => {
|
|
326
|
+
const [selector, recipients] = ruleTuple;
|
|
327
|
+
return {
|
|
328
|
+
contractAddress,
|
|
329
|
+
selector,
|
|
330
|
+
...(Array.isArray(recipients) && recipients.length > 0
|
|
331
|
+
? { recipients }
|
|
332
|
+
: {}),
|
|
333
|
+
};
|
|
334
|
+
});
|
|
335
|
+
}),
|
|
272
336
|
}
|
|
273
337
|
: {}),
|
|
274
338
|
};
|
|
@@ -434,17 +498,42 @@ export function serialize(authorization) {
|
|
|
434
498
|
* @returns An RPC-formatted Key Authorization.
|
|
435
499
|
*/
|
|
436
500
|
export function toRpc(authorization) {
|
|
437
|
-
const { address, chainId, expiry, limits, type, signature } = authorization;
|
|
501
|
+
const { address, scopes, chainId, expiry, limits, type, signature } = authorization;
|
|
502
|
+
// Group flat scopes by contractAddress into nested allowedCalls wire format
|
|
503
|
+
const allowedCalls = (() => {
|
|
504
|
+
if (!scopes)
|
|
505
|
+
return undefined;
|
|
506
|
+
const grouped = new Map();
|
|
507
|
+
for (const scope of scopes) {
|
|
508
|
+
const key = scope.contractAddress;
|
|
509
|
+
if (!grouped.has(key))
|
|
510
|
+
grouped.set(key, []);
|
|
511
|
+
if (scope.selector) {
|
|
512
|
+
grouped.get(key).push({
|
|
513
|
+
selector: scope.selector,
|
|
514
|
+
...(scope.recipients && scope.recipients.length > 0
|
|
515
|
+
? { recipients: scope.recipients }
|
|
516
|
+
: {}),
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
return [...grouped.entries()].map(([target, selectorRules]) => ({
|
|
521
|
+
target: target,
|
|
522
|
+
...(selectorRules.length > 0 ? { selectorRules } : {}),
|
|
523
|
+
}));
|
|
524
|
+
})();
|
|
438
525
|
return {
|
|
439
526
|
chainId: chainId === 0n ? '0x' : Hex.fromNumber(chainId),
|
|
440
527
|
expiry: typeof expiry === 'number' ? Hex.fromNumber(expiry) : null,
|
|
441
|
-
|
|
528
|
+
keyId: TempoAddress.resolve(address),
|
|
529
|
+
keyType: type,
|
|
530
|
+
limits: limits?.map(({ token, limit, period }) => ({
|
|
442
531
|
token,
|
|
443
532
|
limit: Hex.fromNumber(limit),
|
|
533
|
+
...(period ? { period: numberToHex(period) } : {}),
|
|
444
534
|
})),
|
|
445
|
-
keyId: TempoAddress.resolve(address),
|
|
446
535
|
signature: SignatureEnvelope.toRpc(signature),
|
|
447
|
-
|
|
536
|
+
...(allowedCalls ? { allowedCalls } : {}),
|
|
448
537
|
};
|
|
449
538
|
}
|
|
450
539
|
/**
|
|
@@ -479,7 +568,7 @@ export function toRpc(authorization) {
|
|
|
479
568
|
* @returns A Tempo Key Authorization tuple.
|
|
480
569
|
*/
|
|
481
570
|
export function toTuple(authorization) {
|
|
482
|
-
const { address, chainId, expiry, limits } = authorization;
|
|
571
|
+
const { address, chainId, scopes, expiry, limits } = authorization;
|
|
483
572
|
const signature = authorization.signature
|
|
484
573
|
? SignatureEnvelope.serialize(authorization.signature)
|
|
485
574
|
: undefined;
|
|
@@ -495,20 +584,52 @@ export function toTuple(authorization) {
|
|
|
495
584
|
throw new Error(`Invalid key type: ${authorization.type}`);
|
|
496
585
|
}
|
|
497
586
|
})();
|
|
498
|
-
const limitsValue = limits?.map((limit) =>
|
|
499
|
-
limit.token,
|
|
500
|
-
|
|
501
|
-
|
|
587
|
+
const limitsValue = limits?.map((limit) => {
|
|
588
|
+
const tuple = [limit.token, bigintToHex(limit.limit)];
|
|
589
|
+
// Canonical: omit period when 0 (one-time limit)
|
|
590
|
+
if (limit.period && limit.period > 0)
|
|
591
|
+
tuple.push(numberToHex(limit.period));
|
|
592
|
+
return tuple;
|
|
593
|
+
});
|
|
594
|
+
// Group flat scopes by contractAddress for wire format
|
|
595
|
+
const callsValue = (() => {
|
|
596
|
+
if (!scopes)
|
|
597
|
+
return undefined;
|
|
598
|
+
const grouped = new Map();
|
|
599
|
+
for (const scope of scopes) {
|
|
600
|
+
const key = scope.contractAddress;
|
|
601
|
+
if (!grouped.has(key))
|
|
602
|
+
grouped.set(key, []);
|
|
603
|
+
if (scope.selector) {
|
|
604
|
+
grouped
|
|
605
|
+
.get(key)
|
|
606
|
+
.push([
|
|
607
|
+
scope.selector,
|
|
608
|
+
(scope.recipients ??
|
|
609
|
+
[]),
|
|
610
|
+
]);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
return [...grouped.entries()].map(([contractAddress, selectorRules]) => [
|
|
614
|
+
contractAddress,
|
|
615
|
+
selectorRules.map(([selector, recipients]) => [selector, recipients]),
|
|
616
|
+
]);
|
|
617
|
+
})();
|
|
502
618
|
const authorizationTuple = [
|
|
503
619
|
bigintToHex(chainId),
|
|
504
620
|
type,
|
|
505
621
|
address,
|
|
506
|
-
// expiry is required in the tuple when limits are present
|
|
507
|
-
|
|
622
|
+
// expiry is required in the tuple when limits or scopes are present
|
|
623
|
+
// expiry=0 is treated the same as undefined (never expires)
|
|
624
|
+
(expiry !== null && expiry !== undefined && expiry !== 0) ||
|
|
625
|
+
limitsValue ||
|
|
626
|
+
callsValue
|
|
508
627
|
? numberToHex(expiry ?? 0)
|
|
509
628
|
: undefined,
|
|
510
|
-
|
|
511
|
-
|
|
629
|
+
// limits is required in the tuple when scopes are present
|
|
630
|
+
limitsValue || callsValue ? (limitsValue ?? []) : undefined,
|
|
631
|
+
callsValue,
|
|
632
|
+
].filter((x) => typeof x !== 'undefined');
|
|
512
633
|
return [authorizationTuple, ...(signature ? [signature] : [])];
|
|
513
634
|
}
|
|
514
635
|
function bigintToHex(value) {
|
|
@@ -523,4 +644,11 @@ function hexToBigint(hex) {
|
|
|
523
644
|
function hexToNumber(hex) {
|
|
524
645
|
return hex === '0x' ? 0 : Hex.toNumber(hex);
|
|
525
646
|
}
|
|
647
|
+
function normalizeSelector(selector) {
|
|
648
|
+
if (typeof selector === 'string')
|
|
649
|
+
return selector;
|
|
650
|
+
if (Array.isArray(selector))
|
|
651
|
+
return Hex.fromBytes(new Uint8Array(selector));
|
|
652
|
+
return selector;
|
|
653
|
+
}
|
|
526
654
|
//# sourceMappingURL=KeyAuthorization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the number of seconds in `n` days.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts twoslash
|
|
6
|
+
* import { Period } from 'ox/tempo'
|
|
7
|
+
*
|
|
8
|
+
* const seconds = Period.days(1) // 86400
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export function days(n) {
|
|
12
|
+
return n * 24 * 60 * 60;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the number of seconds in `n` hours.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts twoslash
|
|
19
|
+
* import { Period } from 'ox/tempo'
|
|
20
|
+
*
|
|
21
|
+
* const seconds = Period.hours(2) // 7200
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function hours(n) {
|
|
25
|
+
return n * 60 * 60;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the number of seconds in `n` minutes.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts twoslash
|
|
32
|
+
* import { Period } from 'ox/tempo'
|
|
33
|
+
*
|
|
34
|
+
* const seconds = Period.minutes(5) // 300
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function minutes(n) {
|
|
38
|
+
return n * 60;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns the number of seconds in `n` months (30 days).
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts twoslash
|
|
45
|
+
* import { Period } from 'ox/tempo'
|
|
46
|
+
*
|
|
47
|
+
* const seconds = Period.months(1) // 2592000
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function months(n) {
|
|
51
|
+
return n * 30 * 24 * 60 * 60;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Returns the number of seconds in `n` seconds.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts twoslash
|
|
58
|
+
* import { Period } from 'ox/tempo'
|
|
59
|
+
*
|
|
60
|
+
* const seconds = Period.seconds(30) // 30
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export function seconds(n) {
|
|
64
|
+
return n;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns the number of seconds in `n` weeks.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts twoslash
|
|
71
|
+
* import { Period } from 'ox/tempo'
|
|
72
|
+
*
|
|
73
|
+
* const seconds = Period.weeks(1) // 604800
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function weeks(n) {
|
|
77
|
+
return n * 7 * 24 * 60 * 60;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Returns the number of seconds in `n` years (365 days).
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts twoslash
|
|
84
|
+
* import { Period } from 'ox/tempo'
|
|
85
|
+
*
|
|
86
|
+
* const seconds = Period.years(1) // 31536000
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export function years(n) {
|
|
90
|
+
return n * 365 * 24 * 60 * 60;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=Period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Period.js","sourceRoot":"","sources":["../../tempo/Period.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AACzB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAC/B,CAAC"}
|
package/_esm/tempo/index.js
CHANGED
|
@@ -71,6 +71,35 @@ export * as AuthorizationTempo from './AuthorizationTempo.js';
|
|
|
71
71
|
* @category Reference
|
|
72
72
|
*/
|
|
73
73
|
export * as KeyAuthorization from './KeyAuthorization.js';
|
|
74
|
+
/**
|
|
75
|
+
* Utilities for constructing period durations (in seconds) for recurring spending limits.
|
|
76
|
+
*
|
|
77
|
+
* Periods define the reset interval for access key spending limits. A spending limit with a
|
|
78
|
+
* period will reset every `period` seconds. For example, a daily spending limit uses
|
|
79
|
+
* `Period.days(1)` (86400 seconds).
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts twoslash
|
|
83
|
+
* import { Value } from 'ox'
|
|
84
|
+
* import { KeyAuthorization, Period } from 'ox/tempo'
|
|
85
|
+
*
|
|
86
|
+
* const authorization = KeyAuthorization.from({
|
|
87
|
+
* address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
88
|
+
* chainId: 4217n,
|
|
89
|
+
* type: 'secp256k1',
|
|
90
|
+
* limits: [{
|
|
91
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
92
|
+
* limit: Value.from('100', 6),
|
|
93
|
+
* period: Period.days(1), // resets daily
|
|
94
|
+
* }],
|
|
95
|
+
* })
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* [Access Keys Specification](https://docs.tempo.xyz/protocol/transactions/spec-tempo-transaction#access-keys)
|
|
99
|
+
*
|
|
100
|
+
* @category Reference
|
|
101
|
+
*/
|
|
102
|
+
export * as Period from './Period.js';
|
|
74
103
|
/**
|
|
75
104
|
* Pool ID utilities for computing pool identifiers from token pairs.
|
|
76
105
|
*
|
package/_esm/tempo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA"}
|
package/_esm/version.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Base64 from '../core/Base64.js';
|
|
2
|
+
import * as Cbor from '../core/Cbor.js';
|
|
2
3
|
import * as PublicKey from '../core/PublicKey.js';
|
|
3
4
|
import { base64UrlOptions, bufferSourceToBytes, bytesToArrayBuffer, responseKeys, } from './internal/utils.js';
|
|
4
5
|
/**
|
|
@@ -38,6 +39,14 @@ export function serialize(credential) {
|
|
|
38
39
|
if (value instanceof ArrayBuffer)
|
|
39
40
|
response[key] = Base64.fromBytes(new Uint8Array(value), base64UrlOptions);
|
|
40
41
|
}
|
|
42
|
+
// Some browsers/passkey providers (e.g. Firefox + 1Password) don't expose
|
|
43
|
+
// `authenticatorData` on the response object. Fall back to extracting it
|
|
44
|
+
// from the CBOR-encoded `attestationObject` which always contains `authData`.
|
|
45
|
+
if (!response.authenticatorData) {
|
|
46
|
+
const attestation = Cbor.decode(new Uint8Array(attestationObject));
|
|
47
|
+
if (attestation.authData)
|
|
48
|
+
response.authenticatorData = Base64.fromBytes(attestation.authData, base64UrlOptions);
|
|
49
|
+
}
|
|
41
50
|
return {
|
|
42
51
|
attestationObject: Base64.fromBytes(new Uint8Array(attestationObject), base64UrlOptions),
|
|
43
52
|
clientDataJSON: Base64.fromBytes(new Uint8Array(clientDataJSON), base64UrlOptions),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credential.js","sourceRoot":"","sources":["../../webauthn/Credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"Credential.js","sourceRoot":"","sources":["../../webauthn/Credential.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,8 @@ export type AttributionSchemaId2 = {
|
|
|
50
50
|
appCode?: string | undefined;
|
|
51
51
|
/** Wallet attribution code. */
|
|
52
52
|
walletCode?: string | undefined;
|
|
53
|
+
/** Service codes identifying additional service providers (e.g., block builders, relayers, solvers). */
|
|
54
|
+
serviceCodes?: readonly string[] | undefined;
|
|
53
55
|
/** Custom code registries keyed by entity type. */
|
|
54
56
|
registries?: AttributionSchemaId2Registries | undefined;
|
|
55
57
|
/** Arbitrary metadata key-value pairs. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attribution.d.ts","sourceRoot":"","sources":["../../erc8021/Attribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAC7B,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,CACnE,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,0EAA0E;IAC1E,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,oDAAoD;IACpD,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,0EAA0E;IAC1E,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IAExB,YAAY,EAAE,4BAA4B,CAAA;IAC1C,iDAAiD;IACjD,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,mDAAmD;IACnD,UAAU,CAAC,EAAE,8BAA8B,GAAG,SAAS,CAAA;IACvD,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC9C,8CAA8C;IAC9C,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,kDAAkD;IAClD,GAAG,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAA;IAC9C,6CAA6C;IAC7C,MAAM,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAC9B,oBAAoB,CAAC,IAAI,CAAC,GAC1B,oBAAoB,CAAC,IAAI,CAAC,GAC1B,oBAAoB,CAAC,IAAI,CAAC,CAC7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,sCAAgD,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,aAAa,QAAoC,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"Attribution.d.ts","sourceRoot":"","sources":["../../erc8021/Attribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,15 @@ export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigi
|
|
|
35
35
|
/** Unix timestamp when key expires (undefined = never expires). */
|
|
36
36
|
expiry?: numberType | null | undefined;
|
|
37
37
|
/** TIP20 spending limits for this key. */
|
|
38
|
-
limits?: readonly TokenLimit<bigintType, addressType>[] | undefined;
|
|
38
|
+
limits?: readonly TokenLimit<bigintType, numberType, addressType>[] | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Call scopes restricting which contracts/selectors this key can call.
|
|
41
|
+
*
|
|
42
|
+
* - `undefined` = unrestricted key (any call allowed)
|
|
43
|
+
* - `[]` = scoped mode with no calls allowed
|
|
44
|
+
* - `[...]` = only listed contract+selector combinations allowed
|
|
45
|
+
*/
|
|
46
|
+
scopes?: readonly Scope<addressType>[] | undefined;
|
|
39
47
|
/** Key type. (secp256k1, P256, WebAuthn). */
|
|
40
48
|
type: SignatureEnvelope.Type;
|
|
41
49
|
} & (signed extends true ? {
|
|
@@ -45,12 +53,39 @@ export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigi
|
|
|
45
53
|
});
|
|
46
54
|
/** Input type for a Key Authorization. */
|
|
47
55
|
export type Input = KeyAuthorization<false, bigint, number, TempoAddress.Address>;
|
|
48
|
-
/** RPC representation
|
|
49
|
-
export type Rpc =
|
|
56
|
+
/** RPC representation matching the node's wire format. */
|
|
57
|
+
export type Rpc = {
|
|
58
|
+
/** Allowed call scopes (node field: `allowedCalls`). */
|
|
59
|
+
allowedCalls?: readonly RpcCallScope[] | undefined;
|
|
60
|
+
/** Chain ID (hex quantity). */
|
|
61
|
+
chainId: Hex.Hex;
|
|
62
|
+
/** Expiry timestamp (hex quantity or null). */
|
|
63
|
+
expiry: Hex.Hex | null | undefined;
|
|
64
|
+
/** Key identifier. */
|
|
50
65
|
keyId: Address.Address;
|
|
66
|
+
/** Key type. */
|
|
51
67
|
keyType: SignatureEnvelope.Type;
|
|
68
|
+
/** Token spending limits. */
|
|
69
|
+
limits?: readonly RpcTokenLimit[] | undefined;
|
|
70
|
+
/** Signature envelope. */
|
|
52
71
|
signature: SignatureEnvelope.SignatureEnvelopeRpc;
|
|
53
72
|
};
|
|
73
|
+
/** RPC representation of a token limit (matches node's `TokenLimit` serde). */
|
|
74
|
+
export type RpcTokenLimit = {
|
|
75
|
+
token: Address.Address;
|
|
76
|
+
limit: Hex.Hex;
|
|
77
|
+
period?: Hex.Hex | undefined;
|
|
78
|
+
};
|
|
79
|
+
/** RPC representation of a call scope (matches node's `CallScope` serde). */
|
|
80
|
+
export type RpcCallScope = {
|
|
81
|
+
target: Address.Address;
|
|
82
|
+
selectorRules?: readonly RpcSelectorRule[];
|
|
83
|
+
};
|
|
84
|
+
/** RPC representation of a selector rule (matches node's `SelectorRule` serde). */
|
|
85
|
+
export type RpcSelectorRule = {
|
|
86
|
+
selector: Hex.Hex;
|
|
87
|
+
recipients?: readonly Address.Address[];
|
|
88
|
+
};
|
|
54
89
|
/** Signed representation of a Key Authorization. */
|
|
55
90
|
export type Signed<bigintType = bigint, numberType = number, addressType = Address.Address> = KeyAuthorization<true, bigintType, numberType, addressType>;
|
|
56
91
|
type BaseTuple = readonly [
|
|
@@ -58,21 +93,51 @@ type BaseTuple = readonly [
|
|
|
58
93
|
keyType: Hex.Hex,
|
|
59
94
|
keyId: Address.Address
|
|
60
95
|
];
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
expiry: Hex.Hex,
|
|
66
|
-
limits: readonly [token: Address.Address, limit: Hex.Hex][]
|
|
67
|
-
],
|
|
68
|
-
signature: Hex.Hex
|
|
69
|
-
] : readonly [
|
|
70
|
-
authorization: BaseTuple | readonly [...BaseTuple, expiry: Hex.Hex] | readonly [
|
|
71
|
-
...BaseTuple,
|
|
72
|
-
expiry: Hex.Hex,
|
|
73
|
-
limits: readonly [token: Address.Address, limit: Hex.Hex][]
|
|
74
|
-
]
|
|
96
|
+
type TokenLimitTuple = readonly [token: Address.Address, limit: Hex.Hex] | readonly [token: Address.Address, limit: Hex.Hex, period: Hex.Hex];
|
|
97
|
+
type SelectorRuleTuple = readonly [
|
|
98
|
+
selector: Hex.Hex,
|
|
99
|
+
recipients: readonly Address.Address[]
|
|
75
100
|
];
|
|
101
|
+
type CallScopeTuple = readonly [
|
|
102
|
+
target: Address.Address,
|
|
103
|
+
selectorRules: readonly SelectorRuleTuple[]
|
|
104
|
+
];
|
|
105
|
+
type AuthorizationTuple = BaseTuple | readonly [...BaseTuple, expiry: Hex.Hex] | readonly [...BaseTuple, expiry: Hex.Hex, limits: readonly TokenLimitTuple[]] | readonly [
|
|
106
|
+
...BaseTuple,
|
|
107
|
+
expiry: Hex.Hex,
|
|
108
|
+
limits: readonly TokenLimitTuple[],
|
|
109
|
+
calls: readonly CallScopeTuple[]
|
|
110
|
+
];
|
|
111
|
+
/** Tuple representation of a Key Authorization. */
|
|
112
|
+
export type Tuple<signed extends boolean = boolean> = signed extends true ? readonly [authorization: AuthorizationTuple, signature: Hex.Hex] : readonly [authorization: AuthorizationTuple];
|
|
113
|
+
/**
|
|
114
|
+
* Call scope entry restricting which contract, selector, and recipients an access key can use.
|
|
115
|
+
*
|
|
116
|
+
* Multiple entries with the same `contractAddress` are grouped by target on the wire.
|
|
117
|
+
*
|
|
118
|
+
* - `{ contractAddress }` = any selector on this contract
|
|
119
|
+
* - `{ contractAddress, selector }` = specific selector
|
|
120
|
+
* - `{ contractAddress, selector, recipients }` = selector + recipient constraint
|
|
121
|
+
*
|
|
122
|
+
* [TIP-1011 Specification](https://docs.tempo.xyz/protocol/transactions/tip-1011)
|
|
123
|
+
*/
|
|
124
|
+
export type Scope<addressType = Address.Address> = {
|
|
125
|
+
/** Target contract address. */
|
|
126
|
+
contractAddress: addressType;
|
|
127
|
+
/**
|
|
128
|
+
* 4-byte function selector. Omit to allow any selector on this contract.
|
|
129
|
+
*/
|
|
130
|
+
selector?: Hex.Hex | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* Recipient allowlist for this selector (first ABI `address` argument).
|
|
133
|
+
*
|
|
134
|
+
* - `undefined` or `[]` = any recipient allowed
|
|
135
|
+
* - `[...]` = only listed recipients allowed
|
|
136
|
+
*
|
|
137
|
+
* Only valid for constrained selectors: `transfer`, `approve`, `transferWithMemo`.
|
|
138
|
+
*/
|
|
139
|
+
recipients?: readonly addressType[] | undefined;
|
|
140
|
+
};
|
|
76
141
|
/**
|
|
77
142
|
* Token spending limit for access keys.
|
|
78
143
|
*
|
|
@@ -81,11 +146,18 @@ export type Tuple<signed extends boolean = boolean> = signed extends true ? read
|
|
|
81
146
|
*
|
|
82
147
|
* [Access Keys Specification](https://docs.tempo.xyz/protocol/transactions/spec-tempo-transaction#access-keys)
|
|
83
148
|
*/
|
|
84
|
-
export type TokenLimit<bigintType = bigint, addressType = Address.Address> = {
|
|
149
|
+
export type TokenLimit<bigintType = bigint, numberType = number, addressType = Address.Address> = {
|
|
85
150
|
/** Address of the TIP-20 token. */
|
|
86
151
|
token: addressType;
|
|
87
|
-
/** Maximum spending amount for this token (enforced over the key's lifetime). */
|
|
152
|
+
/** Maximum spending amount for this token (enforced over the key's lifetime, or per period if `period` \> 0). */
|
|
88
153
|
limit: bigintType;
|
|
154
|
+
/**
|
|
155
|
+
* Period duration in seconds for recurring spending limits.
|
|
156
|
+
*
|
|
157
|
+
* - `0` or `undefined` = one-time limit
|
|
158
|
+
* - `\> 0` = periodic limit that resets every `period` seconds
|
|
159
|
+
*/
|
|
160
|
+
period?: numberType | undefined;
|
|
89
161
|
};
|
|
90
162
|
/**
|
|
91
163
|
* Converts a Key Authorization object into a typed {@link ox#KeyAuthorization.KeyAuthorization}.
|