ox 0.13.1 → 0.13.2

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 (45) hide show
  1. package/Base32/package.json +6 -0
  2. package/CHANGELOG.md +6 -0
  3. package/CompactSize/package.json +6 -0
  4. package/_cjs/core/Base32.js +73 -0
  5. package/_cjs/core/Base32.js.map +1 -0
  6. package/_cjs/core/CompactSize.js +91 -0
  7. package/_cjs/core/CompactSize.js.map +1 -0
  8. package/_cjs/index.js +4 -2
  9. package/_cjs/index.js.map +1 -1
  10. package/_cjs/tempo/TempoAddress.js +116 -0
  11. package/_cjs/tempo/TempoAddress.js.map +1 -0
  12. package/_cjs/tempo/index.js +2 -1
  13. package/_cjs/tempo/index.js.map +1 -1
  14. package/_cjs/version.js +1 -1
  15. package/_esm/core/Base32.js +119 -0
  16. package/_esm/core/Base32.js.map +1 -0
  17. package/_esm/core/CompactSize.js +150 -0
  18. package/_esm/core/CompactSize.js.map +1 -0
  19. package/_esm/index.js +48 -0
  20. package/_esm/index.js.map +1 -1
  21. package/_esm/tempo/TempoAddress.js +181 -0
  22. package/_esm/tempo/TempoAddress.js.map +1 -0
  23. package/_esm/tempo/index.js +21 -0
  24. package/_esm/tempo/index.js.map +1 -1
  25. package/_esm/version.js +1 -1
  26. package/_types/core/Base32.d.ts +79 -0
  27. package/_types/core/Base32.d.ts.map +1 -0
  28. package/_types/core/CompactSize.d.ts +107 -0
  29. package/_types/core/CompactSize.d.ts.map +1 -0
  30. package/_types/index.d.ts +48 -0
  31. package/_types/index.d.ts.map +1 -1
  32. package/_types/tempo/TempoAddress.d.ts +118 -0
  33. package/_types/tempo/TempoAddress.d.ts.map +1 -0
  34. package/_types/tempo/index.d.ts +21 -0
  35. package/_types/tempo/index.d.ts.map +1 -1
  36. package/_types/version.d.ts +1 -1
  37. package/core/Base32.ts +134 -0
  38. package/core/CompactSize.ts +169 -0
  39. package/index.ts +51 -0
  40. package/package.json +16 -1
  41. package/tempo/TempoAddress/package.json +6 -0
  42. package/tempo/TempoAddress.test.ts +202 -0
  43. package/tempo/TempoAddress.ts +225 -0
  44. package/tempo/index.ts +21 -3
  45. package/version.ts +1 -1
@@ -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"}
package/_types/index.d.ts CHANGED
@@ -824,6 +824,30 @@ export * as AesGcm from './core/AesGcm.js';
824
824
  * @category Authorization (EIP-7702)
825
825
  */
826
826
  export * as Authorization from './core/Authorization.js';
827
+ /**
828
+ * Utility functions for working with Base32 values using the [BIP-173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) bech32 alphabet.
829
+ *
830
+ * @example
831
+ * ### Encoding to Base32
832
+ *
833
+ * ```ts twoslash
834
+ * import { Base32 } from 'ox'
835
+ *
836
+ * const value = Base32.fromHex('0x00ff00')
837
+ * ```
838
+ *
839
+ * @example
840
+ * ### Decoding Base32
841
+ *
842
+ * ```ts twoslash
843
+ * import { Base32 } from 'ox'
844
+ *
845
+ * const value = Base32.toBytes('qrlsq')
846
+ * ```
847
+ *
848
+ * @category Data
849
+ */
850
+ export * as Base32 from './core/Base32.js';
827
851
  /**
828
852
  * Utility functions for working with [Base58](https://digitalbazaar.github.io/base58-spec/) values.
829
853
  *
@@ -1305,6 +1329,30 @@ export * as Caches from './core/Caches.js';
1305
1329
  * @category Data
1306
1330
  */
1307
1331
  export * as Cbor from './core/Cbor.js';
1332
+ /**
1333
+ * Utility functions for [Bitcoin's CompactSize](https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer) variable-length integer encoding.
1334
+ *
1335
+ * @example
1336
+ * ### Encoding
1337
+ *
1338
+ * ```ts twoslash
1339
+ * import { CompactSize } from 'ox'
1340
+ *
1341
+ * const bytes = CompactSize.toBytes(65535)
1342
+ * ```
1343
+ *
1344
+ * @example
1345
+ * ### Decoding
1346
+ *
1347
+ * ```ts twoslash
1348
+ * import { CompactSize } from 'ox'
1349
+ *
1350
+ * const { value, size } = CompactSize.fromBytes(new Uint8Array([0xfd, 0xff, 0xff]))
1351
+ * ```
1352
+ *
1353
+ * @category Data
1354
+ */
1355
+ export * as CompactSize from './core/CompactSize.js';
1308
1356
  /**
1309
1357
  * Utility functions for computing Contract Addresses.
1310
1358
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import * as Address from '../core/Address.js';
2
+ import * as Errors from '../core/Errors.js';
3
+ /** Root type for a Tempo Address. */
4
+ export type TempoAddress = `tempo1${string}` | `tempoz1${string}`;
5
+ /**
6
+ * Formats a raw Ethereum address (and optional zone ID) into a Tempo address string.
7
+ *
8
+ * @example
9
+ * ```ts twoslash
10
+ * import { TempoAddress } from 'ox/tempo'
11
+ *
12
+ * const address = TempoAddress.format('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
13
+ * // @log: 'tempo1wskntnrxxnq9x2f95wuyf0y7wk2l90fg8zd8djs'
14
+ * ```
15
+ *
16
+ * @example
17
+ * ### Zone Address
18
+ * ```ts twoslash
19
+ * import { TempoAddress } from 'ox/tempo'
20
+ *
21
+ * const address = TempoAddress.format(
22
+ * '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28',
23
+ * { zoneId: 1 },
24
+ * )
25
+ * // @log: 'tempoz1q96z6dwvvc6vq5efyk3ms39une6etu4a9zeqtx3q'
26
+ * ```
27
+ *
28
+ * @param address - The raw 20-byte Ethereum address.
29
+ * @param options - Options.
30
+ * @returns The encoded Tempo address string.
31
+ */
32
+ export declare function format(address: Address.Address, options?: format.Options): TempoAddress;
33
+ export declare namespace format {
34
+ type Options = {
35
+ /** Zone ID for zone addresses. */
36
+ zoneId?: bigint | number | undefined;
37
+ };
38
+ type ErrorType = Errors.GlobalErrorType;
39
+ }
40
+ /**
41
+ * Parses a Tempo address string into a raw Ethereum address and optional zone ID.
42
+ *
43
+ * @example
44
+ * ### Mainnet Address
45
+ * ```ts twoslash
46
+ * import { TempoAddress } from 'ox/tempo'
47
+ *
48
+ * const result = TempoAddress.parse(
49
+ * 'tempo1wst8d6qejxtdg4y5r3zarvary0c5xw7kvmgh8pm',
50
+ * )
51
+ * // { address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28' }
52
+ * ```
53
+ *
54
+ * @example
55
+ * ### Zone Address
56
+ * ```ts twoslash
57
+ * import { TempoAddress } from 'ox/tempo'
58
+ *
59
+ * const result = TempoAddress.parse(
60
+ * 'tempoz1qwst8d6qejxtdg4y5r3zarvary0c5xw7kvmgh8pm',
61
+ * )
62
+ * // { address: '0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28', zoneId: 1 }
63
+ * ```
64
+ *
65
+ * @param tempoAddress - The Tempo address string to parse.
66
+ * @returns The parsed raw address and optional zone ID.
67
+ */
68
+ export declare function parse(tempoAddress: string): parse.ReturnType;
69
+ export declare namespace parse {
70
+ type ReturnType = {
71
+ /** The raw 20-byte Ethereum address. */
72
+ address: Address.Address;
73
+ /** The zone ID, or `undefined` for mainnet addresses. */
74
+ zoneId: bigint | undefined;
75
+ };
76
+ type ErrorType = InvalidPrefixError | InvalidLengthError | InvalidChecksumError | Errors.GlobalErrorType;
77
+ }
78
+ /**
79
+ * Validates a Tempo address string.
80
+ *
81
+ * @example
82
+ * ```ts twoslash
83
+ * import { TempoAddress } from 'ox/tempo'
84
+ *
85
+ * const valid = TempoAddress.validate(
86
+ * 'tempo1wst8d6qejxtdg4y5r3zarvary0c5xw7kvmgh8pm',
87
+ * )
88
+ * // true
89
+ * ```
90
+ *
91
+ * @param tempoAddress - The Tempo address string to validate.
92
+ * @returns Whether the address is valid.
93
+ */
94
+ export declare function validate(tempoAddress: string): boolean;
95
+ /** Thrown when a Tempo address has an invalid prefix. */
96
+ export declare class InvalidPrefixError extends Errors.BaseError {
97
+ readonly name = "TempoAddress.InvalidPrefixError";
98
+ constructor({ address }: {
99
+ address: string;
100
+ });
101
+ }
102
+ /** Thrown when a Tempo address has an invalid payload length. */
103
+ export declare class InvalidLengthError extends Errors.BaseError {
104
+ readonly name = "TempoAddress.InvalidLengthError";
105
+ constructor({ address, expected, actual, }: {
106
+ address: string;
107
+ expected: number;
108
+ actual: number;
109
+ });
110
+ }
111
+ /** Thrown when a Tempo address has an invalid checksum. */
112
+ export declare class InvalidChecksumError extends Errors.BaseError {
113
+ readonly name = "TempoAddress.InvalidChecksumError";
114
+ constructor({ address }: {
115
+ address: string;
116
+ });
117
+ }
118
+ //# sourceMappingURL=TempoAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TempoAddress.d.ts","sourceRoot":"","sources":["../../tempo/TempoAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAI7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAI3C,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG,SAAS,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,GAAE,MAAM,CAAC,OAAY,GAC3B,YAAY,CAcd;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,kCAAkC;QAClC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KACrC,CAAA;IAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,CAuD5D;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,UAAU,GAAG;QAChB,wCAAwC;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,yDAAyD;QACzD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAC3B,CAAA;IAED,KAAK,SAAS,GACV,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,yDAAyD;AACzD,qBAAa,kBAAmB,SAAQ,MAAM,CAAC,SAAS;IACtD,SAAkB,IAAI,qCAAoC;gBAE9C,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;CAK7C;AAED,iEAAiE;AACjE,qBAAa,kBAAmB,SAAQ,MAAM,CAAC,SAAS;IACtD,SAAkB,IAAI,qCAAoC;gBAE9C,EACV,OAAO,EACP,QAAQ,EACR,MAAM,GACP,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAKzD;AAED,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,MAAM,CAAC,SAAS;IACxD,SAAkB,IAAI,uCAAsC;gBAEhD,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;CAG7C"}
@@ -115,6 +115,27 @@ export * as PoolId from './PoolId.js';
115
115
  * @category Reference
116
116
  */
117
117
  export * as SignatureEnvelope from './SignatureEnvelope.js';
118
+ /**
119
+ * Tempo address encoding/decoding utilities for human-readable addresses.
120
+ *
121
+ * Tempo addresses use a bech32 base32-encoded format with `tempo1` prefix for mainnet
122
+ * and `tempoz1` prefix for zone addresses. Includes CompactSize zone ID encoding
123
+ * and double-SHA256 checksumming.
124
+ *
125
+ * @example
126
+ * ```ts twoslash
127
+ * import { TempoAddress } from 'ox/tempo'
128
+ *
129
+ * const encoded = TempoAddress.format('0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28')
130
+ * // @log: 'tempo1wskntnrxxnq9x2f95wuyf0y7wk2l90fg8zd8djs'
131
+ *
132
+ * const { address, zoneId } = TempoAddress.parse(encoded)
133
+ * // @log: { address: '0x742d35CC6634c0532925a3B844bc9e7595F2Bd28' }
134
+ * ```
135
+ *
136
+ * @category Reference
137
+ */
138
+ export * as TempoAddress from './TempoAddress.js';
118
139
  /**
119
140
  * Tick-based pricing utilities for DEX price conversions.
120
141
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,YAAY,EAAE,CAAA;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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.d.ts","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,YAAY,EAAE,CAAA;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAC3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;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,3 +1,3 @@
1
1
  /** @internal */
2
- export declare const version = "0.13.1";
2
+ export declare const version = "0.13.2";
3
3
  //# sourceMappingURL=version.d.ts.map
package/core/Base32.ts ADDED
@@ -0,0 +1,134 @@
1
+ import * as Bytes from './Bytes.js'
2
+ import * as Errors from './Errors.js'
3
+ import * as Hex from './Hex.js'
4
+
5
+ /** Bech32 base32 alphabet (BIP-173). */
6
+ const alphabet = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'
7
+ const alphabetMap = /*#__PURE__*/ (() => {
8
+ const map: Record<string, number> = {}
9
+ for (let i = 0; i < alphabet.length; i++) map[alphabet[i]!] = i
10
+ return map
11
+ })()
12
+
13
+ /**
14
+ * Encodes a {@link ox#Bytes.Bytes} value to a Base32-encoded string (using the BIP-173 bech32 alphabet).
15
+ *
16
+ * @example
17
+ * ```ts twoslash
18
+ * import { Base32, Bytes } from 'ox'
19
+ *
20
+ * const value = Base32.fromBytes(new Uint8Array([0x00, 0xff, 0x00]))
21
+ * ```
22
+ *
23
+ * @param value - The byte array to encode.
24
+ * @returns The Base32 encoded string.
25
+ */
26
+ export function fromBytes(value: Bytes.Bytes): string {
27
+ let bits = 0
28
+ let acc = 0
29
+ let result = ''
30
+ for (const byte of value) {
31
+ acc = (acc << 8) | byte
32
+ bits += 8
33
+ while (bits >= 5) {
34
+ bits -= 5
35
+ result += alphabet[(acc >>> bits) & 0x1f]
36
+ }
37
+ }
38
+ if (bits > 0) result += alphabet[(acc << (5 - bits)) & 0x1f]
39
+ return result
40
+ }
41
+
42
+ export declare namespace fromBytes {
43
+ type ErrorType = Errors.GlobalErrorType
44
+ }
45
+
46
+ /**
47
+ * Encodes a {@link ox#Hex.Hex} value to a Base32-encoded string (using the BIP-173 bech32 alphabet).
48
+ *
49
+ * @example
50
+ * ```ts twoslash
51
+ * import { Base32 } from 'ox'
52
+ *
53
+ * const value = Base32.fromHex('0x00ff00')
54
+ * ```
55
+ *
56
+ * @param value - The hex value to encode.
57
+ * @returns The Base32 encoded string.
58
+ */
59
+ export function fromHex(value: Hex.Hex): string {
60
+ return fromBytes(Bytes.fromHex(value))
61
+ }
62
+
63
+ export declare namespace fromHex {
64
+ type ErrorType = fromBytes.ErrorType | Errors.GlobalErrorType
65
+ }
66
+
67
+ /**
68
+ * Decodes a Base32-encoded string (using the BIP-173 bech32 alphabet) to {@link ox#Bytes.Bytes}.
69
+ *
70
+ * @example
71
+ * ```ts twoslash
72
+ * import { Base32 } from 'ox'
73
+ *
74
+ * const value = Base32.toBytes('qqsa0')
75
+ * ```
76
+ *
77
+ * @param value - The Base32 encoded string.
78
+ * @returns The decoded byte array.
79
+ */
80
+ export function toBytes(value: string): Bytes.Bytes {
81
+ const values: number[] = []
82
+ for (const char of value) {
83
+ const v = alphabetMap[char]
84
+ if (v === undefined) throw new InvalidCharacterError({ character: char })
85
+ values.push(v)
86
+ }
87
+
88
+ let bits = 0
89
+ let acc = 0
90
+ const bytes: number[] = []
91
+ for (const v of values) {
92
+ acc = (acc << 5) | v
93
+ bits += 5
94
+ if (bits >= 8) {
95
+ bits -= 8
96
+ bytes.push((acc >>> bits) & 0xff)
97
+ }
98
+ }
99
+ return new Uint8Array(bytes)
100
+ }
101
+
102
+ export declare namespace toBytes {
103
+ type ErrorType = InvalidCharacterError | Errors.GlobalErrorType
104
+ }
105
+
106
+ /**
107
+ * Decodes a Base32-encoded string (using the BIP-173 bech32 alphabet) to {@link ox#Hex.Hex}.
108
+ *
109
+ * @example
110
+ * ```ts twoslash
111
+ * import { Base32 } from 'ox'
112
+ *
113
+ * const value = Base32.toHex('qqsa0')
114
+ * ```
115
+ *
116
+ * @param value - The Base32 encoded string.
117
+ * @returns The decoded hex string.
118
+ */
119
+ export function toHex(value: string): Hex.Hex {
120
+ return Hex.fromBytes(toBytes(value))
121
+ }
122
+
123
+ export declare namespace toHex {
124
+ type ErrorType = toBytes.ErrorType | Errors.GlobalErrorType
125
+ }
126
+
127
+ /** Thrown when a Base32 string contains an invalid character. */
128
+ export class InvalidCharacterError extends Errors.BaseError {
129
+ override readonly name = 'Base32.InvalidCharacterError'
130
+
131
+ constructor({ character }: { character: string }) {
132
+ super(`Invalid bech32 base32 character: "${character}".`)
133
+ }
134
+ }
@@ -0,0 +1,169 @@
1
+ import * as Bytes from './Bytes.js'
2
+ import * as Errors from './Errors.js'
3
+ import * as Hex from './Hex.js'
4
+
5
+ /**
6
+ * Encodes an integer using Bitcoin's CompactSize variable-length encoding.
7
+ *
8
+ * | Range | Encoding | Bytes |
9
+ * |---|---|---|
10
+ * | 0–252 | Direct value | 1 |
11
+ * | 253–65,535 | `0xFD` + 2 bytes LE | 3 |
12
+ * | 65,536–4,294,967,295 | `0xFE` + 4 bytes LE | 5 |
13
+ * | \> 4,294,967,295 | `0xFF` + 8 bytes LE | 9 |
14
+ *
15
+ * @example
16
+ * ```ts twoslash
17
+ * import { CompactSize } from 'ox'
18
+ *
19
+ * const bytes = CompactSize.toBytes(252)
20
+ * // Uint8Array [252]
21
+ *
22
+ * const bytes2 = CompactSize.toBytes(253)
23
+ * // Uint8Array [253, 253, 0]
24
+ * ```
25
+ *
26
+ * @param value - The integer to encode.
27
+ * @returns The CompactSize-encoded bytes.
28
+ */
29
+ export function toBytes(value: bigint | number): Bytes.Bytes {
30
+ const n = BigInt(value)
31
+ if (n < 0n) throw new NegativeValueError({ value: n })
32
+ if (n <= 252n) return new Uint8Array([Number(n)])
33
+ if (n <= 0xffffn) {
34
+ const buf = new Uint8Array(3)
35
+ buf[0] = 0xfd
36
+ const view = new DataView(buf.buffer)
37
+ view.setUint16(1, Number(n), true)
38
+ return buf
39
+ }
40
+ if (n <= 0xffffffffn) {
41
+ const buf = new Uint8Array(5)
42
+ buf[0] = 0xfe
43
+ const view = new DataView(buf.buffer)
44
+ view.setUint32(1, Number(n), true)
45
+ return buf
46
+ }
47
+ const buf = new Uint8Array(9)
48
+ buf[0] = 0xff
49
+ const view = new DataView(buf.buffer)
50
+ view.setBigUint64(1, n, true)
51
+ return buf
52
+ }
53
+
54
+ export declare namespace toBytes {
55
+ type ErrorType = NegativeValueError | Errors.GlobalErrorType
56
+ }
57
+
58
+ /**
59
+ * Encodes an integer using Bitcoin's CompactSize variable-length encoding and returns it as {@link ox#Hex.Hex}.
60
+ *
61
+ * @example
62
+ * ```ts twoslash
63
+ * import { CompactSize } from 'ox'
64
+ *
65
+ * const hex = CompactSize.toHex(252)
66
+ * // '0xfc'
67
+ * ```
68
+ *
69
+ * @param value - The integer to encode.
70
+ * @returns The CompactSize-encoded hex string.
71
+ */
72
+ export function toHex(value: bigint | number): Hex.Hex {
73
+ return Hex.fromBytes(toBytes(value))
74
+ }
75
+
76
+ export declare namespace toHex {
77
+ type ErrorType = toBytes.ErrorType | Errors.GlobalErrorType
78
+ }
79
+
80
+ /**
81
+ * Decodes a CompactSize-encoded value from {@link ox#Bytes.Bytes}.
82
+ *
83
+ * @example
84
+ * ```ts twoslash
85
+ * import { CompactSize } from 'ox'
86
+ *
87
+ * const result = CompactSize.fromBytes(new Uint8Array([0xfd, 0x00, 0x01]))
88
+ * // { value: 256, size: 3 }
89
+ * ```
90
+ *
91
+ * @param data - The bytes to decode from.
92
+ * @returns The decoded value and number of bytes consumed.
93
+ */
94
+ export function fromBytes(data: Bytes.Bytes): fromBytes.ReturnType {
95
+ if (data.length === 0)
96
+ throw new InsufficientBytesError({ expected: 1, actual: 0 })
97
+ const first = data[0]!
98
+ if (first < 0xfd) return { value: BigInt(first), size: 1 }
99
+ const view = new DataView(data.buffer, data.byteOffset)
100
+ if (first === 0xfd) {
101
+ if (data.length < 3)
102
+ throw new InsufficientBytesError({ expected: 3, actual: data.length })
103
+ return { value: BigInt(view.getUint16(1, true)), size: 3 }
104
+ }
105
+ if (first === 0xfe) {
106
+ if (data.length < 5)
107
+ throw new InsufficientBytesError({ expected: 5, actual: data.length })
108
+ return { value: BigInt(view.getUint32(1, true)), size: 5 }
109
+ }
110
+ if (data.length < 9)
111
+ throw new InsufficientBytesError({ expected: 9, actual: data.length })
112
+ return {
113
+ value: view.getBigUint64(1, true),
114
+ size: 9,
115
+ }
116
+ }
117
+
118
+ export declare namespace fromBytes {
119
+ type ReturnType = {
120
+ /** The decoded integer value. */
121
+ value: bigint
122
+ /** The number of bytes consumed. */
123
+ size: number
124
+ }
125
+
126
+ type ErrorType = InsufficientBytesError | Errors.GlobalErrorType
127
+ }
128
+
129
+ /**
130
+ * Decodes a CompactSize-encoded value from {@link ox#Hex.Hex}.
131
+ *
132
+ * @example
133
+ * ```ts twoslash
134
+ * import { CompactSize } from 'ox'
135
+ *
136
+ * const result = CompactSize.fromHex('0xfd0001')
137
+ * // { value: 256, size: 3 }
138
+ * ```
139
+ *
140
+ * @param data - The hex string to decode from.
141
+ * @returns The decoded value and number of bytes consumed.
142
+ */
143
+ export function fromHex(data: Hex.Hex): fromBytes.ReturnType {
144
+ return fromBytes(Bytes.fromHex(data))
145
+ }
146
+
147
+ export declare namespace fromHex {
148
+ type ErrorType = fromBytes.ErrorType | Errors.GlobalErrorType
149
+ }
150
+
151
+ /** Thrown when a CompactSize value is negative. */
152
+ export class NegativeValueError extends Errors.BaseError {
153
+ override readonly name = 'CompactSize.NegativeValueError'
154
+
155
+ constructor({ value }: { value: bigint }) {
156
+ super(`CompactSize value must be non-negative, got ${value}.`)
157
+ }
158
+ }
159
+
160
+ /** Thrown when there are insufficient bytes to decode a CompactSize value. */
161
+ export class InsufficientBytesError extends Errors.BaseError {
162
+ override readonly name = 'CompactSize.InsufficientBytesError'
163
+
164
+ constructor({ expected, actual }: { expected: number; actual: number }) {
165
+ super(
166
+ `Insufficient bytes for CompactSize decoding. Expected at least ${expected}, got ${actual}.`,
167
+ )
168
+ }
169
+ }
package/index.ts CHANGED
@@ -838,6 +838,31 @@ export * as AesGcm from './core/AesGcm.js'
838
838
  */
839
839
  export * as Authorization from './core/Authorization.js'
840
840
 
841
+ /**
842
+ * Utility functions for working with Base32 values using the [BIP-173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) bech32 alphabet.
843
+ *
844
+ * @example
845
+ * ### Encoding to Base32
846
+ *
847
+ * ```ts twoslash
848
+ * import { Base32 } from 'ox'
849
+ *
850
+ * const value = Base32.fromHex('0x00ff00')
851
+ * ```
852
+ *
853
+ * @example
854
+ * ### Decoding Base32
855
+ *
856
+ * ```ts twoslash
857
+ * import { Base32 } from 'ox'
858
+ *
859
+ * const value = Base32.toBytes('qrlsq')
860
+ * ```
861
+ *
862
+ * @category Data
863
+ */
864
+ export * as Base32 from './core/Base32.js'
865
+
841
866
  /**
842
867
  * Utility functions for working with [Base58](https://digitalbazaar.github.io/base58-spec/) values.
843
868
  *
@@ -1330,6 +1355,32 @@ export * as Caches from './core/Caches.js'
1330
1355
  * @category Data
1331
1356
  */
1332
1357
  export * as Cbor from './core/Cbor.js'
1358
+
1359
+ /**
1360
+ * Utility functions for [Bitcoin's CompactSize](https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer) variable-length integer encoding.
1361
+ *
1362
+ * @example
1363
+ * ### Encoding
1364
+ *
1365
+ * ```ts twoslash
1366
+ * import { CompactSize } from 'ox'
1367
+ *
1368
+ * const bytes = CompactSize.toBytes(65535)
1369
+ * ```
1370
+ *
1371
+ * @example
1372
+ * ### Decoding
1373
+ *
1374
+ * ```ts twoslash
1375
+ * import { CompactSize } from 'ox'
1376
+ *
1377
+ * const { value, size } = CompactSize.fromBytes(new Uint8Array([0xfd, 0xff, 0xff]))
1378
+ * ```
1379
+ *
1380
+ * @category Data
1381
+ */
1382
+ export * as CompactSize from './core/CompactSize.js'
1383
+
1333
1384
  /**
1334
1385
  * Utility functions for computing Contract Addresses.
1335
1386
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ox",
3
3
  "description": "Ethereum Standard Library",
4
- "version": "0.13.1",
4
+ "version": "0.13.2",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -113,6 +113,11 @@
113
113
  "import": "./_esm/core/Authorization.js",
114
114
  "default": "./_cjs/core/Authorization.js"
115
115
  },
116
+ "./Base32": {
117
+ "types": "./_types/core/Base32.d.ts",
118
+ "import": "./_esm/core/Base32.js",
119
+ "default": "./_cjs/core/Base32.js"
120
+ },
116
121
  "./Base58": {
117
122
  "types": "./_types/core/Base58.d.ts",
118
123
  "import": "./_esm/core/Base58.js",
@@ -173,6 +178,11 @@
173
178
  "import": "./_esm/core/Cbor.js",
174
179
  "default": "./_cjs/core/Cbor.js"
175
180
  },
181
+ "./CompactSize": {
182
+ "types": "./_types/core/CompactSize.d.ts",
183
+ "import": "./_esm/core/CompactSize.js",
184
+ "default": "./_cjs/core/CompactSize.js"
185
+ },
176
186
  "./ContractAddress": {
177
187
  "types": "./_types/core/ContractAddress.d.ts",
178
188
  "import": "./_esm/core/ContractAddress.js",
@@ -504,6 +514,11 @@
504
514
  "import": "./_esm/tempo/SignatureEnvelope.js",
505
515
  "default": "./_cjs/tempo/SignatureEnvelope.js"
506
516
  },
517
+ "./tempo/TempoAddress": {
518
+ "types": "./_types/tempo/TempoAddress.d.ts",
519
+ "import": "./_esm/tempo/TempoAddress.js",
520
+ "default": "./_cjs/tempo/TempoAddress.js"
521
+ },
507
522
  "./tempo/Tick": {
508
523
  "types": "./_types/tempo/Tick.d.ts",
509
524
  "import": "./_esm/tempo/Tick.js",
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../../_types/tempo/TempoAddress.d.ts",
4
+ "main": "../../_cjs/tempo/TempoAddress.js",
5
+ "module": "../../_esm/tempo/TempoAddress.js"
6
+ }