ox 0.13.2 → 0.14.1

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 (85) hide show
  1. package/Bech32m/package.json +6 -0
  2. package/CHANGELOG.md +25 -0
  3. package/_cjs/core/Bech32m.js +205 -0
  4. package/_cjs/core/Bech32m.js.map +1 -0
  5. package/_cjs/index.js +3 -2
  6. package/_cjs/index.js.map +1 -1
  7. package/_cjs/tempo/AuthorizationTempo.js +7 -2
  8. package/_cjs/tempo/AuthorizationTempo.js.map +1 -1
  9. package/_cjs/tempo/KeyAuthorization.js +22 -8
  10. package/_cjs/tempo/KeyAuthorization.js.map +1 -1
  11. package/_cjs/tempo/SignatureEnvelope.js +39 -4
  12. package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
  13. package/_cjs/tempo/TempoAddress.js +49 -41
  14. package/_cjs/tempo/TempoAddress.js.map +1 -1
  15. package/_cjs/tempo/TokenId.js +8 -5
  16. package/_cjs/tempo/TokenId.js.map +1 -1
  17. package/_cjs/tempo/TransactionRequest.js +2 -1
  18. package/_cjs/tempo/TransactionRequest.js.map +1 -1
  19. package/_cjs/tempo/TxEnvelopeTempo.js +17 -4
  20. package/_cjs/tempo/TxEnvelopeTempo.js.map +1 -1
  21. package/_cjs/tempo/index.js.map +1 -1
  22. package/_cjs/version.js +1 -1
  23. package/_esm/core/Bech32m.js +238 -0
  24. package/_esm/core/Bech32m.js.map +1 -0
  25. package/_esm/index.js +24 -0
  26. package/_esm/index.js.map +1 -1
  27. package/_esm/tempo/AuthorizationTempo.js +24 -19
  28. package/_esm/tempo/AuthorizationTempo.js.map +1 -1
  29. package/_esm/tempo/KeyAuthorization.js +38 -13
  30. package/_esm/tempo/KeyAuthorization.js.map +1 -1
  31. package/_esm/tempo/SignatureEnvelope.js +43 -6
  32. package/_esm/tempo/SignatureEnvelope.js.map +1 -1
  33. package/_esm/tempo/TempoAddress.js +79 -48
  34. package/_esm/tempo/TempoAddress.js.map +1 -1
  35. package/_esm/tempo/TokenId.js +9 -6
  36. package/_esm/tempo/TokenId.js.map +1 -1
  37. package/_esm/tempo/TransactionRequest.js +2 -1
  38. package/_esm/tempo/TransactionRequest.js.map +1 -1
  39. package/_esm/tempo/TxEnvelopeTempo.js +66 -15
  40. package/_esm/tempo/TxEnvelopeTempo.js.map +1 -1
  41. package/_esm/tempo/index.js +11 -10
  42. package/_esm/tempo/index.js.map +1 -1
  43. package/_esm/version.js +1 -1
  44. package/_types/core/Bech32m.d.ts +93 -0
  45. package/_types/core/Bech32m.d.ts.map +1 -0
  46. package/_types/index.d.ts +24 -0
  47. package/_types/index.d.ts.map +1 -1
  48. package/_types/tempo/AuthorizationTempo.d.ts +19 -19
  49. package/_types/tempo/AuthorizationTempo.d.ts.map +1 -1
  50. package/_types/tempo/KeyAuthorization.d.ts +21 -9
  51. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  52. package/_types/tempo/SignatureEnvelope.d.ts +30 -7
  53. package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
  54. package/_types/tempo/TempoAddress.d.ts +51 -15
  55. package/_types/tempo/TempoAddress.d.ts.map +1 -1
  56. package/_types/tempo/TokenId.d.ts +6 -5
  57. package/_types/tempo/TokenId.d.ts.map +1 -1
  58. package/_types/tempo/TransactionRequest.d.ts +2 -1
  59. package/_types/tempo/TransactionRequest.d.ts.map +1 -1
  60. package/_types/tempo/TxEnvelopeTempo.d.ts +64 -17
  61. package/_types/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  62. package/_types/tempo/index.d.ts +11 -10
  63. package/_types/tempo/index.d.ts.map +1 -1
  64. package/_types/version.d.ts +1 -1
  65. package/core/Bech32m.ts +263 -0
  66. package/index.ts +24 -2
  67. package/package.json +6 -1
  68. package/tempo/AuthorizationTempo.test.ts +13 -0
  69. package/tempo/AuthorizationTempo.ts +27 -21
  70. package/tempo/KeyAuthorization.test.ts +95 -23
  71. package/tempo/KeyAuthorization.ts +44 -25
  72. package/tempo/PoolId.test.ts +9 -0
  73. package/tempo/SignatureEnvelope.test.ts +123 -8
  74. package/tempo/SignatureEnvelope.ts +82 -9
  75. package/tempo/TempoAddress.test.ts +70 -14
  76. package/tempo/TempoAddress.ts +95 -67
  77. package/tempo/TokenId.test.ts +14 -0
  78. package/tempo/TokenId.ts +13 -10
  79. package/tempo/Transaction.test.ts +4 -2
  80. package/tempo/TransactionRequest.ts +3 -2
  81. package/tempo/TxEnvelopeTempo.test.ts +79 -3
  82. package/tempo/TxEnvelopeTempo.ts +86 -19
  83. package/tempo/e2e.test.ts +33 -9
  84. package/tempo/index.ts +15 -10
  85. package/version.ts +1 -1
@@ -1,10 +1,38 @@
1
- import * as Address from '../core/Address.js';
2
- import * as Base32 from '../core/Base32.js';
1
+ import * as core_Address from '../core/Address.js';
2
+ import * as Bech32m from '../core/Bech32m.js';
3
3
  import * as Bytes from '../core/Bytes.js';
4
4
  import * as CompactSize from '../core/CompactSize.js';
5
5
  import * as Errors from '../core/Errors.js';
6
- import * as Hash from '../core/Hash.js';
7
6
  import * as Hex from '../core/Hex.js';
7
+ /**
8
+ * Resolves an address input (either an Ethereum hex address or a Tempo bech32m address)
9
+ * to an Ethereum hex address.
10
+ *
11
+ * @example
12
+ * ```ts twoslash
13
+ * import { TempoAddress } from 'ox/tempo'
14
+ *
15
+ * const address = TempoAddress.resolve('tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0')
16
+ * // @log: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28'
17
+ * ```
18
+ *
19
+ * @example
20
+ * ### Hex Address Passthrough
21
+ * ```ts twoslash
22
+ * import { TempoAddress } from 'ox/tempo'
23
+ *
24
+ * const address = TempoAddress.resolve('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
25
+ * // @log: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28'
26
+ * ```
27
+ *
28
+ * @param address - An Ethereum hex address or Tempo bech32m address.
29
+ * @returns The resolved Ethereum hex address.
30
+ */
31
+ export function resolve(address) {
32
+ if (address.startsWith('tempo'))
33
+ return parse(address).address;
34
+ return address;
35
+ }
8
36
  /**
9
37
  * Formats a raw Ethereum address (and optional zone ID) into a Tempo address string.
10
38
  *
@@ -13,7 +41,7 @@ import * as Hex from '../core/Hex.js';
13
41
  * import { TempoAddress } from 'ox/tempo'
14
42
  *
15
43
  * const address = TempoAddress.format('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
16
- * // @log: 'tempo1wskntnrxxnq9x2f95wuyf0y7wk2l90fg8zd8djs'
44
+ * // @log: 'tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0'
17
45
  * ```
18
46
  *
19
47
  * @example
@@ -25,7 +53,7 @@ import * as Hex from '../core/Hex.js';
25
53
  * '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
26
54
  * { zoneId: 1 },
27
55
  * )
28
- * // @log: 'tempoz1q96z6dwvvc6vq5efyk3ms39une6etu4a9zeqtx3q'
56
+ * // @log: 'tempoz1qqqhgtf4e3nrfszn9yj68wzyhj08t90jh55q74d9uj'
29
57
  * ```
30
58
  *
31
59
  * @param address - The raw 20-byte Ethereum address.
@@ -34,15 +62,12 @@ import * as Hex from '../core/Hex.js';
34
62
  */
35
63
  export function format(address, options = {}) {
36
64
  const { zoneId } = options;
37
- const prefix = zoneId != null ? 'tempoz1' : 'tempo1';
65
+ const resolved = resolve(address);
66
+ const hrp = zoneId != null ? 'tempoz' : 'tempo';
67
+ const version = new Uint8Array([0x00]);
38
68
  const zone = zoneId != null ? CompactSize.toBytes(zoneId) : new Uint8Array();
39
- const address_bytes = Bytes.fromHex(address);
40
- const input = Bytes.concat(Bytes.fromString(prefix), zone, address_bytes);
41
- const checksum = Hash.sha256(Hash.sha256(input, { as: 'Bytes' }), {
42
- as: 'Bytes',
43
- }).slice(0, 4);
44
- const payload = Bytes.concat(zone, address_bytes, checksum);
45
- return `${prefix}${Base32.fromBytes(payload)}`;
69
+ const data = Bytes.concat(version, zone, Bytes.fromHex(resolved));
70
+ return Bech32m.encode(hrp, data);
46
71
  }
47
72
  /**
48
73
  * Parses a Tempo address string into a raw Ethereum address and optional zone ID.
@@ -53,9 +78,9 @@ export function format(address, options = {}) {
53
78
  * import { TempoAddress } from 'ox/tempo'
54
79
  *
55
80
  * const result = TempoAddress.parse(
56
- * 'tempo1wst8d6qejxtdg4y5r3zarvary0c5xw7kvmgh8pm',
81
+ * 'tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0',
57
82
  * )
58
- * // { address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28' }
83
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28', zoneId: undefined }
59
84
  * ```
60
85
  *
61
86
  * @example
@@ -64,57 +89,51 @@ export function format(address, options = {}) {
64
89
  * import { TempoAddress } from 'ox/tempo'
65
90
  *
66
91
  * const result = TempoAddress.parse(
67
- * 'tempoz1qwst8d6qejxtdg4y5r3zarvary0c5xw7kvmgh8pm',
92
+ * 'tempoz1qqqhgtf4e3nrfszn9yj68wzyhj08t90jh55q74d9uj',
68
93
  * )
69
- * // { address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28', zoneId: 1 }
94
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28', zoneId: 1 }
70
95
  * ```
71
96
  *
72
97
  * @param tempoAddress - The Tempo address string to parse.
73
98
  * @returns The parsed raw address and optional zone ID.
74
99
  */
75
100
  export function parse(tempoAddress) {
76
- const lower = tempoAddress.toLowerCase();
77
- let prefix;
78
- let hasZone;
79
- if (lower.startsWith('tempoz1')) {
80
- prefix = 'tempoz1';
81
- hasZone = true;
101
+ let hrp;
102
+ let data;
103
+ try {
104
+ const decoded = Bech32m.decode(tempoAddress);
105
+ hrp = decoded.hrp;
106
+ data = decoded.data;
82
107
  }
83
- else if (lower.startsWith('tempo1')) {
84
- prefix = 'tempo1';
85
- hasZone = false;
108
+ catch {
109
+ throw new InvalidChecksumError({ address: tempoAddress });
86
110
  }
87
- else {
111
+ if (hrp !== 'tempo' && hrp !== 'tempoz')
88
112
  throw new InvalidPrefixError({ address: tempoAddress });
89
- }
90
- const payload = Base32.toBytes(lower.slice(prefix.length));
113
+ if (data.length < 1 || data[0] !== 0x00)
114
+ throw new InvalidVersionError({
115
+ address: tempoAddress,
116
+ version: data.length > 0 ? data[0] : undefined,
117
+ });
118
+ const payload = data.slice(1);
91
119
  let zoneId;
92
- let remaining;
93
- if (hasZone) {
120
+ let rawAddress;
121
+ if (hrp === 'tempoz') {
94
122
  const { value, size } = CompactSize.fromBytes(payload);
95
123
  zoneId = value;
96
- remaining = payload.slice(size);
124
+ rawAddress = payload.slice(size);
97
125
  }
98
126
  else {
99
127
  zoneId = undefined;
100
- remaining = payload;
128
+ rawAddress = payload;
101
129
  }
102
- if (remaining.length !== 24)
130
+ if (rawAddress.length !== 20)
103
131
  throw new InvalidLengthError({
104
132
  address: tempoAddress,
105
- expected: 24,
106
- actual: remaining.length,
133
+ expected: 20,
134
+ actual: rawAddress.length,
107
135
  });
108
- const rawAddress = remaining.slice(0, 20);
109
- const checksum = remaining.slice(20, 24);
110
- const zoneBytes = zoneId != null ? CompactSize.toBytes(zoneId) : new Uint8Array();
111
- const checksumInput = Bytes.concat(Bytes.fromString(prefix), zoneBytes, rawAddress);
112
- const expected = Hash.sha256(Hash.sha256(checksumInput, { as: 'Bytes' }), {
113
- as: 'Bytes',
114
- }).slice(0, 4);
115
- if (!Bytes.isEqual(checksum, expected))
116
- throw new InvalidChecksumError({ address: tempoAddress });
117
- const address = Address.checksum(Hex.fromBytes(rawAddress));
136
+ const address = core_Address.checksum(Hex.fromBytes(rawAddress));
118
137
  return { address, zoneId };
119
138
  }
120
139
  /**
@@ -125,9 +144,9 @@ export function parse(tempoAddress) {
125
144
  * import { TempoAddress } from 'ox/tempo'
126
145
  *
127
146
  * const valid = TempoAddress.validate(
128
- * 'tempo1wst8d6qejxtdg4y5r3zarvary0c5xw7kvmgh8pm',
147
+ * 'tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0',
129
148
  * )
130
- * // true
149
+ * // @log: true
131
150
  * ```
132
151
  *
133
152
  * @param tempoAddress - The Tempo address string to validate.
@@ -154,6 +173,18 @@ export class InvalidPrefixError extends Errors.BaseError {
154
173
  });
155
174
  }
156
175
  }
176
+ /** Thrown when a Tempo address has an unsupported version byte. */
177
+ export class InvalidVersionError extends Errors.BaseError {
178
+ constructor({ address, version, }) {
179
+ super(`Tempo address "${address}" has unsupported version ${version === undefined ? '(missing)' : `0x${version.toString(16).padStart(2, '0')}`}. Only version 0x00 is supported.`);
180
+ Object.defineProperty(this, "name", {
181
+ enumerable: true,
182
+ configurable: true,
183
+ writable: true,
184
+ value: 'TempoAddress.InvalidVersionError'
185
+ });
186
+ }
187
+ }
157
188
  /** Thrown when a Tempo address has an invalid payload length. */
158
189
  export class InvalidLengthError extends Errors.BaseError {
159
190
  constructor({ address, expected, actual, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"TempoAddress.js","sourceRoot":"","sources":["../../tempo/TempoAddress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TempoAddress.js","sourceRoot":"","sources":["../../tempo/TempoAddress.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import * as AbiParameters from '../core/AbiParameters.js';
2
2
  import * as Address from '../core/Address.js';
3
3
  import * as Hash from '../core/Hash.js';
4
4
  import * as Hex from '../core/Hex.js';
5
+ import * as TempoAddress from './TempoAddress.js';
5
6
  const tip20Prefix = '0x20c0';
6
7
  /**
7
8
  * Converts a token ID or address to a token ID.
@@ -36,16 +37,17 @@ export function from(tokenIdOrAddress) {
36
37
  * ```ts twoslash
37
38
  * import { TokenId } from 'ox/tempo'
38
39
  *
39
- * const tokenId = TokenId.fromAddress('0x20c00000000000000000000000000000000000000001')
40
+ * const tokenId = TokenId.fromAddress('0x20c0000000000000000000000000000000000001')
40
41
  * ```
41
42
  *
42
43
  * @param address - The token address.
43
44
  * @returns The token ID.
44
45
  */
45
46
  export function fromAddress(address) {
46
- if (!address.toLowerCase().startsWith(tip20Prefix))
47
+ const resolved = TempoAddress.resolve(address);
48
+ if (!resolved.toLowerCase().startsWith(tip20Prefix))
47
49
  throw new Error('invalid tip20 address.');
48
- return Hex.toBigInt(Hex.slice(address, tip20Prefix.length));
50
+ return Hex.toBigInt(Hex.slice(resolved, tip20Prefix.length));
49
51
  }
50
52
  /**
51
53
  * Converts a TIP-20 token ID to an address.
@@ -64,8 +66,9 @@ export function fromAddress(address) {
64
66
  */
65
67
  export function toAddress(tokenId) {
66
68
  if (typeof tokenId === 'string') {
67
- Address.assert(tokenId);
68
- return tokenId;
69
+ const resolved = TempoAddress.resolve(tokenId);
70
+ Address.assert(resolved);
71
+ return resolved;
69
72
  }
70
73
  const tokenIdHex = Hex.fromNumber(tokenId, { size: 18 });
71
74
  return Hex.concat(tip20Prefix, tokenIdHex);
@@ -92,7 +95,7 @@ export function toAddress(tokenId) {
92
95
  */
93
96
  export function compute(value) {
94
97
  const hash = Hash.keccak256(AbiParameters.encode(AbiParameters.from('address, bytes32'), [
95
- value.sender,
98
+ TempoAddress.resolve(value.sender),
96
99
  value.salt,
97
100
  ]));
98
101
  return Hex.toBigInt(Hex.slice(hash, 0, 8));
@@ -1 +1 @@
1
- {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,MAAM,WAAW,GAAG,QAAQ,CAAA;AAK5B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,IAAI,CAAC,gBAA2C;IAC9D,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,OAAO,gBAAgB,KAAK,QAAQ;QAEpC,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAA;AACtC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,OAAwB;IAClD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAC,KAAoB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3D,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,IAAI;KACX,CAAC,CACH,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,MAAM,WAAW,GAAG,QAAQ,CAAA;AAK5B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,IAAI,CAAC,gBAA2C;IAC9D,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,OAAO,gBAAgB,KAAK,QAAQ;QAEpC,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAA;AACtC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,OAA6B;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAA+B,CAAC,CAAA;QACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAC,KAAoB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3D,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,IAAI;KACX,CAAC,CACH,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC"}
@@ -2,6 +2,7 @@ import * as Hex from '../core/Hex.js';
2
2
  import * as ox_TransactionRequest from '../core/TransactionRequest.js';
3
3
  import * as AuthorizationTempo from './AuthorizationTempo.js';
4
4
  import * as KeyAuthorization from './KeyAuthorization.js';
5
+ import * as TempoAddress from './TempoAddress.js';
5
6
  import * as TokenId from './TokenId.js';
6
7
  import * as Transaction from './Transaction.js';
7
8
  /**
@@ -62,7 +63,7 @@ export function toRpc(request) {
62
63
  request_rpc.authorizationList = AuthorizationTempo.toRpcList(request.authorizationList);
63
64
  if (request.calls)
64
65
  request_rpc.calls = request.calls.map((call) => ({
65
- to: call.to,
66
+ to: call.to ? TempoAddress.resolve(call.to) : call.to,
66
67
  value: call.value ? Hex.fromNumber(call.value) : '0x',
67
68
  data: call.data ?? '0x',
68
69
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import * as TransactionEnvelope from '../core/TxEnvelope.js';
10
10
  import * as AuthorizationTempo from './AuthorizationTempo.js';
11
11
  import * as KeyAuthorization from './KeyAuthorization.js';
12
12
  import * as SignatureEnvelope from './SignatureEnvelope.js';
13
+ import * as TempoAddress from './TempoAddress.js';
13
14
  import * as TokenId from './TokenId.js';
14
15
  export const feePayerMagic = '0x78';
15
16
  export const serializedType = '0x76';
@@ -22,7 +23,7 @@ export const type = 'tempo';
22
23
  * import { TxEnvelopeTempo } from 'ox/tempo'
23
24
  *
24
25
  * TxEnvelopeTempo.assert({
25
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: 0n }],
26
+ * calls: [{ to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme', value: 0n }],
26
27
  * chainId: 1,
27
28
  * maxFeePerGas: 1000000000n,
28
29
  * })
@@ -214,7 +215,7 @@ export function deserialize(serialized) {
214
215
  * chainId: 1, // [!code focus]
215
216
  * calls: [{ // [!code focus]
216
217
  * data: '0xdeadbeef', // [!code focus]
217
- * to: '0x0000000000000000000000000000000000000000', // [!code focus]
218
+ * to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme', // [!code focus]
218
219
  * }], // [!code focus]
219
220
  * maxFeePerGas: Value.fromGwei('10'), // [!code focus]
220
221
  * maxPriorityFeePerGas: Value.fromGwei('1'), // [!code focus]
@@ -235,7 +236,7 @@ export function deserialize(serialized) {
235
236
  * chainId: 1,
236
237
  * calls: [{
237
238
  * data: '0xdeadbeef',
238
- * to: '0x0000000000000000000000000000000000000000',
239
+ * to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme',
239
240
  * }],
240
241
  * maxFeePerGas: Value.fromGwei('10'),
241
242
  * maxPriorityFeePerGas: Value.fromGwei('1'),
@@ -288,6 +289,16 @@ export function deserialize(serialized) {
288
289
  export function from(envelope, options = {}) {
289
290
  const { feePayerSignature, signature } = options;
290
291
  const envelope_ = (typeof envelope === 'string' ? deserialize(envelope) : envelope);
292
+ // Resolve TempoAddress inputs to hex addresses.
293
+ if (envelope_.from)
294
+ envelope_.from = TempoAddress.resolve(envelope_.from);
295
+ if (envelope_.calls)
296
+ envelope_.calls = envelope_.calls.map((call) => ({
297
+ ...call,
298
+ ...(call.to
299
+ ? { to: TempoAddress.resolve(call.to) }
300
+ : {}),
301
+ }));
291
302
  assert(envelope_);
292
303
  return {
293
304
  ...envelope_,
@@ -316,7 +327,7 @@ export function from(envelope, options = {}) {
316
327
  * chainId: 1,
317
328
  * calls: [{
318
329
  * data: '0xdeadbeef',
319
- * to: '0x0000000000000000000000000000000000000000',
330
+ * to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme',
320
331
  * }],
321
332
  * maxFeePerGas: Value.fromGwei('10'),
322
333
  * })
@@ -338,7 +349,7 @@ export function from(envelope, options = {}) {
338
349
  * chainId: 1,
339
350
  * calls: [{
340
351
  * data: '0xdeadbeef',
341
- * to: '0x0000000000000000000000000000000000000000',
352
+ * to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme',
342
353
  * }],
343
354
  * maxFeePerGas: Value.fromGwei('10'),
344
355
  * })
@@ -367,7 +378,7 @@ export function serialize(envelope, options = {}) {
367
378
  const authorizationTupleList = AuthorizationTempo.toTupleList(authorizationList);
368
379
  // Encode calls as RLP list of [to, value, data] tuples
369
380
  const callsTupleList = calls.map((call) => [
370
- call.to ?? '0x',
381
+ call.to ? TempoAddress.resolve(call.to) : '0x',
371
382
  call.value ? Hex.fromNumber(call.value) : '0x',
372
383
  call.data ?? '0x',
373
384
  ]);
@@ -451,7 +462,7 @@ export function serialize(envelope, options = {}) {
451
462
  * chainId: 1,
452
463
  * calls: [{
453
464
  * data: '0xdeadbeef',
454
- * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
465
+ * to: 'tempo1qpcfj7tsc5vp9hp6qyx86qd4pcx30hreeqlrsqqr',
455
466
  * }],
456
467
  * nonce: 0n,
457
468
  * maxFeePerGas: 1000000000n,
@@ -464,11 +475,51 @@ export function serialize(envelope, options = {}) {
464
475
  * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
465
476
  * ```
466
477
  *
478
+ * @example
479
+ * ### Access Keys
480
+ *
481
+ * When signing as an access key on behalf of a root account, pass the
482
+ * `from` option with the root account address. This computes
483
+ * `keccak256(0x04 || sigHash || from)` which binds the signature to the
484
+ * specific user account (V2 keychain format).
485
+ *
486
+ * ```ts twoslash
487
+ * // @noErrors
488
+ * import { Secp256k1 } from 'ox'
489
+ * import { TxEnvelopeTempo, SignatureEnvelope } from 'ox/tempo'
490
+ *
491
+ * const envelope = TxEnvelopeTempo.from({
492
+ * chainId: 1,
493
+ * calls: [{
494
+ * data: '0xdeadbeef',
495
+ * to: 'tempo1qpcfj7tsc5vp9hp6qyx86qd4pcx30hreeqlrsqqr',
496
+ * }],
497
+ * nonce: 0n,
498
+ * maxFeePerGas: 1000000000n,
499
+ * gas: 21000n,
500
+ * })
501
+ *
502
+ * const payload = TxEnvelopeTempo.getSignPayload(envelope, { from: '0x...' }) // [!code focus]
503
+ *
504
+ * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
505
+ *
506
+ * const signed = TxEnvelopeTempo.serialize(envelope, {
507
+ * signature: SignatureEnvelope.from({
508
+ * userAddress: from,
509
+ * inner: SignatureEnvelope.from(signature),
510
+ * }),
511
+ * })
512
+ * ```
513
+ *
467
514
  * @param envelope - The transaction envelope to get the sign payload for.
515
+ * @param options - Options.
468
516
  * @returns The sign payload.
469
517
  */
470
- export function getSignPayload(envelope) {
471
- return hash(envelope, { presign: true });
518
+ export function getSignPayload(envelope, options = {}) {
519
+ const sigHash = hash(envelope, { presign: true });
520
+ if (options.from)
521
+ return Hash.keccak256(Hex.concat('0x04', sigHash, TempoAddress.resolve(options.from)));
522
+ return sigHash;
472
523
  }
473
524
  /**
474
525
  * Hashes a {@link ox#TxEnvelopeTempo.TxEnvelopeTempo}. This is the "transaction hash".
@@ -483,7 +534,7 @@ export function getSignPayload(envelope) {
483
534
  * chainId: 1,
484
535
  * calls: [{
485
536
  * data: '0xdeadbeef',
486
- * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
537
+ * to: 'tempo1qpcfj7tsc5vp9hp6qyx86qd4pcx30hreeqlrsqqr',
487
538
  * }],
488
539
  * nonce: 0n,
489
540
  * maxFeePerGas: 1000000000n,
@@ -535,7 +586,7 @@ export function hash(envelope, options = {}) {
535
586
  * chainId: 1,
536
587
  * calls: [{
537
588
  * data: '0xdeadbeef',
538
- * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
589
+ * to: 'tempo1qpcfj7tsc5vp9hp6qyx86qd4pcx30hreeqlrsqqr',
539
590
  * }],
540
591
  * nonce: 0n,
541
592
  * maxFeePerGas: 1000000000n,
@@ -543,7 +594,7 @@ export function hash(envelope, options = {}) {
543
594
  * })
544
595
  *
545
596
  * const payload = TxEnvelopeTempo.getFeePayerSignPayload(envelope, {
546
- * sender: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045'
597
+ * sender: 'tempo1qrvd56ljd9j2l8t7ak0q8ef5zhfh42tqg5kwwrau'
547
598
  * }) // [!code focus]
548
599
  * // @log: '0x...'
549
600
  *
@@ -555,7 +606,7 @@ export function hash(envelope, options = {}) {
555
606
  * @returns The fee payer sign payload.
556
607
  */
557
608
  export function getFeePayerSignPayload(envelope, options) {
558
- const { sender } = options;
609
+ const sender = TempoAddress.resolve(options.sender);
559
610
  const serialized = serialize({ ...envelope, signature: undefined }, {
560
611
  sender,
561
612
  format: 'feePayer',
@@ -572,7 +623,7 @@ export function getFeePayerSignPayload(envelope, options) {
572
623
  * const valid = TxEnvelopeTempo.validate({
573
624
  * calls: [{
574
625
  * data: '0xdeadbeef',
575
- * to: '0x0000000000000000000000000000000000000000',
626
+ * to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme',
576
627
  * }],
577
628
  * chainId: 1,
578
629
  * maxFeePerGas: 1000000000n,
@@ -624,7 +675,7 @@ export class CallsEmptyError extends Errors.BaseError {
624
675
  * import { TxEnvelopeTempo } from 'ox/tempo'
625
676
  *
626
677
  * TxEnvelopeTempo.assert({
627
- * calls: [{ to: '0x0000000000000000000000000000000000000000' }],
678
+ * calls: [{ to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme' }],
628
679
  * chainId: 1,
629
680
  * validBefore: 100,
630
681
  * validAfter: 200,
@@ -1 +1 @@
1
- {"version":3,"file":"TxEnvelopeTempo.js","sourceRoot":"","sources":["../../tempo/TxEnvelopeTempo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAQrC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAoHvC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAe,CAAA;AAO5C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAe,CAAA;AAG7C,MAAM,CAAC,MAAM,IAAI,GAAG,OAAgB,CAAA;AAGpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,QAA4C;IACjE,MAAM,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,GAAG,QAAQ,CAAA;IAEZ,0BAA0B;IAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,EAAE,CAAA;IAE7D,8DAA8D;IAC9D,IACE,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,UAAU,KAAK,QAAQ;QAC9B,WAAW,IAAI,UAAU,EACzB,CAAC;QACD,MAAM,IAAI,0BAA0B,CAAC;YACnC,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,UAAU;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK;QACP,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,IAAI,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAE3D,oBAAoB;IACpB,IAAI,OAAO,IAAI,CAAC;QACd,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAEhE,2BAA2B;IAC3B,IAAI,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;QACxD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC;YAC/C,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;IAEJ,IACE,oBAAoB;QACpB,YAAY;QACZ,oBAAoB,GAAG,YAAY;QAEnC,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC;YAChD,YAAY;YACZ,oBAAoB;SACrB,CAAC,CAAA;AACN,CAAC;AAUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,WAAW,CAAC,UAAsB;IAChD,MAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5D,MAAM,CACJ,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,GAAG,EACH,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,cAAc,EACf,GAAG,gBAAsC,CAAA;IAE1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC;QACjE,CAAC,CAAC,2BAA2B;QAC7B,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,SAAS,GAAG,gBAAgB;QAChC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,2BAA2B,CAAA;IAE/B,IACE,CAAC,CACC,gBAAgB,CAAC,MAAM,KAAK,EAAE;QAC9B,gBAAgB,CAAC,MAAM,KAAK,EAAE;QAC9B,gBAAgB,CAAC,MAAM,KAAK,EAAE,CAC/B;QAED,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,CAAC;YACnD,UAAU,EAAE;gBACV,iBAAiB;gBACjB,OAAO;gBACP,oBAAoB;gBACpB,YAAY;gBACZ,GAAG;gBACH,KAAK;gBACL,UAAU;gBACV,gBAAgB;gBAChB,QAAQ;gBACR,KAAK;gBACL,WAAW;gBACX,UAAU;gBACV,QAAQ;gBACR,yBAAyB;gBACzB,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE;oBAC9B,CAAC,CAAC;wBACE,SAAS;qBACV;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;YACD,UAAU;YACV,IAAI;SACL,CAAC,CAAA;IAEJ,IAAI,WAAW,GAAG;QAChB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,IAAI;KACc,CAAA;IAEpB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI;QAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACpE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,WAAW,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzD,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,IAAI;QACrD,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,KAAK,IAAI;QACrE,WAAW,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;IACjE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,WAAW,CAAC,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,IAAI;QACnD,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,IAAI;QACjD,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,IAAI;QAC7C,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAEjC,oBAAoB;IACpB,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAwC,CAAA;QAC3D,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/C,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAA;YACnC,MAAM,IAAI,GAAS,EAAE,CAAA;YACrB,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI;gBAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;YACnC,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI;gBAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACvD,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAC3C,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI;QACjD,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,UAAmB,CAAC,CAAA;IAExE,IAAI,iBAAiB,EAAE,MAAM,KAAK,CAAC,IAAI,iBAAiB,KAAK,IAAI;QAC/D,WAAW,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,aAAa,CAC9D,iBAA0B,CAC3B,CAAA;IAEH,IACE,yBAAyB,KAAK,IAAI;QAClC,yBAAyB,KAAK,SAAS,EACvC,CAAC;QACD,IACE,yBAAyB,KAAK,MAAM;YACpC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAC3C,CAAC;YACD,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAA;YACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBAC7C,WAAW,CAAC,IAAI,GAAG,yBAAyB,CAAA;QAChD,CAAC;;YACC,WAAW,CAAC,iBAAiB,GAAG,SAAS,CAAC,SAAS,CACjD,yBAAkC,CACnC,CAAA;IACL,CAAC;IAED,IAAI,gBAAgB;QAClB,WAAW,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CACvD,gBAAyB,CAC1B,CAAA;IAEH,MAAM,iBAAiB,GAAG,SAAS;QACjC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,iBAAiB;QACnB,WAAW,GAAG;YACZ,GAAG,WAAW;YACd,SAAS,EAAE,iBAAiB;SAC7B,CAAA;IAEH,gEAAgE;IAChE,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,WAAW,CAAC,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC;gBAClD,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,SAAS,EAAE,iBAAiB;gBAC5B,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnB,OAAO,WAAW,CAAA;AACpB,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFG;AACH,MAAM,UAAU,IAAI,CAIlB,QAAyE,EACzE,UAAmC,EAAE;IAErC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEhD,MAAM,SAAS,GAAG,CAChB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC7C,CAAA;IAEpB,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,iBAAiB;YACnB,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,EAAE,OAAO;KACL,CAAA;AACZ,CAAC;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,UAAU,SAAS,CACvB,QAA4C,EAC5C,UAA6B,EAAE;IAE/B,MAAM,EACJ,UAAU,EACV,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,EACH,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,GAAG,QAAQ,CAAA;IAEZ,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEhB,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAA;IAEzD,MAAM,sBAAsB,GAC1B,kBAAkB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;IAEnD,uDAAuD;IACvD,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,EAAE,IAAI,IAAI;QACf,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9C,IAAI,CAAC,IAAI,IAAI,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE;QACtC,gDAAgD;QAChD,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAA;QAEzC,mEAAmE;QACnE,sEAAsE;QACtE,yCAAyC;QACzC,EAAE;QACF,oEAAoE;QACpE,gEAAgE;QAChE,+DAA+D;QAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,SAAS,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,GAAG,CAAC,WAAW,CAAA;YACnD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAChD,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAC1B,OAAO,SAAS,CAAC,cAAc,CAAC;oBAC9B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvC,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB,CAAC,CAAA;QACN,CAAC;QAED,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,WAAW;YAC9C,CAAC,CAAC,OAAO,CAAC,iBAAiB;YAC3B,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAA;QAChC,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,iBAAiB,KAAK,IAAI;YAAE,OAAO,MAAM,CAAA;QAC7C,qDAAqD;QACrD,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QACnC,+DAA+D;QAC/D,OAAO,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC7C,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QAClD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QAChC,cAAc;QACd,eAAe;QACf,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QACpC,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC1D,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,IAAI;QACR,yBAAyB;QACzB,sBAAsB;QACtB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;KACC,CAAA;IAEV,OAAO,GAAG,CAAC,MAAM,CACf,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,EAC9D,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CACV,CAAA;AACjB,CAAC;AA8CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAyB;IAEzB,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1C,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,IAAI,CAClB,QAA8D,EAC9D,UAAiC,EAAE;IAEnC,MAAM,UAAU,GAAG,SAAS,CAAC;QAC3B,GAAG,QAAQ;QACX,GAAG,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC;gBACE,SAAS,EAAE,SAAS;aACrB;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAyB,EACzB,OAAuC;IAEvC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAC1B,MAAM,UAAU,GAAG,SAAS,CAC1B,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EACrC;QACE,MAAM;QACN,MAAM,EAAE,UAAU;KACnB,CACF,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC;AAeD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CAAC,QAA4C;IACnE,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,SAAS;IAEnD;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAFpB;;;;mBAAO,iCAAiC;WAAA;IAG1D,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,0BAA2B,SAAQ,MAAM,CAAC,SAAS;IAE9D,YAAY,EACV,WAAW,EACX,UAAU,GAIX;QACC,KAAK,CACH,gBAAgB,WAAW,sCAAsC,UAAU,IAAI,CAChF,CAAA;QAVe;;;;mBAAO,4CAA4C;WAAA;IAWrE,CAAC;CACF"}
1
+ {"version":3,"file":"TxEnvelopeTempo.js","sourceRoot":"","sources":["../../tempo/TxEnvelopeTempo.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  * import { AuthorizationTempo } from 'ox/tempo'
14
14
  *
15
15
  * const authorization = AuthorizationTempo.from({
16
- * address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
16
+ * address: 'tempo1qzlftsl42n5lep0v2xlxng7cq7sd2k709sxlwnsu',
17
17
  * chainId: 1,
18
18
  * nonce: 40n,
19
19
  * })
@@ -50,10 +50,11 @@ export * as AuthorizationTempo from './AuthorizationTempo.js';
50
50
  *
51
51
  * const authorization = KeyAuthorization.from({
52
52
  * address,
53
+ * chainId: 4217n,
53
54
  * expiry: 1234567890,
54
55
  * type: 'p256',
55
56
  * limits: [{
56
- * token: '0x20c0000000000000000000000000000000000001',
57
+ * token: 'tempo1qqsvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqyr9xgnd',
57
58
  * limit: Value.from('10', 6),
58
59
  * }],
59
60
  * })
@@ -125,10 +126,10 @@ export * as SignatureEnvelope from './SignatureEnvelope.js';
125
126
  * import { TempoAddress } from 'ox/tempo'
126
127
  *
127
128
  * const encoded = TempoAddress.format('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
128
- * // @log: 'tempo1wskntnrxxnq9x2f95wuyf0y7wk2l90fg8zd8djs'
129
+ * // @log: 'tempo1wskntnrxxnq9x2f95wuyf0y7wk2l90fg0hlz9j'
129
130
  *
130
131
  * const { address, zoneId } = TempoAddress.parse(encoded)
131
- * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28' }
132
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28', zoneId: undefined }
132
133
  * ```
133
134
  *
134
135
  * @category Reference
@@ -169,7 +170,7 @@ export * as Tick from './Tick.js';
169
170
  *
170
171
  * const tokenId = TokenId.from(1n)
171
172
  * const address = TokenId.toAddress(1n)
172
- * // '0x20c0000000000000000000000000000000000001'
173
+ * // 'tempo1qqsvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqyr9xgnd'
173
174
  * ```
174
175
  *
175
176
  * @category Reference
@@ -219,7 +220,7 @@ export * as TokenRole from './TokenRole.js';
219
220
  * value: '0x9b6e64a8ec60000',
220
221
  * },
221
222
  * ],
222
- * feeToken: '0x20c0000000000000000000000000000000000000',
223
+ * feeToken: 'tempo1qqsvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv0ywuh',
223
224
  * transactionIndex: '0x2',
224
225
  * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
225
226
  * value: '0x9b6e64a8ec60000',
@@ -258,7 +259,7 @@ export * as Transaction from './Transaction.js';
258
259
  * const receipt = TransactionReceipt.fromRpc({
259
260
  * status: '0x1',
260
261
  * feePayer: '0x...',
261
- * feeToken: '0x20c0000000000000000000000000000000000001',
262
+ * feeToken: 'tempo1qqsvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqyr9xgnd',
262
263
  * // ... other fields
263
264
  * } as any)
264
265
  * ```
@@ -279,8 +280,8 @@ export * as TransactionReceipt from './TransactionReceipt.js';
279
280
  * import { TransactionRequest } from 'ox/tempo'
280
281
  *
281
282
  * const request = TransactionRequest.toRpc({
282
- * calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe', data: '0xdeadbeef' }],
283
- * feeToken: '0x20c0000000000000000000000000000000000000',
283
+ * calls: [{ to: 'tempo1qr90aw47etlt40k2l6atajh7h2lv4l46hcx5uwlp', data: '0xdeadbeef' }],
284
+ * feeToken: 'tempo1qqsvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv0ywuh',
284
285
  * })
285
286
  * ```
286
287
  *
@@ -302,7 +303,7 @@ export * as TransactionRequest from './TransactionRequest.js';
302
303
  *
303
304
  * const envelope = TxEnvelopeTempo.from({
304
305
  * chainId: 1,
305
- * calls: [{ to: '0x0000000000000000000000000000000000000000', data: '0xdeadbeef' }],
306
+ * calls: [{ to: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj97hme', data: '0xdeadbeef' }],
306
307
  * maxFeePerGas: Value.fromGwei('10'),
307
308
  * })
308
309
  *