ox 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/Base32/package.json +6 -0
  2. package/Bech32m/package.json +6 -0
  3. package/CHANGELOG.md +25 -0
  4. package/CompactSize/package.json +6 -0
  5. package/_cjs/core/Base32.js +73 -0
  6. package/_cjs/core/Base32.js.map +1 -0
  7. package/_cjs/core/Bech32m.js +205 -0
  8. package/_cjs/core/Bech32m.js.map +1 -0
  9. package/_cjs/core/CompactSize.js +91 -0
  10. package/_cjs/core/CompactSize.js.map +1 -0
  11. package/_cjs/index.js +5 -2
  12. package/_cjs/index.js.map +1 -1
  13. package/_cjs/tempo/KeyAuthorization.js +4 -4
  14. package/_cjs/tempo/KeyAuthorization.js.map +1 -1
  15. package/_cjs/tempo/SignatureEnvelope.js +18 -3
  16. package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
  17. package/_cjs/tempo/TempoAddress.js +117 -0
  18. package/_cjs/tempo/TempoAddress.js.map +1 -0
  19. package/_cjs/tempo/TxEnvelopeTempo.js +5 -2
  20. package/_cjs/tempo/TxEnvelopeTempo.js.map +1 -1
  21. package/_cjs/tempo/index.js +2 -1
  22. package/_cjs/tempo/index.js.map +1 -1
  23. package/_cjs/version.js +1 -1
  24. package/_esm/core/Base32.js +119 -0
  25. package/_esm/core/Base32.js.map +1 -0
  26. package/_esm/core/Bech32m.js +238 -0
  27. package/_esm/core/Bech32m.js.map +1 -0
  28. package/_esm/core/CompactSize.js +150 -0
  29. package/_esm/core/CompactSize.js.map +1 -0
  30. package/_esm/index.js +72 -0
  31. package/_esm/index.js.map +1 -1
  32. package/_esm/tempo/KeyAuthorization.js +19 -9
  33. package/_esm/tempo/KeyAuthorization.js.map +1 -1
  34. package/_esm/tempo/SignatureEnvelope.js +22 -5
  35. package/_esm/tempo/SignatureEnvelope.js.map +1 -1
  36. package/_esm/tempo/TempoAddress.js +182 -0
  37. package/_esm/tempo/TempoAddress.js.map +1 -0
  38. package/_esm/tempo/TxEnvelopeTempo.js +42 -2
  39. package/_esm/tempo/TxEnvelopeTempo.js.map +1 -1
  40. package/_esm/tempo/index.js +21 -0
  41. package/_esm/tempo/index.js.map +1 -1
  42. package/_esm/version.js +1 -1
  43. package/_types/core/Base32.d.ts +79 -0
  44. package/_types/core/Base32.d.ts.map +1 -0
  45. package/_types/core/Bech32m.d.ts +93 -0
  46. package/_types/core/Bech32m.d.ts.map +1 -0
  47. package/_types/core/CompactSize.d.ts +107 -0
  48. package/_types/core/CompactSize.d.ts.map +1 -0
  49. package/_types/index.d.ts +72 -0
  50. package/_types/index.d.ts.map +1 -1
  51. package/_types/tempo/KeyAuthorization.d.ts +17 -7
  52. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  53. package/_types/tempo/SignatureEnvelope.d.ts +19 -5
  54. package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
  55. package/_types/tempo/TempoAddress.d.ts +126 -0
  56. package/_types/tempo/TempoAddress.d.ts.map +1 -0
  57. package/_types/tempo/TxEnvelopeTempo.d.ts +47 -1
  58. package/_types/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  59. package/_types/tempo/index.d.ts +21 -0
  60. package/_types/tempo/index.d.ts.map +1 -1
  61. package/_types/version.d.ts +1 -1
  62. package/core/Base32.ts +134 -0
  63. package/core/Bech32m.ts +263 -0
  64. package/core/CompactSize.ts +169 -0
  65. package/index.ts +74 -1
  66. package/package.json +21 -1
  67. package/tempo/KeyAuthorization.test.ts +70 -23
  68. package/tempo/KeyAuthorization.ts +21 -18
  69. package/tempo/SignatureEnvelope.test.ts +15 -8
  70. package/tempo/SignatureEnvelope.ts +43 -8
  71. package/tempo/TempoAddress/package.json +6 -0
  72. package/tempo/TempoAddress.test.ts +237 -0
  73. package/tempo/TempoAddress.ts +222 -0
  74. package/tempo/Transaction.test.ts +4 -2
  75. package/tempo/TxEnvelopeTempo.test.ts +7 -3
  76. package/tempo/TxEnvelopeTempo.ts +52 -1
  77. package/tempo/e2e.test.ts +45 -10
  78. package/tempo/index.ts +22 -0
  79. package/version.ts +1 -1
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/core/Base32.d.ts",
4
+ "main": "../_cjs/core/Base32.js",
5
+ "module": "../_esm/core/Base32.js"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/core/Bech32m.d.ts",
4
+ "main": "../_cjs/core/Bech32m.js",
5
+ "module": "../_esm/core/Bech32m.js"
6
+ }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # ox
2
2
 
3
+ ## 0.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#178](https://github.com/wevm/ox/pull/178) [`4a79ac5`](https://github.com/wevm/ox/commit/4a79ac540c05796ebc92a0d54ce0049a6ff5e195) Thanks [@jxom](https://github.com/jxom)! - **Breaking (`ox/tempo`):** `KeyAuthorization.chainId` is now required.
8
+
9
+ ```diff
10
+ const authorization = KeyAuthorization.from({
11
+ address,
12
+ + chainId: 1n,
13
+ expiry: 1234567890,
14
+ type: 'secp256k1',
15
+ })
16
+ ```
17
+
18
+ ### Patch Changes
19
+
20
+ - [#178](https://github.com/wevm/ox/pull/178) [`4a79ac5`](https://github.com/wevm/ox/commit/4a79ac540c05796ebc92a0d54ce0049a6ff5e195) Thanks [@jxom](https://github.com/jxom)! - **`ox/tempo`:** Added support for V2 keychain signature type (`0x04`) which binds the inner signature to the user account via `keccak256(0x04 || sigHash || userAddress)`.
21
+
22
+ ## 0.13.2
23
+
24
+ ### Patch Changes
25
+
26
+ - [#179](https://github.com/wevm/ox/pull/179) [`4b91335`](https://github.com/wevm/ox/commit/4b91335b5a68cfee39248ab91c78a0b98b1d1859) Thanks [@jxom](https://github.com/jxom)! - Added `Base32`, `CompactSize`, and `TempoAddress` modules. `Base32` implements BIP-173 bech32 base32 encoding/decoding. `CompactSize` implements Bitcoin's variable-length integer encoding. `TempoAddress` provides human-readable Tempo address formatting and parsing with `tempo1`/`tempoz1` prefixes, CompactSize zone ID encoding, and double-SHA256 checksumming.
27
+
3
28
  ## 0.13.1
4
29
 
5
30
  ### Patch Changes
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../_types/core/CompactSize.d.ts",
4
+ "main": "../_cjs/core/CompactSize.js",
5
+ "module": "../_esm/core/CompactSize.js"
6
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidCharacterError = void 0;
4
+ exports.fromBytes = fromBytes;
5
+ exports.fromHex = fromHex;
6
+ exports.toBytes = toBytes;
7
+ exports.toHex = toHex;
8
+ const Bytes = require("./Bytes.js");
9
+ const Errors = require("./Errors.js");
10
+ const Hex = require("./Hex.js");
11
+ const alphabet = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';
12
+ const alphabetMap = (() => {
13
+ const map = {};
14
+ for (let i = 0; i < alphabet.length; i++)
15
+ map[alphabet[i]] = i;
16
+ return map;
17
+ })();
18
+ function fromBytes(value) {
19
+ let bits = 0;
20
+ let acc = 0;
21
+ let result = '';
22
+ for (const byte of value) {
23
+ acc = (acc << 8) | byte;
24
+ bits += 8;
25
+ while (bits >= 5) {
26
+ bits -= 5;
27
+ result += alphabet[(acc >>> bits) & 0x1f];
28
+ }
29
+ }
30
+ if (bits > 0)
31
+ result += alphabet[(acc << (5 - bits)) & 0x1f];
32
+ return result;
33
+ }
34
+ function fromHex(value) {
35
+ return fromBytes(Bytes.fromHex(value));
36
+ }
37
+ function toBytes(value) {
38
+ const values = [];
39
+ for (const char of value) {
40
+ const v = alphabetMap[char];
41
+ if (v === undefined)
42
+ throw new InvalidCharacterError({ character: char });
43
+ values.push(v);
44
+ }
45
+ let bits = 0;
46
+ let acc = 0;
47
+ const bytes = [];
48
+ for (const v of values) {
49
+ acc = (acc << 5) | v;
50
+ bits += 5;
51
+ if (bits >= 8) {
52
+ bits -= 8;
53
+ bytes.push((acc >>> bits) & 0xff);
54
+ }
55
+ }
56
+ return new Uint8Array(bytes);
57
+ }
58
+ function toHex(value) {
59
+ return Hex.fromBytes(toBytes(value));
60
+ }
61
+ class InvalidCharacterError extends Errors.BaseError {
62
+ constructor({ character }) {
63
+ super(`Invalid bech32 base32 character: "${character}".`);
64
+ Object.defineProperty(this, "name", {
65
+ enumerable: true,
66
+ configurable: true,
67
+ writable: true,
68
+ value: 'Base32.InvalidCharacterError'
69
+ });
70
+ }
71
+ }
72
+ exports.InvalidCharacterError = InvalidCharacterError;
73
+ //# sourceMappingURL=Base32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base32.js","sourceRoot":"","sources":["../../core/Base32.ts"],"names":[],"mappings":";;;AAyBA,8BAcC;AAmBD,0BAEC;AAmBD,0BAoBC;AAmBD,sBAEC;AAxHD,oCAAmC;AACnC,sCAAqC;AACrC,gCAA+B;AAG/B,MAAM,QAAQ,GAAG,kCAAkC,CAAA;AACnD,MAAM,WAAW,GAAiB,CAAC,GAAG,EAAE;IACtC,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAA;IAC/D,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,EAAE,CAAA;AAeJ,SAAgB,SAAS,CAAC,KAAkB;IAC1C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,IAAI,IAAI,CAAC,CAAA;QACT,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,CAAA;YACT,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,CAAC;QAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC5D,OAAO,MAAM,CAAA;AACf,CAAC;AAmBD,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACxC,CAAC;AAmBD,SAAgB,OAAO,CAAC,KAAa;IACnC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,qBAAqB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,IAAI,CAAC,CAAA;QACT,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,CAAA;YACT,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAmBD,SAAgB,KAAK,CAAC,KAAa;IACjC,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAOD,MAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS;IAGzD,YAAY,EAAE,SAAS,EAAyB;QAC9C,KAAK,CAAC,qCAAqC,SAAS,IAAI,CAAC,CAAA;QAHzC;;;;mBAAO,8BAA8B;WAAA;IAIvD,CAAC;CACF;AAND,sDAMC"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExceedsLengthError = exports.InvalidHrpError = exports.MixedCaseError = exports.InvalidPaddingError = exports.InvalidCharacterError = exports.InvalidChecksumError = exports.NoSeparatorError = void 0;
4
+ exports.encode = encode;
5
+ exports.decode = decode;
6
+ const Errors_js_1 = require("./Errors.js");
7
+ function encode(hrp, data, options = {}) {
8
+ const { limit = 90 } = options;
9
+ hrp = hrp.toLowerCase();
10
+ if (hrp.length === 0)
11
+ throw new InvalidHrpError();
12
+ for (let i = 0; i < hrp.length; i++) {
13
+ const c = hrp.charCodeAt(i);
14
+ if (c < 33 || c > 126)
15
+ throw new InvalidHrpError();
16
+ }
17
+ const data5 = convertBits(data, 8, 5, true);
18
+ if (hrp.length + 1 + data5.length + 6 > limit)
19
+ throw new ExceedsLengthError({ limit });
20
+ const checksum = createChecksum(hrp, data5);
21
+ let result = hrp + '1';
22
+ for (const d of data5.concat(checksum))
23
+ result += alphabet[d];
24
+ return result;
25
+ }
26
+ function decode(str, options = {}) {
27
+ const { limit = 90 } = options;
28
+ if (str.length > limit)
29
+ throw new ExceedsLengthError({ limit });
30
+ if (str !== str.toLowerCase() && str !== str.toUpperCase())
31
+ throw new MixedCaseError();
32
+ const lower = str.toLowerCase();
33
+ const pos = lower.lastIndexOf('1');
34
+ if (pos === -1)
35
+ throw new NoSeparatorError();
36
+ if (pos === 0)
37
+ throw new InvalidHrpError();
38
+ if (pos + 7 > lower.length)
39
+ throw new InvalidChecksumError();
40
+ const hrp = lower.slice(0, pos);
41
+ for (let i = 0; i < hrp.length; i++) {
42
+ const c = hrp.charCodeAt(i);
43
+ if (c < 33 || c > 126)
44
+ throw new InvalidHrpError();
45
+ }
46
+ const dataChars = lower.slice(pos + 1);
47
+ const data5 = [];
48
+ for (const c of dataChars) {
49
+ const v = alphabetMap[c];
50
+ if (v === undefined)
51
+ throw new InvalidCharacterError({ character: c });
52
+ data5.push(v);
53
+ }
54
+ if (!verifyChecksum(hrp, data5))
55
+ throw new InvalidChecksumError();
56
+ const data8 = convertBits(data5.slice(0, -6), 5, 8, false);
57
+ return { hrp, data: new Uint8Array(data8) };
58
+ }
59
+ class NoSeparatorError extends Errors_js_1.BaseError {
60
+ constructor() {
61
+ super('Bech32m string has no separator.');
62
+ Object.defineProperty(this, "name", {
63
+ enumerable: true,
64
+ configurable: true,
65
+ writable: true,
66
+ value: 'Bech32m.NoSeparatorError'
67
+ });
68
+ }
69
+ }
70
+ exports.NoSeparatorError = NoSeparatorError;
71
+ class InvalidChecksumError extends Errors_js_1.BaseError {
72
+ constructor() {
73
+ super('Invalid bech32m checksum.');
74
+ Object.defineProperty(this, "name", {
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ value: 'Bech32m.InvalidChecksumError'
79
+ });
80
+ }
81
+ }
82
+ exports.InvalidChecksumError = InvalidChecksumError;
83
+ class InvalidCharacterError extends Errors_js_1.BaseError {
84
+ constructor({ character }) {
85
+ super(`Invalid bech32m character: "${character}".`);
86
+ Object.defineProperty(this, "name", {
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true,
90
+ value: 'Bech32m.InvalidCharacterError'
91
+ });
92
+ }
93
+ }
94
+ exports.InvalidCharacterError = InvalidCharacterError;
95
+ class InvalidPaddingError extends Errors_js_1.BaseError {
96
+ constructor() {
97
+ super('Invalid padding in bech32m data.');
98
+ Object.defineProperty(this, "name", {
99
+ enumerable: true,
100
+ configurable: true,
101
+ writable: true,
102
+ value: 'Bech32m.InvalidPaddingError'
103
+ });
104
+ }
105
+ }
106
+ exports.InvalidPaddingError = InvalidPaddingError;
107
+ class MixedCaseError extends Errors_js_1.BaseError {
108
+ constructor() {
109
+ super('Bech32m string must not contain mixed case.');
110
+ Object.defineProperty(this, "name", {
111
+ enumerable: true,
112
+ configurable: true,
113
+ writable: true,
114
+ value: 'Bech32m.MixedCaseError'
115
+ });
116
+ }
117
+ }
118
+ exports.MixedCaseError = MixedCaseError;
119
+ class InvalidHrpError extends Errors_js_1.BaseError {
120
+ constructor() {
121
+ super('Invalid bech32m human-readable part (HRP). Must be 1+ characters in ASCII range 33-126.');
122
+ Object.defineProperty(this, "name", {
123
+ enumerable: true,
124
+ configurable: true,
125
+ writable: true,
126
+ value: 'Bech32m.InvalidHrpError'
127
+ });
128
+ }
129
+ }
130
+ exports.InvalidHrpError = InvalidHrpError;
131
+ class ExceedsLengthError extends Errors_js_1.BaseError {
132
+ constructor({ limit }) {
133
+ super(`Bech32m string exceeds length limit of ${limit}.`);
134
+ Object.defineProperty(this, "name", {
135
+ enumerable: true,
136
+ configurable: true,
137
+ writable: true,
138
+ value: 'Bech32m.ExceedsLengthError'
139
+ });
140
+ }
141
+ }
142
+ exports.ExceedsLengthError = ExceedsLengthError;
143
+ const alphabet = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';
144
+ const alphabetMap = (() => {
145
+ const map = {};
146
+ for (let i = 0; i < alphabet.length; i++)
147
+ map[alphabet[i]] = i;
148
+ return map;
149
+ })();
150
+ const BECH32M_CONST = 0x2bc830a3;
151
+ const GEN = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];
152
+ function polymod(values) {
153
+ let chk = 1;
154
+ for (const v of values) {
155
+ const b = chk >> 25;
156
+ chk = ((chk & 0x1ffffff) << 5) ^ v;
157
+ for (let i = 0; i < 5; i++)
158
+ if ((b >> i) & 1)
159
+ chk ^= GEN[i];
160
+ }
161
+ return chk;
162
+ }
163
+ function hrpExpand(hrp) {
164
+ const ret = [];
165
+ for (let i = 0; i < hrp.length; i++)
166
+ ret.push(hrp.charCodeAt(i) >> 5);
167
+ ret.push(0);
168
+ for (let i = 0; i < hrp.length; i++)
169
+ ret.push(hrp.charCodeAt(i) & 31);
170
+ return ret;
171
+ }
172
+ function createChecksum(hrp, data) {
173
+ const values = hrpExpand(hrp).concat(data).concat([0, 0, 0, 0, 0, 0]);
174
+ const mod = polymod(values) ^ BECH32M_CONST;
175
+ const ret = [];
176
+ for (let i = 0; i < 6; i++)
177
+ ret.push((mod >> (5 * (5 - i))) & 31);
178
+ return ret;
179
+ }
180
+ function verifyChecksum(hrp, data) {
181
+ return polymod(hrpExpand(hrp).concat(data)) === BECH32M_CONST;
182
+ }
183
+ function convertBits(data, fromBits, toBits, pad) {
184
+ let acc = 0;
185
+ let bits = 0;
186
+ const maxv = (1 << toBits) - 1;
187
+ const ret = [];
188
+ for (const value of data) {
189
+ acc = (acc << fromBits) | value;
190
+ bits += fromBits;
191
+ while (bits >= toBits) {
192
+ bits -= toBits;
193
+ ret.push((acc >> bits) & maxv);
194
+ }
195
+ }
196
+ if (pad) {
197
+ if (bits > 0)
198
+ ret.push((acc << (toBits - bits)) & maxv);
199
+ }
200
+ else if (bits >= fromBits || (acc << (toBits - bits)) & maxv) {
201
+ throw new InvalidPaddingError();
202
+ }
203
+ return ret;
204
+ }
205
+ //# sourceMappingURL=Bech32m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bech32m.js","sourceRoot":"","sources":["../../core/Bech32m.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InsufficientBytesError = exports.NegativeValueError = void 0;
4
+ exports.toBytes = toBytes;
5
+ exports.toHex = toHex;
6
+ exports.fromBytes = fromBytes;
7
+ exports.fromHex = fromHex;
8
+ const Bytes = require("./Bytes.js");
9
+ const Errors = require("./Errors.js");
10
+ const Hex = require("./Hex.js");
11
+ function toBytes(value) {
12
+ const n = BigInt(value);
13
+ if (n < 0n)
14
+ throw new NegativeValueError({ value: n });
15
+ if (n <= 252n)
16
+ return new Uint8Array([Number(n)]);
17
+ if (n <= 0xffffn) {
18
+ const buf = new Uint8Array(3);
19
+ buf[0] = 0xfd;
20
+ const view = new DataView(buf.buffer);
21
+ view.setUint16(1, Number(n), true);
22
+ return buf;
23
+ }
24
+ if (n <= 0xffffffffn) {
25
+ const buf = new Uint8Array(5);
26
+ buf[0] = 0xfe;
27
+ const view = new DataView(buf.buffer);
28
+ view.setUint32(1, Number(n), true);
29
+ return buf;
30
+ }
31
+ const buf = new Uint8Array(9);
32
+ buf[0] = 0xff;
33
+ const view = new DataView(buf.buffer);
34
+ view.setBigUint64(1, n, true);
35
+ return buf;
36
+ }
37
+ function toHex(value) {
38
+ return Hex.fromBytes(toBytes(value));
39
+ }
40
+ function fromBytes(data) {
41
+ if (data.length === 0)
42
+ throw new InsufficientBytesError({ expected: 1, actual: 0 });
43
+ const first = data[0];
44
+ if (first < 0xfd)
45
+ return { value: BigInt(first), size: 1 };
46
+ const view = new DataView(data.buffer, data.byteOffset);
47
+ if (first === 0xfd) {
48
+ if (data.length < 3)
49
+ throw new InsufficientBytesError({ expected: 3, actual: data.length });
50
+ return { value: BigInt(view.getUint16(1, true)), size: 3 };
51
+ }
52
+ if (first === 0xfe) {
53
+ if (data.length < 5)
54
+ throw new InsufficientBytesError({ expected: 5, actual: data.length });
55
+ return { value: BigInt(view.getUint32(1, true)), size: 5 };
56
+ }
57
+ if (data.length < 9)
58
+ throw new InsufficientBytesError({ expected: 9, actual: data.length });
59
+ return {
60
+ value: view.getBigUint64(1, true),
61
+ size: 9,
62
+ };
63
+ }
64
+ function fromHex(data) {
65
+ return fromBytes(Bytes.fromHex(data));
66
+ }
67
+ class NegativeValueError extends Errors.BaseError {
68
+ constructor({ value }) {
69
+ super(`CompactSize value must be non-negative, got ${value}.`);
70
+ Object.defineProperty(this, "name", {
71
+ enumerable: true,
72
+ configurable: true,
73
+ writable: true,
74
+ value: 'CompactSize.NegativeValueError'
75
+ });
76
+ }
77
+ }
78
+ exports.NegativeValueError = NegativeValueError;
79
+ class InsufficientBytesError extends Errors.BaseError {
80
+ constructor({ expected, actual }) {
81
+ super(`Insufficient bytes for CompactSize decoding. Expected at least ${expected}, got ${actual}.`);
82
+ Object.defineProperty(this, "name", {
83
+ enumerable: true,
84
+ configurable: true,
85
+ writable: true,
86
+ value: 'CompactSize.InsufficientBytesError'
87
+ });
88
+ }
89
+ }
90
+ exports.InsufficientBytesError = InsufficientBytesError;
91
+ //# sourceMappingURL=CompactSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactSize.js","sourceRoot":"","sources":["../../core/CompactSize.ts"],"names":[],"mappings":"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"}
package/_cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Signature = exports.Secp256k1 = exports.RpcTransport = exports.RpcSchema = exports.RpcResponse = exports.RpcRequest = exports.Rlp = exports.PublicKey = exports.Provider = exports.PersonalMessage = exports.P256 = exports.Mnemonic = exports.Log = exports.Kzg = exports.Keystore = exports.Json = exports.Hex = exports.HdKey = exports.Hash = exports.Filter = exports.Fee = exports.Errors = exports.Ens = exports.Ed25519 = exports.CoseKey = exports.ContractAddress = exports.Cbor = exports.Caches = exports.Bytes = exports.BlsPoint = exports.Bls = exports.Bloom = exports.BlockOverrides = exports.Block = exports.Blobs = exports.BinaryStateTree = exports.Base64 = exports.Base58 = exports.Authorization = exports.AesGcm = exports.Address = exports.AccountProof = exports.AccessList = exports.AbiParameters = exports.AbiItem = exports.AbiFunction = exports.AbiEvent = exports.AbiError = exports.AbiConstructor = exports.Abi = void 0;
4
- exports.X25519 = exports.Withdrawal = exports.WebCryptoP256 = exports.WebAuthnP256 = exports.Value = exports.ValidatorData = exports.TypedData = exports.TxEnvelopeLegacy = exports.TxEnvelopeEip7702 = exports.TxEnvelopeEip4844 = exports.TxEnvelopeEip2930 = exports.TxEnvelopeEip1559 = exports.TransactionEnvelope = exports.TransactionRequest = exports.TransactionReceipt = exports.Transaction = exports.StateOverrides = exports.Solidity = exports.Siwe = void 0;
3
+ exports.RpcSchema = exports.RpcResponse = exports.RpcRequest = exports.Rlp = exports.PublicKey = exports.Provider = exports.PersonalMessage = exports.P256 = exports.Mnemonic = exports.Log = exports.Kzg = exports.Keystore = exports.Json = exports.Hex = exports.HdKey = exports.Hash = exports.Filter = exports.Fee = exports.Errors = exports.Ens = exports.Ed25519 = exports.CoseKey = exports.ContractAddress = exports.CompactSize = exports.Cbor = exports.Caches = exports.Bytes = exports.BlsPoint = exports.Bls = exports.Bloom = exports.BlockOverrides = exports.Block = exports.Blobs = exports.BinaryStateTree = exports.Bech32m = exports.Base64 = exports.Base58 = exports.Base32 = exports.Authorization = exports.AesGcm = exports.Address = exports.AccountProof = exports.AccessList = exports.AbiParameters = exports.AbiItem = exports.AbiFunction = exports.AbiEvent = exports.AbiError = exports.AbiConstructor = exports.Abi = void 0;
4
+ exports.X25519 = exports.Withdrawal = exports.WebCryptoP256 = exports.WebAuthnP256 = exports.Value = exports.ValidatorData = exports.TypedData = exports.TxEnvelopeLegacy = exports.TxEnvelopeEip7702 = exports.TxEnvelopeEip4844 = exports.TxEnvelopeEip2930 = exports.TxEnvelopeEip1559 = exports.TransactionEnvelope = exports.TransactionRequest = exports.TransactionReceipt = exports.Transaction = exports.StateOverrides = exports.Solidity = exports.Siwe = exports.Signature = exports.Secp256k1 = exports.RpcTransport = void 0;
5
5
  exports.Abi = require("./core/Abi.js");
6
6
  exports.AbiConstructor = require("./core/AbiConstructor.js");
7
7
  exports.AbiError = require("./core/AbiError.js");
@@ -14,8 +14,10 @@ exports.AccountProof = require("./core/AccountProof.js");
14
14
  exports.Address = require("./core/Address.js");
15
15
  exports.AesGcm = require("./core/AesGcm.js");
16
16
  exports.Authorization = require("./core/Authorization.js");
17
+ exports.Base32 = require("./core/Base32.js");
17
18
  exports.Base58 = require("./core/Base58.js");
18
19
  exports.Base64 = require("./core/Base64.js");
20
+ exports.Bech32m = require("./core/Bech32m.js");
19
21
  exports.BinaryStateTree = require("./core/BinaryStateTree.js");
20
22
  exports.Blobs = require("./core/Blobs.js");
21
23
  exports.Block = require("./core/Block.js");
@@ -26,6 +28,7 @@ exports.BlsPoint = require("./core/BlsPoint.js");
26
28
  exports.Bytes = require("./core/Bytes.js");
27
29
  exports.Caches = require("./core/Caches.js");
28
30
  exports.Cbor = require("./core/Cbor.js");
31
+ exports.CompactSize = require("./core/CompactSize.js");
29
32
  exports.ContractAddress = require("./core/ContractAddress.js");
30
33
  exports.CoseKey = require("./core/CoseKey.js");
31
34
  exports.Ed25519 = require("./core/Ed25519.js");
package/_cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAuHA,uCAAoC;AA4EpC,6DAA0D;AAwE1D,iDAA8C;AAmH9C,iDAA8C;AA8F9C,uDAAoD;AA8EpD,+CAA4C;AAwG5C,2DAAwD;AAOxD,qDAAkD;AAOlD,yDAAsD;AAuDtD,+CAA4C;AAqC5C,6CAA0C;AA0E1C,2DAAwD;AAuDxD,6CAA0C;AAsD1C,6CAA0C;AAO1C,+DAA4D;AAO5D,2CAAwC;AAgCxC,2CAAwC;AAOxC,6DAA0D;AAO1D,2CAAwC;AAoHxC,uCAAoC;AA6CpC,iDAA8C;AAgI9C,2CAAwC;AAExC,6CAA0C;AAiC1C,yCAAsC;AAqCtC,+DAA4D;AAgC5D,+CAA4C;AAgC5C,+CAA4C;AA+B5C,uCAAoC;AAEpC,6CAA0C;AAI1C,uCAAoC;AAMpC,6CAA0C;AAc1C,yCAAsC;AAatC,2CAAwC;AAkHxC,uCAAoC;AAkCpC,yCAAsC;AA+DtC,iDAA8C;AAQ9C,uCAAoC;AA0DpC,uCAAoC;AA4DpC,iDAA8C;AAwE9C,yCAAsC;AAmBtC,+DAA4D;AAoF5D,iDAA8C;AAwC9C,mDAAgD;AAiBhD,uCAAoC;AAmCpC,qDAAkD;AAmFlD,uDAAoD;AAMpD,mDAAgD;AAyBhD,yDAAsD;AAwEtD,mDAAgD;AAmChD,mDAAgD;AAqGhD,yCAAsC;AAEtC,iDAA8C;AAO9C,6DAA0D;AAuC1D,uDAAoD;AA4CpD,qEAAkE;AAwBlE,qEAAkE;AAelE,8DAA2D;AAsK3D,mEAAgE;AA8JhE,mEAAgE;AAuLhE,mEAAgE;AAoIhE,mEAAgE;AA0JhE,iEAA8D;AAkD9D,mDAAgD;AAOhD,2DAAwD;AAsBxD,2CAAwC;AAkFxC,yDAAsD;AAiEtD,2DAAwD;AAOxD,qDAAkD;AAmClD,6CAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAuHA,uCAAoC;AA4EpC,6DAA0D;AAwE1D,iDAA8C;AAmH9C,iDAA8C;AA8F9C,uDAAoD;AA8EpD,+CAA4C;AAwG5C,2DAAwD;AAOxD,qDAAkD;AAOlD,yDAAsD;AAuDtD,+CAA4C;AAqC5C,6CAA0C;AA0E1C,2DAAwD;AAyBxD,6CAA0C;AAsD1C,6CAA0C;AAqD1C,6CAA0C;AAwB1C,+CAA4C;AAO5C,+DAA4D;AAO5D,2CAAwC;AAgCxC,2CAAwC;AAOxC,6DAA0D;AAO1D,2CAAwC;AAoHxC,uCAAoC;AA6CpC,iDAA8C;AAgI9C,2CAAwC;AAExC,6CAA0C;AAiC1C,yCAAsC;AAyBtC,uDAAoD;AAsCpD,+DAA4D;AAgC5D,+CAA4C;AAgC5C,+CAA4C;AA+B5C,uCAAoC;AAEpC,6CAA0C;AAI1C,uCAAoC;AAMpC,6CAA0C;AAc1C,yCAAsC;AAatC,2CAAwC;AAkHxC,uCAAoC;AAkCpC,yCAAsC;AA+DtC,iDAA8C;AAQ9C,uCAAoC;AA0DpC,uCAAoC;AA4DpC,iDAA8C;AAwE9C,yCAAsC;AAmBtC,+DAA4D;AAoF5D,iDAA8C;AAwC9C,mDAAgD;AAiBhD,uCAAoC;AAmCpC,qDAAkD;AAmFlD,uDAAoD;AAMpD,mDAAgD;AAyBhD,yDAAsD;AAwEtD,mDAAgD;AAmChD,mDAAgD;AAqGhD,yCAAsC;AAEtC,iDAA8C;AAO9C,6DAA0D;AAuC1D,uDAAoD;AA4CpD,qEAAkE;AAwBlE,qEAAkE;AAelE,8DAA2D;AAsK3D,mEAAgE;AA8JhE,mEAAgE;AAuLhE,mEAAgE;AAoIhE,mEAAgE;AA0JhE,iEAA8D;AAkD9D,mDAAgD;AAOhD,2DAAwD;AAsBxD,2CAAwC;AAkFxC,yDAAsD;AAiEtD,2DAAwD;AAOxD,qDAAkD;AAmClD,6CAA0C"}
@@ -24,7 +24,7 @@ function from(authorization, options = {}) {
24
24
  return authorization;
25
25
  }
26
26
  function fromRpc(authorization) {
27
- const { chainId = '0x0', keyId, expiry = 0, limits, keyType } = authorization;
27
+ const { chainId, keyId, expiry = 0, limits, keyType } = authorization;
28
28
  const signature = SignatureEnvelope.fromRpc(authorization.signature);
29
29
  return {
30
30
  address: keyId,
@@ -58,7 +58,7 @@ function fromTuple(tuple) {
58
58
  address: keyId,
59
59
  expiry: typeof expiry !== 'undefined' ? hexToNumber(expiry) : undefined,
60
60
  type: keyType,
61
- ...(chainId !== '0x' ? { chainId: Hex.toBigInt(chainId) } : {}),
61
+ chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
62
62
  ...(typeof expiry !== 'undefined' ? { expiry: hexToNumber(expiry) } : {}),
63
63
  ...(typeof limits !== 'undefined'
64
64
  ? {
@@ -90,7 +90,7 @@ function serialize(authorization) {
90
90
  return Rlp.fromHex(tuple);
91
91
  }
92
92
  function toRpc(authorization) {
93
- const { address, chainId = 0n, expiry, limits, type, signature, } = authorization;
93
+ const { address, chainId, expiry, limits, type, signature } = authorization;
94
94
  return {
95
95
  chainId: chainId === 0n ? '0x' : Hex.fromNumber(chainId),
96
96
  expiry: typeof expiry === 'number' ? Hex.fromNumber(expiry) : null,
@@ -104,7 +104,7 @@ function toRpc(authorization) {
104
104
  };
105
105
  }
106
106
  function toTuple(authorization) {
107
- const { address, chainId = 0n, expiry, limits } = authorization;
107
+ const { address, chainId, expiry, limits } = authorization;
108
108
  const signature = authorization.signature
109
109
  ? SignatureEnvelope.serialize(authorization.signature)
110
110
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":";;AAsPA,oBAeC;AAqDD,0BAcC;AA6CD,8BAoCC;AA2CD,wCAEC;AA+BD,kCAGC;AAiCD,oBAIC;AAmCD,8BAGC;AAuCD,sBAqBC;AAoCD,0BAkCC;AAnrBD,wCAAuC;AACvC,sCAAqC;AAErC,sCAAqC;AACrC,4DAA2D;AAgP3D,SAAgB,IAAI,CAIlB,aAA+C,EAC/C,UAAmC,EAAE;IAErC,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ;QAC1C,OAAO,OAAO,CAAC,aAAoB,CAAU,CAAA;IAC/C,IAAI,OAAO,CAAC,SAAS;QACnB,OAAO;YACL,GAAG,aAAa;YAChB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAC5C,CAAA;IACZ,OAAO,aAAsB,CAAA;AAC/B,CAAC;AAqDD,SAAgB,OAAO,CAAC,aAAkB;IACxC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAA;IAC7E,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACpE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;SAC3B,CAAC,CAAC;QACH,SAAS;QACT,IAAI,EAAE,OAAO;KACd,CAAA;AACH,CAAC;AA6CD,SAAgB,SAAS,CACvB,KAAY;IAEZ,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAAA;IACnE,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC;YACV,KAAK,MAAM;gBACT,OAAO,WAAW,CAAA;YACpB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAA;YACf,KAAK,MAAM;gBACT,OAAO,UAAU,CAAA;YACnB;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,IAAI,GAAqB;QAC7B,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACvE,IAAI,EAAE,OAAO;QACb,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW;YAC/B,CAAC,CAAC;gBACE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtC,KAAK;oBACL,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;iBAC1B,CAAC,CAAC;aACJ;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;IACD,IAAI,mBAAmB;QACrB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAA;IACrE,OAAO,IAAI,CAAC,IAAI,CAAU,CAAA;AAC5B,CAAC;AA2CD,SAAgB,cAAc,CAAC,aAA+B;IAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,CAAA;AAC5B,CAAC;AA+BD,SAAgB,WAAW,CAAC,UAAmB;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAqB,CAAA;IACvD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC;AAiCD,SAAgB,IAAI,CAAC,aAA+B;IAClD,MAAM,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAClD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC;AAmCD,SAAgB,SAAS,CAAC,aAA+B;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAY,CAAC,CAAA;AAClC,CAAC;AAuCD,SAAgB,KAAK,CAAC,aAAqB;IACzC,MAAM,EACJ,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,SAAS,GACV,GAAG,aAAa,CAAA;IAEjB,OAAO;QACL,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACxD,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,KAAK;YACL,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;SAC7B,CAAC,CAAC;QACH,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7C,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC;AAoCD,SAAgB,OAAO,CACrB,aAA4B;IAE5B,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAA;IAC/D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS;QACvC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;QACtD,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,QAAQ,aAAa,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,WAAW;gBACd,OAAO,IAAI,CAAA;YACb,KAAK,MAAM;gBACT,OAAO,MAAM,CAAA;YACf,KAAK,UAAU;gBACb,OAAO,MAAM,CAAA;YACf;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,WAAW,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,KAAK,CAAC,KAAK;QACX,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;KACzB,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG;QACzB,WAAW,CAAC,OAAO,CAAC;QACpB,IAAI;QACJ,OAAO;QAEP,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW;YACvC,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,SAAS;QACb,WAAW;KACZ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAU,CAAA;AACzE,CAAC;AASD,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ const ox_WebAuthnP256 = require("../core/WebAuthnP256.js");
23
23
  const serializedP256Type = '0x01';
24
24
  const serializedWebAuthnType = '0x02';
25
25
  const serializedKeychainType = '0x03';
26
+ const serializedKeychainV2Type = '0x04';
26
27
  exports.magicBytes = '0x7777777777777777777777777777777777777777777777777777777777777777';
27
28
  exports.types = ['secp256k1', 'p256', 'webAuthn'];
28
29
  function assert(envelope) {
@@ -187,17 +188,19 @@ function deserialize(value) {
187
188
  type: 'webAuthn',
188
189
  };
189
190
  }
190
- if (typeId === serializedKeychainType) {
191
+ if (typeId === serializedKeychainType ||
192
+ typeId === serializedKeychainV2Type) {
191
193
  const userAddress = Hex.slice(data, 0, 20);
192
194
  const inner = deserialize(Hex.slice(data, 20));
193
195
  return {
194
196
  userAddress,
195
197
  inner,
196
198
  type: 'keychain',
199
+ version: typeId === serializedKeychainV2Type ? 'v2' : 'v1',
197
200
  };
198
201
  }
199
202
  throw new InvalidSerializedError({
200
- reason: `Unknown signature type identifier: ${typeId}. Expected ${serializedP256Type} (P256) or ${serializedWebAuthnType} (WebAuthn)`,
203
+ reason: `Unknown signature type identifier: ${typeId}. Expected ${serializedP256Type} (P256), ${serializedWebAuthnType} (WebAuthn), ${serializedKeychainType} (Keychain V1), or ${serializedKeychainV2Type} (Keychain V2)`,
201
204
  serialized,
202
205
  });
203
206
  }
@@ -214,6 +217,13 @@ function from(value) {
214
217
  return {
215
218
  ...value,
216
219
  ...(type === 'p256' ? { prehash: value.prehash } : {}),
220
+ ...(type === 'keychain' &&
221
+ !(typeof value === 'object' &&
222
+ value !== null &&
223
+ 'version' in value &&
224
+ value.version)
225
+ ? { version: 'v1' }
226
+ : {}),
217
227
  type,
218
228
  };
219
229
  }
@@ -283,6 +293,7 @@ function fromRpc(envelope) {
283
293
  type: 'keychain',
284
294
  userAddress: envelope.userAddress,
285
295
  inner: fromRpc(envelope.signature),
296
+ ...(envelope.version ? { version: envelope.version } : {}),
286
297
  };
287
298
  throw new CoercionError({ envelope });
288
299
  }
@@ -333,7 +344,10 @@ function serialize(envelope, options = {}) {
333
344
  }
334
345
  if (type === 'keychain') {
335
346
  const keychain = envelope;
336
- return Hex.concat(serializedKeychainType, keychain.userAddress, serialize(keychain.inner), options.magic ? exports.magicBytes : '0x');
347
+ const keychainTypeId = keychain.version === 'v1'
348
+ ? serializedKeychainType
349
+ : serializedKeychainV2Type;
350
+ return Hex.concat(keychainTypeId, keychain.userAddress, serialize(keychain.inner), options.magic ? exports.magicBytes : '0x');
337
351
  }
338
352
  throw new CoercionError({ envelope });
339
353
  }
@@ -375,6 +389,7 @@ function toRpc(envelope) {
375
389
  type: 'keychain',
376
390
  userAddress: keychain.userAddress,
377
391
  signature: toRpc(keychain.inner),
392
+ ...(keychain.version ? { version: keychain.version } : {}),
378
393
  };
379
394
  }
380
395
  throw new CoercionError({ envelope });