ox 0.14.24 → 0.14.26
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/tempo/Channel.js +31 -11
- package/_cjs/tempo/Channel.js.map +1 -1
- package/_cjs/tempo/KeyAuthorization.js +130 -57
- package/_cjs/tempo/KeyAuthorization.js.map +1 -1
- package/_cjs/tempo/index.js +1 -2
- package/_cjs/tempo/index.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/tempo/Channel.js +56 -13
- package/_esm/tempo/Channel.js.map +1 -1
- package/_esm/tempo/KeyAuthorization.js +155 -62
- package/_esm/tempo/KeyAuthorization.js.map +1 -1
- package/_esm/tempo/index.js +9 -30
- package/_esm/tempo/index.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/tempo/Channel.d.ts +73 -8
- package/_types/tempo/Channel.d.ts.map +1 -1
- package/_types/tempo/KeyAuthorization.d.ts +54 -2
- package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +9 -30
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/package.json +2 -8
- package/tempo/Channel.test.ts +99 -16
- package/tempo/Channel.ts +127 -18
- package/tempo/KeyAuthorization.test.ts +333 -0
- package/tempo/KeyAuthorization.ts +240 -72
- package/tempo/e2e.test.ts +330 -0
- package/tempo/index.ts +9 -30
- package/version.ts +1 -1
- package/_cjs/tempo/ChannelDescriptor.js +0 -24
- package/_cjs/tempo/ChannelDescriptor.js.map +0 -1
- package/_esm/tempo/ChannelDescriptor.js +0 -43
- package/_esm/tempo/ChannelDescriptor.js.map +0 -1
- package/_types/tempo/ChannelDescriptor.d.ts +0 -73
- package/_types/tempo/ChannelDescriptor.d.ts.map +0 -1
- package/tempo/ChannelDescriptor/package.json +0 -6
- package/tempo/ChannelDescriptor.test.ts +0 -93
- package/tempo/ChannelDescriptor.ts +0 -115
|
@@ -144,6 +144,8 @@ export function from(authorization, options = {}) {
|
|
|
144
144
|
if ('keyId' in authorization)
|
|
145
145
|
return fromRpc(authorization);
|
|
146
146
|
const auth = authorization;
|
|
147
|
+
if (auth.witness !== undefined)
|
|
148
|
+
assertWitness(auth.witness);
|
|
147
149
|
const resolved = {
|
|
148
150
|
...auth,
|
|
149
151
|
address: TempoAddress.resolve(auth.address),
|
|
@@ -204,7 +206,12 @@ export function from(authorization, options = {}) {
|
|
|
204
206
|
*/
|
|
205
207
|
export function fromRpc(authorization) {
|
|
206
208
|
const { allowedCalls, chainId, keyId, expiry, limits, keyType } = authorization;
|
|
209
|
+
const witness = authorization.witness ?? undefined;
|
|
210
|
+
const isAdmin = authorization.isAdmin ?? undefined;
|
|
211
|
+
const account = authorization.account ?? undefined;
|
|
207
212
|
const signature = SignatureEnvelope.fromRpc(authorization.signature);
|
|
213
|
+
if (witness !== undefined)
|
|
214
|
+
assertWitness(witness);
|
|
208
215
|
// Unflatten nested allowedCalls into flat scopes
|
|
209
216
|
const scopes = allowedCalls
|
|
210
217
|
? allowedCalls.flatMap((callScope) => {
|
|
@@ -233,6 +240,9 @@ export function fromRpc(authorization) {
|
|
|
233
240
|
...(scopes ? { scopes } : {}),
|
|
234
241
|
signature,
|
|
235
242
|
type: keyType,
|
|
243
|
+
...(witness !== undefined ? { witness } : {}),
|
|
244
|
+
...(isAdmin ? { isAdmin: true } : {}),
|
|
245
|
+
...(account !== undefined ? { account } : {}),
|
|
236
246
|
};
|
|
237
247
|
}
|
|
238
248
|
/**
|
|
@@ -276,7 +286,7 @@ export function fromRpc(authorization) {
|
|
|
276
286
|
*/
|
|
277
287
|
export function fromTuple(tuple) {
|
|
278
288
|
const [authorization, signatureSerialized] = tuple;
|
|
279
|
-
const [chainId, keyType_hex, keyId,
|
|
289
|
+
const [chainId, keyType_hex, keyId, ...trailing] = authorization;
|
|
280
290
|
const keyType = (() => {
|
|
281
291
|
switch (keyType_hex) {
|
|
282
292
|
case '0x':
|
|
@@ -290,53 +300,70 @@ export function fromTuple(tuple) {
|
|
|
290
300
|
throw new Error(`Invalid key type: ${keyType_hex}`);
|
|
291
301
|
}
|
|
292
302
|
})();
|
|
303
|
+
// Trailing optional fields in wire order. Each entry pulls one slot off the
|
|
304
|
+
// trailing array and decodes it (treating absent or RLP-null placeholders as
|
|
305
|
+
// missing). To add a new optional trailing field, append a single entry.
|
|
306
|
+
const [rawExpiry, rawLimits, rawScopes, rawWitness, rawIsAdmin, rawAccount] = trailing;
|
|
307
|
+
const expiry = isAbsent(rawExpiry)
|
|
308
|
+
? undefined
|
|
309
|
+
: hexToNumber(rawExpiry) || undefined;
|
|
310
|
+
const limits = Array.isArray(rawLimits) && rawLimits.length > 0
|
|
311
|
+
? rawLimits.map((limitTuple) => {
|
|
312
|
+
const [token, limit, period] = limitTuple;
|
|
313
|
+
return {
|
|
314
|
+
token,
|
|
315
|
+
limit: hexToBigint(limit),
|
|
316
|
+
...(period !== undefined ? { period: hexToNumber(period) } : {}),
|
|
317
|
+
};
|
|
318
|
+
})
|
|
319
|
+
: undefined;
|
|
320
|
+
const scopes = Array.isArray(rawScopes)
|
|
321
|
+
? rawScopes.flatMap((scopeTuple) => {
|
|
322
|
+
const [address, selectorRules] = scopeTuple;
|
|
323
|
+
// If no selector rules, this is an address-only scope.
|
|
324
|
+
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
325
|
+
return [{ address }];
|
|
326
|
+
// Flatten each selector rule into a separate scope entry.
|
|
327
|
+
return selectorRules.map((ruleTuple) => {
|
|
328
|
+
const [selector, recipients] = ruleTuple;
|
|
329
|
+
return {
|
|
330
|
+
address,
|
|
331
|
+
selector,
|
|
332
|
+
...(Array.isArray(recipients) && recipients.length > 0
|
|
333
|
+
? { recipients }
|
|
334
|
+
: {}),
|
|
335
|
+
};
|
|
336
|
+
});
|
|
337
|
+
})
|
|
338
|
+
: undefined;
|
|
339
|
+
const witness = isAbsent(rawWitness) ? undefined : rawWitness;
|
|
340
|
+
if (witness !== undefined)
|
|
341
|
+
assertWitness(witness);
|
|
342
|
+
const isAdmin = (() => {
|
|
343
|
+
if (isAbsent(rawIsAdmin))
|
|
344
|
+
return undefined;
|
|
345
|
+
// TIP-1049: the admin marker is strictly `0x01`. Any other value is a
|
|
346
|
+
// protocol-level decode error on the node, so reject it here too.
|
|
347
|
+
if (rawIsAdmin !== '0x01')
|
|
348
|
+
throw new InvalidAdminMarkerError(rawIsAdmin);
|
|
349
|
+
return true;
|
|
350
|
+
})();
|
|
351
|
+
const account = isAbsent(rawAccount)
|
|
352
|
+
? undefined
|
|
353
|
+
: rawAccount;
|
|
354
|
+
// TIP-1049 admin fields are paired: only emit both when both are present on
|
|
355
|
+
// the wire. Wire shapes carrying only one are tolerated for forward-compat
|
|
356
|
+
// but the orphan field is dropped (since the public API requires both).
|
|
357
|
+
const adminPair = account !== undefined && isAdmin ? { account, isAdmin: true } : {};
|
|
293
358
|
const args = {
|
|
294
359
|
address: keyId,
|
|
295
|
-
expiry: typeof expiry !== 'undefined'
|
|
296
|
-
? hexToNumber(expiry) || undefined
|
|
297
|
-
: undefined,
|
|
298
|
-
type: keyType,
|
|
299
360
|
chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
...(
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
? {
|
|
307
|
-
limits: limits.map((limitTuple) => {
|
|
308
|
-
const [token, limit, period] = limitTuple;
|
|
309
|
-
return {
|
|
310
|
-
token,
|
|
311
|
-
limit: hexToBigint(limit),
|
|
312
|
-
...(typeof period !== 'undefined'
|
|
313
|
-
? { period: hexToNumber(period) }
|
|
314
|
-
: {}),
|
|
315
|
-
};
|
|
316
|
-
}),
|
|
317
|
-
}
|
|
318
|
-
: {}),
|
|
319
|
-
...(typeof scopes !== 'undefined' && Array.isArray(scopes)
|
|
320
|
-
? {
|
|
321
|
-
scopes: scopes.flatMap((scopeTuple) => {
|
|
322
|
-
const [address, selectorRules] = scopeTuple;
|
|
323
|
-
// If no selector rules, this is an address-only scope
|
|
324
|
-
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
325
|
-
return [{ address }];
|
|
326
|
-
// Flatten each selector rule into a separate scope entry
|
|
327
|
-
return selectorRules.map((ruleTuple) => {
|
|
328
|
-
const [selector, recipients] = ruleTuple;
|
|
329
|
-
return {
|
|
330
|
-
address,
|
|
331
|
-
selector,
|
|
332
|
-
...(Array.isArray(recipients) && recipients.length > 0
|
|
333
|
-
? { recipients }
|
|
334
|
-
: {}),
|
|
335
|
-
};
|
|
336
|
-
});
|
|
337
|
-
}),
|
|
338
|
-
}
|
|
339
|
-
: {}),
|
|
361
|
+
type: keyType,
|
|
362
|
+
...(expiry !== undefined ? { expiry } : {}),
|
|
363
|
+
...(limits !== undefined ? { limits } : {}),
|
|
364
|
+
...(scopes !== undefined ? { scopes } : {}),
|
|
365
|
+
...(witness !== undefined ? { witness } : {}),
|
|
366
|
+
...adminPair,
|
|
340
367
|
};
|
|
341
368
|
if (signatureSerialized)
|
|
342
369
|
args.signature = SignatureEnvelope.deserialize(signatureSerialized);
|
|
@@ -500,7 +527,9 @@ export function serialize(authorization) {
|
|
|
500
527
|
* @returns An RPC-formatted Key Authorization.
|
|
501
528
|
*/
|
|
502
529
|
export function toRpc(authorization) {
|
|
503
|
-
const { address, scopes, chainId, expiry, limits, type, signature } = authorization;
|
|
530
|
+
const { address, scopes, chainId, expiry, limits, type, signature, witness, isAdmin, account, } = authorization;
|
|
531
|
+
if (witness !== undefined)
|
|
532
|
+
assertWitness(witness);
|
|
504
533
|
// Group flat scopes by address into nested allowedCalls wire format
|
|
505
534
|
const allowedCalls = (() => {
|
|
506
535
|
if (!scopes)
|
|
@@ -536,6 +565,9 @@ export function toRpc(authorization) {
|
|
|
536
565
|
})),
|
|
537
566
|
signature: SignatureEnvelope.toRpc(signature),
|
|
538
567
|
...(allowedCalls ? { allowedCalls } : {}),
|
|
568
|
+
...(witness !== undefined ? { witness } : {}),
|
|
569
|
+
...(isAdmin ? { isAdmin: true } : {}),
|
|
570
|
+
...(account !== undefined ? { account } : {}),
|
|
539
571
|
};
|
|
540
572
|
}
|
|
541
573
|
/**
|
|
@@ -570,7 +602,9 @@ export function toRpc(authorization) {
|
|
|
570
602
|
* @returns A Tempo Key Authorization tuple.
|
|
571
603
|
*/
|
|
572
604
|
export function toTuple(authorization) {
|
|
573
|
-
const { address, chainId, scopes, expiry, limits } = authorization;
|
|
605
|
+
const { address, chainId, scopes, expiry, limits, witness, isAdmin, account, } = authorization;
|
|
606
|
+
if (witness !== undefined)
|
|
607
|
+
assertWitness(witness);
|
|
574
608
|
const signature = authorization.signature
|
|
575
609
|
? SignatureEnvelope.serialize(authorization.signature)
|
|
576
610
|
: undefined;
|
|
@@ -617,21 +651,49 @@ export function toTuple(authorization) {
|
|
|
617
651
|
selectorRules.map(([selector, recipients]) => [selector, recipients]),
|
|
618
652
|
]);
|
|
619
653
|
})();
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
654
|
+
// Optional trailing fields in wire order. Each entry's `placeholder` is
|
|
655
|
+
// emitted when this field is skipped but a later field is present.
|
|
656
|
+
//
|
|
657
|
+
// Placeholder convention:
|
|
658
|
+
// - `'0x'` (RLP null) is the canonical placeholder for fields added at or
|
|
659
|
+
// after TIP-1053. The node decodes it as `None` (unrestricted).
|
|
660
|
+
// - `limits` keeps `[]` as its skipped placeholder for pre-TIP-1053 wire
|
|
661
|
+
// shapes — preserving byte-for-byte equivalence with signed payloads
|
|
662
|
+
// produced before TIP-1053 was added. When any TIP-1053+ field is
|
|
663
|
+
// present, the canonical `'0x'` placeholder is used instead.
|
|
664
|
+
//
|
|
665
|
+
// To add a new optional trailing field (e.g. from a future TIP): append a
|
|
666
|
+
// single entry to this list with `placeholder: '0x'`.
|
|
667
|
+
const hasTip1053Plus = witness !== undefined || isAdmin || account !== undefined;
|
|
668
|
+
const optionals = [
|
|
669
|
+
{
|
|
670
|
+
value: expiry !== null && expiry !== undefined && expiry !== 0
|
|
671
|
+
? numberToHex(expiry)
|
|
672
|
+
: undefined,
|
|
673
|
+
placeholder: '0x',
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
value: limitsValue,
|
|
677
|
+
placeholder: hasTip1053Plus ? '0x' : [],
|
|
678
|
+
},
|
|
679
|
+
{ value: callsValue, placeholder: '0x' },
|
|
680
|
+
{ value: witness, placeholder: '0x' },
|
|
681
|
+
// TIP-1049: admin marker. Present = `0x01` (RLP integer 1); absent
|
|
682
|
+
// skipped or omitted. Any other value is a hard decode error on the node.
|
|
683
|
+
{ value: isAdmin ? '0x01' : undefined, placeholder: '0x' },
|
|
684
|
+
// TIP-1049: optional account binding. Last field — never a placeholder.
|
|
685
|
+
{ value: account, placeholder: '0x' },
|
|
686
|
+
];
|
|
687
|
+
let lastPresent = -1;
|
|
688
|
+
for (let i = optionals.length - 1; i >= 0; i--)
|
|
689
|
+
if (optionals[i].value !== undefined) {
|
|
690
|
+
lastPresent = i;
|
|
691
|
+
break;
|
|
692
|
+
}
|
|
693
|
+
const trailing = optionals
|
|
694
|
+
.slice(0, lastPresent + 1)
|
|
695
|
+
.map(({ value, placeholder }) => value ?? placeholder);
|
|
696
|
+
const authorizationTuple = [bigintToHex(chainId), type, address, ...trailing];
|
|
635
697
|
return [authorizationTuple, ...(signature ? [signature] : [])];
|
|
636
698
|
}
|
|
637
699
|
function bigintToHex(value) {
|
|
@@ -660,4 +722,35 @@ function resolveSelector(selector) {
|
|
|
660
722
|
return selector;
|
|
661
723
|
return AbiItem.getSelector(selector);
|
|
662
724
|
}
|
|
725
|
+
function assertWitness(witness) {
|
|
726
|
+
if (Hex.size(witness) !== 32)
|
|
727
|
+
throw new InvalidWitnessSizeError(witness);
|
|
728
|
+
}
|
|
729
|
+
function isAbsent(value) {
|
|
730
|
+
return value === undefined || value === '0x';
|
|
731
|
+
}
|
|
732
|
+
/** Thrown when a `witness` field is not exactly 32 bytes. */
|
|
733
|
+
export class InvalidWitnessSizeError extends Error {
|
|
734
|
+
constructor(witness) {
|
|
735
|
+
super(`Witness \`${witness}\` must be exactly 32 bytes (got ${Hex.size(witness)} bytes).`);
|
|
736
|
+
Object.defineProperty(this, "name", {
|
|
737
|
+
enumerable: true,
|
|
738
|
+
configurable: true,
|
|
739
|
+
writable: true,
|
|
740
|
+
value: 'KeyAuthorization.InvalidWitnessSizeError'
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
/** Thrown when a TIP-1049 admin marker has any value other than `0x01`. */
|
|
745
|
+
export class InvalidAdminMarkerError extends Error {
|
|
746
|
+
constructor(marker) {
|
|
747
|
+
super(`Admin marker \`${marker}\` is invalid; expected \`0x01\` (TIP-1049).`);
|
|
748
|
+
Object.defineProperty(this, "name", {
|
|
749
|
+
enumerable: true,
|
|
750
|
+
configurable: true,
|
|
751
|
+
writable: true,
|
|
752
|
+
value: 'KeyAuthorization.InvalidAdminMarkerError'
|
|
753
|
+
});
|
|
754
|
+
}
|
|
755
|
+
}
|
|
663
756
|
//# 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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"}
|
package/_esm/tempo/index.js
CHANGED
|
@@ -32,53 +32,32 @@
|
|
|
32
32
|
*/
|
|
33
33
|
export * as AuthorizationTempo from './AuthorizationTempo.js';
|
|
34
34
|
/**
|
|
35
|
-
* TIP-20 channel reserve constants and deterministic hashing utilities.
|
|
35
|
+
* TIP-20 channel reserve descriptor, constants, and deterministic hashing utilities.
|
|
36
36
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* Channel descriptors are emitted by `Channel.open` and then reused to settle,
|
|
38
|
+
* top up, close, request close, withdraw, or compute the channel ID. The channel
|
|
39
|
+
* reserve precompile exposes helper methods for channel identifiers, voucher sign
|
|
40
|
+
* payloads, and its EIP-712 domain separator. These utilities compute the same
|
|
41
|
+
* values locally when the chain id and channel fields are known.
|
|
40
42
|
*
|
|
41
43
|
* @example
|
|
42
44
|
* ```ts twoslash
|
|
43
45
|
* import { Channel } from 'ox/tempo'
|
|
44
46
|
*
|
|
45
|
-
* const
|
|
46
|
-
* authorizedSigner: '0x0000000000000000000000000000000000000000',
|
|
47
|
-
* chainId: 4217,
|
|
47
|
+
* const channel = Channel.from({
|
|
48
48
|
* expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
49
|
-
* operator: '0x0000000000000000000000000000000000000000',
|
|
50
49
|
* payee: '0x2222222222222222222222222222222222222222',
|
|
51
50
|
* payer: '0x1111111111111111111111111111111111111111',
|
|
52
51
|
* salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
53
52
|
* token: 1n,
|
|
54
53
|
* })
|
|
55
|
-
* ```
|
|
56
|
-
*
|
|
57
|
-
* @category Reference
|
|
58
|
-
*/
|
|
59
|
-
export * as Channel from './Channel.js';
|
|
60
|
-
/**
|
|
61
|
-
* TIP-20 channel reserve descriptor utilities.
|
|
62
54
|
*
|
|
63
|
-
*
|
|
64
|
-
* top up, close, request close, withdraw, or compute the channel ID.
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* ```ts twoslash
|
|
68
|
-
* import { ChannelDescriptor } from 'ox/tempo'
|
|
69
|
-
*
|
|
70
|
-
* const descriptor = ChannelDescriptor.from({
|
|
71
|
-
* expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
72
|
-
* payee: '0x2222222222222222222222222222222222222222',
|
|
73
|
-
* payer: '0x1111111111111111111111111111111111111111',
|
|
74
|
-
* salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
75
|
-
* token: 1n,
|
|
76
|
-
* })
|
|
55
|
+
* const channelId = Channel.computeId(channel, { chainId: 4217 })
|
|
77
56
|
* ```
|
|
78
57
|
*
|
|
79
58
|
* @category Reference
|
|
80
59
|
*/
|
|
81
|
-
export * as
|
|
60
|
+
export * as Channel from './Channel.js';
|
|
82
61
|
/**
|
|
83
62
|
* Tempo key authorization utilities for provisioning and signing access keys.
|
|
84
63
|
*
|
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;AAC7D
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AACvD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA"}
|
package/_esm/version.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as AbiParameters from '../core/AbiParameters.js';
|
|
2
|
+
import * as Address from '../core/Address.js';
|
|
3
|
+
import type * as Errors from '../core/Errors.js';
|
|
2
4
|
import * as Hash from '../core/Hash.js';
|
|
3
5
|
import * as Hex from '../core/Hex.js';
|
|
4
|
-
import * as
|
|
6
|
+
import * as TokenId from './TokenId.js';
|
|
5
7
|
/**
|
|
6
8
|
* TIP-20 channel reserve precompile address.
|
|
7
9
|
*/
|
|
@@ -17,7 +19,67 @@ export declare const voucherTypehash: `0x${string}`;
|
|
|
17
19
|
/**
|
|
18
20
|
* TIP-20 channel descriptor.
|
|
19
21
|
*/
|
|
20
|
-
export type
|
|
22
|
+
export type Channel<addressType = Address.Address, tokenType = TokenId.TokenIdOrAddress<addressType>> = {
|
|
23
|
+
/** Optional signer for vouchers. Zero means `payer` signs. */
|
|
24
|
+
authorizedSigner: addressType;
|
|
25
|
+
/** Transaction-derived hash assigned when the channel was opened. */
|
|
26
|
+
expiringNonceHash: Hex.Hex;
|
|
27
|
+
/** Optional relayer allowed to submit `settle` for the payee. */
|
|
28
|
+
operator: addressType;
|
|
29
|
+
/** Account that receives settled voucher payments. */
|
|
30
|
+
payee: addressType;
|
|
31
|
+
/** Account that funded the channel and receives refunds. */
|
|
32
|
+
payer: addressType;
|
|
33
|
+
/** User-supplied salt to distinguish otherwise identical channels. */
|
|
34
|
+
salt: Hex.Hex;
|
|
35
|
+
/** TIP-20 token address held by the channel. */
|
|
36
|
+
token: tokenType;
|
|
37
|
+
};
|
|
38
|
+
/** Hex-address-normalized {@link ox#Channel.Channel}. */
|
|
39
|
+
export type Resolved = Channel<Address.Address, Address.Address>;
|
|
40
|
+
/**
|
|
41
|
+
* Instantiates a TIP-20 channel reserve descriptor.
|
|
42
|
+
*
|
|
43
|
+
* Accepts a TIP-20 token ID or address, and defaults `operator` and
|
|
44
|
+
* `authorizedSigner` to the zero address.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts twoslash
|
|
48
|
+
* import { Channel } from 'ox/tempo'
|
|
49
|
+
*
|
|
50
|
+
* const channel = Channel.from({
|
|
51
|
+
* expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000002',
|
|
52
|
+
* payee: '0x2222222222222222222222222222222222222222',
|
|
53
|
+
* payer: '0x1111111111111111111111111111111111111111',
|
|
54
|
+
* salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
55
|
+
* token: 1n,
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @param value - The channel descriptor input.
|
|
60
|
+
* @returns The normalized channel descriptor.
|
|
61
|
+
*/
|
|
62
|
+
export declare function from(value: from.Value): from.ReturnType;
|
|
63
|
+
export declare namespace from {
|
|
64
|
+
type Value = {
|
|
65
|
+
/** Optional signer for vouchers. Zero means `payer` signs. */
|
|
66
|
+
authorizedSigner?: Address.Address | undefined;
|
|
67
|
+
/** Transaction-derived hash assigned when the channel was opened. */
|
|
68
|
+
expiringNonceHash: Hex.Hex;
|
|
69
|
+
/** Optional relayer allowed to submit `settle` for the payee. */
|
|
70
|
+
operator?: Address.Address | undefined;
|
|
71
|
+
/** Account that receives settled voucher payments. */
|
|
72
|
+
payee: Address.Address;
|
|
73
|
+
/** Account that funded the channel and receives refunds. */
|
|
74
|
+
payer: Address.Address;
|
|
75
|
+
/** User-supplied salt to distinguish otherwise identical channels. */
|
|
76
|
+
salt: Hex.Hex;
|
|
77
|
+
/** TIP-20 token address or ID held by the channel. */
|
|
78
|
+
token: TokenId.TokenIdOrAddress<Address.Address>;
|
|
79
|
+
};
|
|
80
|
+
type ReturnType = Resolved;
|
|
81
|
+
type ErrorType = Address.from.ErrorType | Hex.concat.ErrorType | Hex.fromNumber.ErrorType | Errors.GlobalErrorType;
|
|
82
|
+
}
|
|
21
83
|
/**
|
|
22
84
|
* Computes the canonical TIP-20 channel id for a descriptor.
|
|
23
85
|
*
|
|
@@ -30,26 +92,29 @@ export type Descriptor = ChannelDescriptor.ChannelDescriptor;
|
|
|
30
92
|
*
|
|
31
93
|
* const channelId = Channel.computeId({
|
|
32
94
|
* authorizedSigner: '0x0000000000000000000000000000000000000000',
|
|
33
|
-
* chainId: 4217,
|
|
34
95
|
* expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
35
96
|
* operator: '0x0000000000000000000000000000000000000000',
|
|
36
97
|
* payee: '0x2222222222222222222222222222222222222222',
|
|
37
98
|
* payer: '0x1111111111111111111111111111111111111111',
|
|
38
99
|
* salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
39
100
|
* token: 1n,
|
|
101
|
+
* }, {
|
|
102
|
+
* chainId: 4217,
|
|
40
103
|
* })
|
|
41
104
|
* ```
|
|
42
105
|
*
|
|
43
|
-
* @param
|
|
106
|
+
* @param channel - Channel descriptor.
|
|
107
|
+
* @param options - Options.
|
|
44
108
|
* @returns The channel id.
|
|
45
109
|
*/
|
|
46
|
-
export declare function computeId(
|
|
110
|
+
export declare function computeId(channel: computeId.Channel, options: computeId.Options): Hex.Hex;
|
|
47
111
|
export declare namespace computeId {
|
|
48
|
-
type
|
|
49
|
-
|
|
112
|
+
type Channel = from.Value;
|
|
113
|
+
type Options = {
|
|
114
|
+
/** Chain ID used by the channel reserve precompile. */
|
|
50
115
|
chainId: number | bigint;
|
|
51
116
|
};
|
|
52
|
-
type ErrorType = AbiParameters.encode.ErrorType |
|
|
117
|
+
type ErrorType = AbiParameters.encode.ErrorType | from.ErrorType | Hash.keccak256.ErrorType;
|
|
53
118
|
}
|
|
54
119
|
/**
|
|
55
120
|
* Computes the EIP-712 domain separator for the TIP-20 channel reserve.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../tempo/Channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../tempo/Channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type * as Address from '../core/Address.js';
|
|
|
2
2
|
import type * as Errors from '../core/Errors.js';
|
|
3
3
|
import * as Hash from '../core/Hash.js';
|
|
4
4
|
import * as Hex from '../core/Hex.js';
|
|
5
|
-
import type { Compute } from '../core/internal/types.js';
|
|
5
|
+
import type { Compute, OneOf } from '../core/internal/types.js';
|
|
6
6
|
import * as Rlp from '../core/Rlp.js';
|
|
7
7
|
import * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
8
8
|
import * as TempoAddress from './TempoAddress.js';
|
|
@@ -46,7 +46,22 @@ export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigi
|
|
|
46
46
|
scopes?: readonly Scope<addressType>[] | undefined;
|
|
47
47
|
/** Key type. (secp256k1, P256, WebAuthn). */
|
|
48
48
|
type: SignatureEnvelope.Type;
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Optional 32-byte witness bound into the signing hash.
|
|
51
|
+
*
|
|
52
|
+
* Applications use this to bind a single signature to an arbitrary offchain
|
|
53
|
+
* context (e.g. a server-issued challenge), or as a revocation handle that
|
|
54
|
+
* can be burned onchain to invalidate the authorization before submission.
|
|
55
|
+
*
|
|
56
|
+
* [TIP-1053 Specification](https://tips.sh/1053)
|
|
57
|
+
*/
|
|
58
|
+
witness?: Hex.Hex | undefined;
|
|
59
|
+
} & OneOf<{
|
|
60
|
+
/** Account address this authorization is bound to. */
|
|
61
|
+
account: addressType;
|
|
62
|
+
/** Whether this authorization provisions an admin access key. */
|
|
63
|
+
isAdmin: boolean;
|
|
64
|
+
} | {}> & (signed extends true ? {
|
|
50
65
|
signature: SignatureEnvelope.SignatureEnvelope<bigintType, numberType>;
|
|
51
66
|
} : {
|
|
52
67
|
signature?: SignatureEnvelope.SignatureEnvelope<bigintType, numberType> | undefined;
|
|
@@ -55,12 +70,16 @@ export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigi
|
|
|
55
70
|
export type Input = KeyAuthorization<false, bigint, number, TempoAddress.Address>;
|
|
56
71
|
/** RPC representation matching the node's wire format. */
|
|
57
72
|
export type Rpc = {
|
|
73
|
+
/** Optional account address binding (TIP-1049). */
|
|
74
|
+
account?: Address.Address | null | undefined;
|
|
58
75
|
/** Allowed call scopes (node field: `allowedCalls`). */
|
|
59
76
|
allowedCalls?: readonly RpcCallScope[] | undefined;
|
|
60
77
|
/** Chain ID (hex quantity). */
|
|
61
78
|
chainId: Hex.Hex;
|
|
62
79
|
/** Expiry timestamp (hex quantity or null). */
|
|
63
80
|
expiry: Hex.Hex | null | undefined;
|
|
81
|
+
/** Whether this authorization provisions an admin access key (TIP-1049). */
|
|
82
|
+
isAdmin?: boolean | null | undefined;
|
|
64
83
|
/** Key identifier. */
|
|
65
84
|
keyId: Address.Address;
|
|
66
85
|
/** Key type. */
|
|
@@ -69,6 +88,8 @@ export type Rpc = {
|
|
|
69
88
|
limits?: readonly RpcTokenLimit[] | undefined;
|
|
70
89
|
/** Signature envelope. */
|
|
71
90
|
signature: SignatureEnvelope.SignatureEnvelopeRpc;
|
|
91
|
+
/** Optional 32-byte witness (hex). */
|
|
92
|
+
witness?: Hex.Hex | null | undefined;
|
|
72
93
|
};
|
|
73
94
|
/** RPC representation of a token limit (matches node's `TokenLimit` serde). */
|
|
74
95
|
export type RpcTokenLimit = {
|
|
@@ -107,6 +128,27 @@ type AuthorizationTuple = BaseTuple | readonly [...BaseTuple, expiry: Hex.Hex] |
|
|
|
107
128
|
expiry: Hex.Hex,
|
|
108
129
|
limits: readonly TokenLimitTuple[],
|
|
109
130
|
calls: readonly CallScopeTuple[]
|
|
131
|
+
] | readonly [
|
|
132
|
+
...BaseTuple,
|
|
133
|
+
expiry: Hex.Hex,
|
|
134
|
+
limits: readonly TokenLimitTuple[],
|
|
135
|
+
calls: readonly CallScopeTuple[],
|
|
136
|
+
witness: Hex.Hex
|
|
137
|
+
] | readonly [
|
|
138
|
+
...BaseTuple,
|
|
139
|
+
expiry: Hex.Hex,
|
|
140
|
+
limits: readonly TokenLimitTuple[],
|
|
141
|
+
calls: readonly CallScopeTuple[],
|
|
142
|
+
witness: Hex.Hex,
|
|
143
|
+
isAdmin: Hex.Hex
|
|
144
|
+
] | readonly [
|
|
145
|
+
...BaseTuple,
|
|
146
|
+
expiry: Hex.Hex,
|
|
147
|
+
limits: readonly TokenLimitTuple[],
|
|
148
|
+
calls: readonly CallScopeTuple[],
|
|
149
|
+
witness: Hex.Hex,
|
|
150
|
+
isAdmin: Hex.Hex,
|
|
151
|
+
account: Address.Address
|
|
110
152
|
];
|
|
111
153
|
/** Tuple representation of a Key Authorization. */
|
|
112
154
|
export type Tuple<signed extends boolean = boolean> = signed extends true ? readonly [authorization: AuthorizationTuple, signature: Hex.Hex] : readonly [authorization: AuthorizationTuple];
|
|
@@ -580,5 +622,15 @@ export declare namespace toTuple {
|
|
|
580
622
|
type ReturnType<authorization extends KeyAuthorization = KeyAuthorization> = Compute<Tuple<authorization extends KeyAuthorization<true> ? true : false>>;
|
|
581
623
|
type ErrorType = Errors.GlobalErrorType;
|
|
582
624
|
}
|
|
625
|
+
/** Thrown when a `witness` field is not exactly 32 bytes. */
|
|
626
|
+
export declare class InvalidWitnessSizeError extends Error {
|
|
627
|
+
readonly name = "KeyAuthorization.InvalidWitnessSizeError";
|
|
628
|
+
constructor(witness: Hex.Hex);
|
|
629
|
+
}
|
|
630
|
+
/** Thrown when a TIP-1049 admin marker has any value other than `0x01`. */
|
|
631
|
+
export declare class InvalidAdminMarkerError extends Error {
|
|
632
|
+
readonly name = "KeyAuthorization.InvalidAdminMarkerError";
|
|
633
|
+
constructor(marker: Hex.Hex);
|
|
634
|
+
}
|
|
583
635
|
export {};
|
|
584
636
|
//# sourceMappingURL=KeyAuthorization.d.ts.map
|