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.
Files changed (39) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/tempo/Channel.js +31 -11
  3. package/_cjs/tempo/Channel.js.map +1 -1
  4. package/_cjs/tempo/KeyAuthorization.js +130 -57
  5. package/_cjs/tempo/KeyAuthorization.js.map +1 -1
  6. package/_cjs/tempo/index.js +1 -2
  7. package/_cjs/tempo/index.js.map +1 -1
  8. package/_cjs/version.js +1 -1
  9. package/_esm/tempo/Channel.js +56 -13
  10. package/_esm/tempo/Channel.js.map +1 -1
  11. package/_esm/tempo/KeyAuthorization.js +155 -62
  12. package/_esm/tempo/KeyAuthorization.js.map +1 -1
  13. package/_esm/tempo/index.js +9 -30
  14. package/_esm/tempo/index.js.map +1 -1
  15. package/_esm/version.js +1 -1
  16. package/_types/tempo/Channel.d.ts +73 -8
  17. package/_types/tempo/Channel.d.ts.map +1 -1
  18. package/_types/tempo/KeyAuthorization.d.ts +54 -2
  19. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  20. package/_types/tempo/index.d.ts +9 -30
  21. package/_types/tempo/index.d.ts.map +1 -1
  22. package/_types/version.d.ts +1 -1
  23. package/package.json +2 -8
  24. package/tempo/Channel.test.ts +99 -16
  25. package/tempo/Channel.ts +127 -18
  26. package/tempo/KeyAuthorization.test.ts +333 -0
  27. package/tempo/KeyAuthorization.ts +240 -72
  28. package/tempo/e2e.test.ts +330 -0
  29. package/tempo/index.ts +9 -30
  30. package/version.ts +1 -1
  31. package/_cjs/tempo/ChannelDescriptor.js +0 -24
  32. package/_cjs/tempo/ChannelDescriptor.js.map +0 -1
  33. package/_esm/tempo/ChannelDescriptor.js +0 -43
  34. package/_esm/tempo/ChannelDescriptor.js.map +0 -1
  35. package/_types/tempo/ChannelDescriptor.d.ts +0 -73
  36. package/_types/tempo/ChannelDescriptor.d.ts.map +0 -1
  37. package/tempo/ChannelDescriptor/package.json +0 -6
  38. package/tempo/ChannelDescriptor.test.ts +0 -93
  39. 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, expiry, limits, scopes] = authorization;
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
- ...(typeof expiry !== 'undefined'
301
- ? { expiry: hexToNumber(expiry) || undefined }
302
- : {}),
303
- ...(typeof limits !== 'undefined' &&
304
- Array.isArray(limits) &&
305
- limits.length > 0
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
- const authorizationTuple = [
621
- bigintToHex(chainId),
622
- type,
623
- address,
624
- // expiry is required in the tuple when limits or scopes are present
625
- // expiry=0 is treated the same as undefined (never expires)
626
- (expiry !== null && expiry !== undefined && expiry !== 0) ||
627
- limitsValue ||
628
- callsValue
629
- ? numberToHex(expiry ?? 0)
630
- : undefined,
631
- // limits is required in the tuple when scopes are present
632
- limitsValue || callsValue ? (limitsValue ?? []) : undefined,
633
- callsValue,
634
- ].filter((x) => typeof x !== 'undefined');
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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"}
@@ -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
- * The channel reserve precompile exposes helper methods for channel identifiers,
38
- * voucher sign payloads, and its EIP-712 domain separator. These utilities compute the
39
- * same values locally when the chain id and channel fields are known.
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 channelId = Channel.computeId({
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
- * Channel descriptors are emitted by `Channel.open` and then reused to settle,
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 ChannelDescriptor from './ChannelDescriptor.js';
60
+ export * as Channel from './Channel.js';
82
61
  /**
83
62
  * Tempo key authorization utilities for provisioning and signing access keys.
84
63
  *
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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,3 +1,3 @@
1
1
  /** @internal */
2
- export const version = '0.14.24';
2
+ export const version = '0.14.26';
3
3
  //# sourceMappingURL=version.js.map
@@ -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 ChannelDescriptor from './ChannelDescriptor.js';
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 Descriptor = ChannelDescriptor.ChannelDescriptor;
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 value - Channel descriptor and chain id.
106
+ * @param channel - Channel descriptor.
107
+ * @param options - Options.
44
108
  * @returns The channel id.
45
109
  */
46
- export declare function computeId(value: computeId.Value): Hex.Hex;
110
+ export declare function computeId(channel: computeId.Channel, options: computeId.Options): Hex.Hex;
47
111
  export declare namespace computeId {
48
- type Value = ChannelDescriptor.from.Value & {
49
- /** Chain id used by the channel reserve precompile. */
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 | ChannelDescriptor.from.ErrorType | Hash.keccak256.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;AAEzD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAkB3D;;GAEG;AACH,eAAO,MAAM,OAAO,8CAC6D,CAAA;AAEjF;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,eAAe,eAE3B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAezD;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,GAAG;QAC1C,uDAAuD;QACvD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB,CAAA;IAED,KAAK,SAAS,GACV,aAAa,CAAC,MAAM,CAAC,SAAS,GAC9B,iBAAiB,CAAC,IAAI,CAAC,SAAS,GAChC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAUrE;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,KAAK,KAAK,GAAG;QACX,uDAAuD;QACvD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB,CAAA;IAED,KAAK,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA;CAC3E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,CAAC,KAAK,GACjC,GAAG,CAAC,GAAG,CAeT;AAED,MAAM,CAAC,OAAO,WAAW,qBAAqB,CAAC;IAC7C,KAAK,KAAK,GAAG;QACX,uDAAuD;QACvD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;QACxB,kBAAkB;QAClB,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;QAClB,mDAAmD;QACnD,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IAED,KAAK,SAAS,GACV,aAAa,CAAC,MAAM,CAAC,SAAS,GAC9B,eAAe,CAAC,SAAS,GACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA;CAC7B"}
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
- } & (signed extends true ? {
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