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,182 @@
1
+ import * as Address from '../core/Address.js';
2
+ import * as Bech32m from '../core/Bech32m.js';
3
+ import * as Bytes from '../core/Bytes.js';
4
+ import * as CompactSize from '../core/CompactSize.js';
5
+ import * as Errors from '../core/Errors.js';
6
+ import * as Hex from '../core/Hex.js';
7
+ /**
8
+ * Formats a raw Ethereum address (and optional zone ID) into a Tempo address string.
9
+ *
10
+ * @example
11
+ * ```ts twoslash
12
+ * import { TempoAddress } from 'ox/tempo'
13
+ *
14
+ * const address = TempoAddress.format('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
15
+ * // @log: 'tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0'
16
+ * ```
17
+ *
18
+ * @example
19
+ * ### Zone Address
20
+ * ```ts twoslash
21
+ * import { TempoAddress } from 'ox/tempo'
22
+ *
23
+ * const address = TempoAddress.format(
24
+ * '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
25
+ * { zoneId: 1 },
26
+ * )
27
+ * // @log: 'tempoz1qqqhgtf4e3nrfszn9yj68wzyhj08t90jh55q74d9uj'
28
+ * ```
29
+ *
30
+ * @param address - The raw 20-byte Ethereum address.
31
+ * @param options - Options.
32
+ * @returns The encoded Tempo address string.
33
+ */
34
+ export function format(address, options = {}) {
35
+ const { zoneId } = options;
36
+ const hrp = zoneId != null ? 'tempoz' : 'tempo';
37
+ const version = new Uint8Array([0x00]);
38
+ const zone = zoneId != null ? CompactSize.toBytes(zoneId) : new Uint8Array();
39
+ const data = Bytes.concat(version, zone, Bytes.fromHex(address));
40
+ return Bech32m.encode(hrp, data);
41
+ }
42
+ /**
43
+ * Parses a Tempo address string into a raw Ethereum address and optional zone ID.
44
+ *
45
+ * @example
46
+ * ### Mainnet Address
47
+ * ```ts twoslash
48
+ * import { TempoAddress } from 'ox/tempo'
49
+ *
50
+ * const result = TempoAddress.parse(
51
+ * 'tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0',
52
+ * )
53
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28', zoneId: undefined }
54
+ * ```
55
+ *
56
+ * @example
57
+ * ### Zone Address
58
+ * ```ts twoslash
59
+ * import { TempoAddress } from 'ox/tempo'
60
+ *
61
+ * const result = TempoAddress.parse(
62
+ * 'tempoz1qqqhgtf4e3nrfszn9yj68wzyhj08t90jh55q74d9uj',
63
+ * )
64
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28', zoneId: 1 }
65
+ * ```
66
+ *
67
+ * @param tempoAddress - The Tempo address string to parse.
68
+ * @returns The parsed raw address and optional zone ID.
69
+ */
70
+ export function parse(tempoAddress) {
71
+ let hrp;
72
+ let data;
73
+ try {
74
+ const decoded = Bech32m.decode(tempoAddress);
75
+ hrp = decoded.hrp;
76
+ data = decoded.data;
77
+ }
78
+ catch {
79
+ throw new InvalidChecksumError({ address: tempoAddress });
80
+ }
81
+ if (hrp !== 'tempo' && hrp !== 'tempoz')
82
+ throw new InvalidPrefixError({ address: tempoAddress });
83
+ if (data.length < 1 || data[0] !== 0x00)
84
+ throw new InvalidVersionError({
85
+ address: tempoAddress,
86
+ version: data.length > 0 ? data[0] : undefined,
87
+ });
88
+ const payload = data.slice(1);
89
+ let zoneId;
90
+ let rawAddress;
91
+ if (hrp === 'tempoz') {
92
+ const { value, size } = CompactSize.fromBytes(payload);
93
+ zoneId = value;
94
+ rawAddress = payload.slice(size);
95
+ }
96
+ else {
97
+ zoneId = undefined;
98
+ rawAddress = payload;
99
+ }
100
+ if (rawAddress.length !== 20)
101
+ throw new InvalidLengthError({
102
+ address: tempoAddress,
103
+ expected: 20,
104
+ actual: rawAddress.length,
105
+ });
106
+ const address = Address.checksum(Hex.fromBytes(rawAddress));
107
+ return { address, zoneId };
108
+ }
109
+ /**
110
+ * Validates a Tempo address string.
111
+ *
112
+ * @example
113
+ * ```ts twoslash
114
+ * import { TempoAddress } from 'ox/tempo'
115
+ *
116
+ * const valid = TempoAddress.validate(
117
+ * 'tempo1qp6z6dwvvc6vq5efyk3ms39une6etu4a9qtj2kk0',
118
+ * )
119
+ * // @log: true
120
+ * ```
121
+ *
122
+ * @param tempoAddress - The Tempo address string to validate.
123
+ * @returns Whether the address is valid.
124
+ */
125
+ export function validate(tempoAddress) {
126
+ try {
127
+ parse(tempoAddress);
128
+ return true;
129
+ }
130
+ catch {
131
+ return false;
132
+ }
133
+ }
134
+ /** Thrown when a Tempo address has an invalid prefix. */
135
+ export class InvalidPrefixError extends Errors.BaseError {
136
+ constructor({ address }) {
137
+ super(`Tempo address "${address}" has an invalid prefix. Expected "tempo1" or "tempoz1".`);
138
+ Object.defineProperty(this, "name", {
139
+ enumerable: true,
140
+ configurable: true,
141
+ writable: true,
142
+ value: 'TempoAddress.InvalidPrefixError'
143
+ });
144
+ }
145
+ }
146
+ /** Thrown when a Tempo address has an unsupported version byte. */
147
+ export class InvalidVersionError extends Errors.BaseError {
148
+ constructor({ address, version, }) {
149
+ super(`Tempo address "${address}" has unsupported version ${version === undefined ? '(missing)' : `0x${version.toString(16).padStart(2, '0')}`}. Only version 0x00 is supported.`);
150
+ Object.defineProperty(this, "name", {
151
+ enumerable: true,
152
+ configurable: true,
153
+ writable: true,
154
+ value: 'TempoAddress.InvalidVersionError'
155
+ });
156
+ }
157
+ }
158
+ /** Thrown when a Tempo address has an invalid payload length. */
159
+ export class InvalidLengthError extends Errors.BaseError {
160
+ constructor({ address, expected, actual, }) {
161
+ super(`Tempo address "${address}" has an invalid payload length. Expected ${expected} bytes, got ${actual}.`);
162
+ Object.defineProperty(this, "name", {
163
+ enumerable: true,
164
+ configurable: true,
165
+ writable: true,
166
+ value: 'TempoAddress.InvalidLengthError'
167
+ });
168
+ }
169
+ }
170
+ /** Thrown when a Tempo address has an invalid checksum. */
171
+ export class InvalidChecksumError extends Errors.BaseError {
172
+ constructor({ address }) {
173
+ super(`Tempo address "${address}" has an invalid checksum.`);
174
+ Object.defineProperty(this, "name", {
175
+ enumerable: true,
176
+ configurable: true,
177
+ writable: true,
178
+ value: 'TempoAddress.InvalidChecksumError'
179
+ });
180
+ }
181
+ }
182
+ //# sourceMappingURL=TempoAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TempoAddress.js","sourceRoot":"","sources":["../../tempo/TempoAddress.ts"],"names":[],"mappings":"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"}
@@ -464,11 +464,51 @@ export function serialize(envelope, options = {}) {
464
464
  * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
465
465
  * ```
466
466
  *
467
+ * @example
468
+ * ### Access Keys
469
+ *
470
+ * When signing as an access key on behalf of a root account, pass the
471
+ * `from` option with the root account address. This computes
472
+ * `keccak256(0x04 || sigHash || from)` which binds the signature to the
473
+ * specific user account (V2 keychain format).
474
+ *
475
+ * ```ts twoslash
476
+ * // @noErrors
477
+ * import { Secp256k1 } from 'ox'
478
+ * import { TxEnvelopeTempo, SignatureEnvelope } from 'ox/tempo'
479
+ *
480
+ * const envelope = TxEnvelopeTempo.from({
481
+ * chainId: 1,
482
+ * calls: [{
483
+ * data: '0xdeadbeef',
484
+ * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
485
+ * }],
486
+ * nonce: 0n,
487
+ * maxFeePerGas: 1000000000n,
488
+ * gas: 21000n,
489
+ * })
490
+ *
491
+ * const payload = TxEnvelopeTempo.getSignPayload(envelope, { from: '0x...' }) // [!code focus]
492
+ *
493
+ * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
494
+ *
495
+ * const signed = TxEnvelopeTempo.serialize(envelope, {
496
+ * signature: SignatureEnvelope.from({
497
+ * userAddress: from,
498
+ * inner: SignatureEnvelope.from(signature),
499
+ * }),
500
+ * })
501
+ * ```
502
+ *
467
503
  * @param envelope - The transaction envelope to get the sign payload for.
504
+ * @param options - Options.
468
505
  * @returns The sign payload.
469
506
  */
470
- export function getSignPayload(envelope) {
471
- return hash(envelope, { presign: true });
507
+ export function getSignPayload(envelope, options = {}) {
508
+ const sigHash = hash(envelope, { presign: true });
509
+ if (options.from)
510
+ return Hash.keccak256(Hex.concat('0x04', sigHash, options.from));
511
+ return sigHash;
472
512
  }
473
513
  /**
474
514
  * Hashes a {@link ox#TxEnvelopeTempo.TxEnvelopeTempo}. This is the "transaction hash".
@@ -1 +1 @@
1
- {"version":3,"file":"TxEnvelopeTempo.js","sourceRoot":"","sources":["../../tempo/TxEnvelopeTempo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxEnvelopeTempo.js","sourceRoot":"","sources":["../../tempo/TxEnvelopeTempo.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,27 @@ export * as PoolId from './PoolId.js';
113
113
  * @category Reference
114
114
  */
115
115
  export * as SignatureEnvelope from './SignatureEnvelope.js';
116
+ /**
117
+ * Tempo address encoding/decoding utilities for human-readable addresses.
118
+ *
119
+ * Tempo addresses use a bech32 base32-encoded format with `tempo1` prefix for mainnet
120
+ * and `tempoz1` prefix for zone addresses. Includes CompactSize zone ID encoding
121
+ * and double-SHA256 checksumming.
122
+ *
123
+ * @example
124
+ * ```ts twoslash
125
+ * import { TempoAddress } from 'ox/tempo'
126
+ *
127
+ * const encoded = TempoAddress.format('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
128
+ * // @log: 'tempo1wskntnrxxnq9x2f95wuyf0y7wk2l90fg0hlz9j'
129
+ *
130
+ * const { address, zoneId } = TempoAddress.parse(encoded)
131
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28', zoneId: undefined }
132
+ * ```
133
+ *
134
+ * @category Reference
135
+ */
136
+ export * as TempoAddress from './TempoAddress.js';
116
137
  /**
117
138
  * Tick-based pricing utilities for DEX price conversions.
118
139
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA"}
package/_esm/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export const version = '0.13.1';
2
+ export const version = '0.14.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,79 @@
1
+ import * as Bytes from './Bytes.js';
2
+ import * as Errors from './Errors.js';
3
+ import * as Hex from './Hex.js';
4
+ /**
5
+ * Encodes a {@link ox#Bytes.Bytes} value to a Base32-encoded string (using the BIP-173 bech32 alphabet).
6
+ *
7
+ * @example
8
+ * ```ts twoslash
9
+ * import { Base32, Bytes } from 'ox'
10
+ *
11
+ * const value = Base32.fromBytes(new Uint8Array([0x00, 0xff, 0x00]))
12
+ * ```
13
+ *
14
+ * @param value - The byte array to encode.
15
+ * @returns The Base32 encoded string.
16
+ */
17
+ export declare function fromBytes(value: Bytes.Bytes): string;
18
+ export declare namespace fromBytes {
19
+ type ErrorType = Errors.GlobalErrorType;
20
+ }
21
+ /**
22
+ * Encodes a {@link ox#Hex.Hex} value to a Base32-encoded string (using the BIP-173 bech32 alphabet).
23
+ *
24
+ * @example
25
+ * ```ts twoslash
26
+ * import { Base32 } from 'ox'
27
+ *
28
+ * const value = Base32.fromHex('0x00ff00')
29
+ * ```
30
+ *
31
+ * @param value - The hex value to encode.
32
+ * @returns The Base32 encoded string.
33
+ */
34
+ export declare function fromHex(value: Hex.Hex): string;
35
+ export declare namespace fromHex {
36
+ type ErrorType = fromBytes.ErrorType | Errors.GlobalErrorType;
37
+ }
38
+ /**
39
+ * Decodes a Base32-encoded string (using the BIP-173 bech32 alphabet) to {@link ox#Bytes.Bytes}.
40
+ *
41
+ * @example
42
+ * ```ts twoslash
43
+ * import { Base32 } from 'ox'
44
+ *
45
+ * const value = Base32.toBytes('qqsa0')
46
+ * ```
47
+ *
48
+ * @param value - The Base32 encoded string.
49
+ * @returns The decoded byte array.
50
+ */
51
+ export declare function toBytes(value: string): Bytes.Bytes;
52
+ export declare namespace toBytes {
53
+ type ErrorType = InvalidCharacterError | Errors.GlobalErrorType;
54
+ }
55
+ /**
56
+ * Decodes a Base32-encoded string (using the BIP-173 bech32 alphabet) to {@link ox#Hex.Hex}.
57
+ *
58
+ * @example
59
+ * ```ts twoslash
60
+ * import { Base32 } from 'ox'
61
+ *
62
+ * const value = Base32.toHex('qqsa0')
63
+ * ```
64
+ *
65
+ * @param value - The Base32 encoded string.
66
+ * @returns The decoded hex string.
67
+ */
68
+ export declare function toHex(value: string): Hex.Hex;
69
+ export declare namespace toHex {
70
+ type ErrorType = toBytes.ErrorType | Errors.GlobalErrorType;
71
+ }
72
+ /** Thrown when a Base32 string contains an invalid character. */
73
+ export declare class InvalidCharacterError extends Errors.BaseError {
74
+ readonly name = "Base32.InvalidCharacterError";
75
+ constructor({ character }: {
76
+ character: string;
77
+ });
78
+ }
79
+ //# sourceMappingURL=Base32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base32.d.ts","sourceRoot":"","sources":["../../core/Base32.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAU/B;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAcpD;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAE9C;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAoBlD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,qBAAqB,GAAG,MAAM,CAAC,eAAe,CAAA;CAChE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,CAE5C;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC5D;AAED,iEAAiE;AACjE,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS;IACzD,SAAkB,IAAI,kCAAiC;gBAE3C,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAGjD"}
@@ -0,0 +1,93 @@
1
+ import type * as Errors from './Errors.js';
2
+ import { BaseError } from './Errors.js';
3
+ /**
4
+ * Encodes data bytes with a human-readable part (HRP) into a bech32m string (BIP-350).
5
+ *
6
+ * @example
7
+ * ```ts twoslash
8
+ * import { Bech32m } from 'ox'
9
+ *
10
+ * const encoded = Bech32m.encode('tempo', new Uint8Array(20))
11
+ * // @log: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwa7xtm'
12
+ * ```
13
+ *
14
+ * @param hrp - The human-readable part (e.g. `"tempo"`, `"tempoz"`).
15
+ * @param data - The data bytes to encode.
16
+ * @returns The bech32m-encoded string.
17
+ */
18
+ export declare function encode(hrp: string, data: Uint8Array, options?: encode.Options): string;
19
+ export declare namespace encode {
20
+ type Options = {
21
+ /** Maximum length of the encoded string. @default 90 */
22
+ limit?: number | undefined;
23
+ };
24
+ type ErrorType = InvalidHrpError | ExceedsLengthError | Errors.GlobalErrorType;
25
+ }
26
+ /**
27
+ * Decodes a bech32m string (BIP-350) into a human-readable part and data bytes.
28
+ *
29
+ * @example
30
+ * ```ts twoslash
31
+ * import { Bech32m } from 'ox'
32
+ *
33
+ * const { hrp, data } = Bech32m.decode('tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwa7xtm')
34
+ * // @log: { hrp: 'tempo', data: Uint8Array(20) }
35
+ * ```
36
+ *
37
+ * @param str - The bech32m-encoded string to decode.
38
+ * @returns The decoded HRP and data bytes.
39
+ */
40
+ export declare function decode(str: string, options?: decode.Options): decode.ReturnType;
41
+ export declare namespace decode {
42
+ type Options = {
43
+ /** Maximum length of the encoded string. @default 90 */
44
+ limit?: number | undefined;
45
+ };
46
+ type ReturnType = {
47
+ /** The human-readable part. */
48
+ hrp: string;
49
+ /** The decoded data bytes. */
50
+ data: Uint8Array;
51
+ };
52
+ type ErrorType = NoSeparatorError | InvalidChecksumError | InvalidCharacterError | InvalidPaddingError | MixedCaseError | InvalidHrpError | ExceedsLengthError | Errors.GlobalErrorType;
53
+ }
54
+ /** Thrown when a bech32m string has no separator. */
55
+ export declare class NoSeparatorError extends BaseError {
56
+ readonly name = "Bech32m.NoSeparatorError";
57
+ constructor();
58
+ }
59
+ /** Thrown when a bech32m string has an invalid checksum. */
60
+ export declare class InvalidChecksumError extends BaseError {
61
+ readonly name = "Bech32m.InvalidChecksumError";
62
+ constructor();
63
+ }
64
+ /** Thrown when a bech32m string contains an invalid character. */
65
+ export declare class InvalidCharacterError extends BaseError {
66
+ readonly name = "Bech32m.InvalidCharacterError";
67
+ constructor({ character }: {
68
+ character: string;
69
+ });
70
+ }
71
+ /** Thrown when the padding bits are invalid during base32 conversion. */
72
+ export declare class InvalidPaddingError extends BaseError {
73
+ readonly name = "Bech32m.InvalidPaddingError";
74
+ constructor();
75
+ }
76
+ /** Thrown when a bech32m string contains mixed case. */
77
+ export declare class MixedCaseError extends BaseError {
78
+ readonly name = "Bech32m.MixedCaseError";
79
+ constructor();
80
+ }
81
+ /** Thrown when the HRP is invalid (empty or contains non-ASCII characters). */
82
+ export declare class InvalidHrpError extends BaseError {
83
+ readonly name = "Bech32m.InvalidHrpError";
84
+ constructor();
85
+ }
86
+ /** Thrown when the encoded string exceeds the length limit. */
87
+ export declare class ExceedsLengthError extends BaseError {
88
+ readonly name = "Bech32m.ExceedsLengthError";
89
+ constructor({ limit }: {
90
+ limit: number;
91
+ });
92
+ }
93
+ //# sourceMappingURL=Bech32m.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bech32m.d.ts","sourceRoot":"","sources":["../../core/Bech32m.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,MAAM,CAAC,OAAY,GAC3B,MAAM,CAoBR;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,wDAAwD;QACxD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC3B,CAAA;IAED,KAAK,SAAS,GAAG,eAAe,GAAG,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAA;CAC/E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,OAAY,GAC3B,MAAM,CAAC,UAAU,CAiCnB;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,wDAAwD;QACxD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC3B,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,+BAA+B;QAC/B,GAAG,EAAE,MAAM,CAAA;QACX,8BAA8B;QAC9B,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IAED,KAAK,SAAS,GACV,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED,qDAAqD;AACrD,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,SAAkB,IAAI,8BAA6B;;CAIpD;AAED,4DAA4D;AAC5D,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAkB,IAAI,kCAAiC;;CAIxD;AAED,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,SAAkB,IAAI,mCAAkC;gBAC5C,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;CAGjD;AAED,yEAAyE;AACzE,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,SAAkB,IAAI,iCAAgC;;CAIvD;AAED,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,SAAS;IAC3C,SAAkB,IAAI,4BAA2B;;CAIlD;AAED,+EAA+E;AAC/E,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,SAAkB,IAAI,6BAA4B;;CAMnD;AAED,+DAA+D;AAC/D,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,SAAkB,IAAI,gCAA+B;gBACzC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAGzC"}
@@ -0,0 +1,107 @@
1
+ import * as Bytes from './Bytes.js';
2
+ import * as Errors from './Errors.js';
3
+ import * as Hex from './Hex.js';
4
+ /**
5
+ * Encodes an integer using Bitcoin's CompactSize variable-length encoding.
6
+ *
7
+ * | Range | Encoding | Bytes |
8
+ * |---|---|---|
9
+ * | 0–252 | Direct value | 1 |
10
+ * | 253–65,535 | `0xFD` + 2 bytes LE | 3 |
11
+ * | 65,536–4,294,967,295 | `0xFE` + 4 bytes LE | 5 |
12
+ * | \> 4,294,967,295 | `0xFF` + 8 bytes LE | 9 |
13
+ *
14
+ * @example
15
+ * ```ts twoslash
16
+ * import { CompactSize } from 'ox'
17
+ *
18
+ * const bytes = CompactSize.toBytes(252)
19
+ * // Uint8Array [252]
20
+ *
21
+ * const bytes2 = CompactSize.toBytes(253)
22
+ * // Uint8Array [253, 253, 0]
23
+ * ```
24
+ *
25
+ * @param value - The integer to encode.
26
+ * @returns The CompactSize-encoded bytes.
27
+ */
28
+ export declare function toBytes(value: bigint | number): Bytes.Bytes;
29
+ export declare namespace toBytes {
30
+ type ErrorType = NegativeValueError | Errors.GlobalErrorType;
31
+ }
32
+ /**
33
+ * Encodes an integer using Bitcoin's CompactSize variable-length encoding and returns it as {@link ox#Hex.Hex}.
34
+ *
35
+ * @example
36
+ * ```ts twoslash
37
+ * import { CompactSize } from 'ox'
38
+ *
39
+ * const hex = CompactSize.toHex(252)
40
+ * // '0xfc'
41
+ * ```
42
+ *
43
+ * @param value - The integer to encode.
44
+ * @returns The CompactSize-encoded hex string.
45
+ */
46
+ export declare function toHex(value: bigint | number): Hex.Hex;
47
+ export declare namespace toHex {
48
+ type ErrorType = toBytes.ErrorType | Errors.GlobalErrorType;
49
+ }
50
+ /**
51
+ * Decodes a CompactSize-encoded value from {@link ox#Bytes.Bytes}.
52
+ *
53
+ * @example
54
+ * ```ts twoslash
55
+ * import { CompactSize } from 'ox'
56
+ *
57
+ * const result = CompactSize.fromBytes(new Uint8Array([0xfd, 0x00, 0x01]))
58
+ * // { value: 256, size: 3 }
59
+ * ```
60
+ *
61
+ * @param data - The bytes to decode from.
62
+ * @returns The decoded value and number of bytes consumed.
63
+ */
64
+ export declare function fromBytes(data: Bytes.Bytes): fromBytes.ReturnType;
65
+ export declare namespace fromBytes {
66
+ type ReturnType = {
67
+ /** The decoded integer value. */
68
+ value: bigint;
69
+ /** The number of bytes consumed. */
70
+ size: number;
71
+ };
72
+ type ErrorType = InsufficientBytesError | Errors.GlobalErrorType;
73
+ }
74
+ /**
75
+ * Decodes a CompactSize-encoded value from {@link ox#Hex.Hex}.
76
+ *
77
+ * @example
78
+ * ```ts twoslash
79
+ * import { CompactSize } from 'ox'
80
+ *
81
+ * const result = CompactSize.fromHex('0xfd0001')
82
+ * // { value: 256, size: 3 }
83
+ * ```
84
+ *
85
+ * @param data - The hex string to decode from.
86
+ * @returns The decoded value and number of bytes consumed.
87
+ */
88
+ export declare function fromHex(data: Hex.Hex): fromBytes.ReturnType;
89
+ export declare namespace fromHex {
90
+ type ErrorType = fromBytes.ErrorType | Errors.GlobalErrorType;
91
+ }
92
+ /** Thrown when a CompactSize value is negative. */
93
+ export declare class NegativeValueError extends Errors.BaseError {
94
+ readonly name = "CompactSize.NegativeValueError";
95
+ constructor({ value }: {
96
+ value: bigint;
97
+ });
98
+ }
99
+ /** Thrown when there are insufficient bytes to decode a CompactSize value. */
100
+ export declare class InsufficientBytesError extends Errors.BaseError {
101
+ readonly name = "CompactSize.InsufficientBytesError";
102
+ constructor({ expected, actual }: {
103
+ expected: number;
104
+ actual: number;
105
+ });
106
+ }
107
+ //# sourceMappingURL=CompactSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactSize.d.ts","sourceRoot":"","sources":["../../core/CompactSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAuB3D;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAA;CAC7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,CAErD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU,CAsBjE;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,UAAU,GAAG;QAChB,iCAAiC;QACjC,KAAK,EAAE,MAAM,CAAA;QACb,oCAAoC;QACpC,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED,KAAK,SAAS,GAAG,sBAAsB,GAAG,MAAM,CAAC,eAAe,CAAA;CACjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,UAAU,CAE3D;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC9D;AAED,mDAAmD;AACnD,qBAAa,kBAAmB,SAAQ,MAAM,CAAC,SAAS;IACtD,SAAkB,IAAI,oCAAmC;gBAE7C,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAGzC;AAED,8EAA8E;AAC9E,qBAAa,sBAAuB,SAAQ,MAAM,CAAC,SAAS;IAC1D,SAAkB,IAAI,wCAAuC;gBAEjD,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAKvE"}