ecash-lib 1.1.0 → 1.2.1-rc

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 (40) hide show
  1. package/.nyc_output/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +1 -0
  2. package/.nyc_output/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +1 -0
  3. package/.nyc_output/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +1 -0
  4. package/.nyc_output/f965566b-9422-4874-b45e-9eefda9c769c.json +1 -0
  5. package/.nyc_output/processinfo/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +1 -0
  6. package/.nyc_output/processinfo/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +1 -0
  7. package/.nyc_output/processinfo/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +1 -0
  8. package/.nyc_output/processinfo/f965566b-9422-4874-b45e-9eefda9c769c.json +1 -0
  9. package/.nyc_output/processinfo/index.json +1 -0
  10. package/README.md +2 -0
  11. package/dist/address/address.d.ts +131 -0
  12. package/dist/address/address.d.ts.map +1 -0
  13. package/dist/address/address.js +253 -0
  14. package/dist/address/address.js.map +1 -0
  15. package/dist/address/cashaddr.d.ts +78 -0
  16. package/dist/address/cashaddr.d.ts.map +1 -0
  17. package/dist/address/cashaddr.js +543 -0
  18. package/dist/address/cashaddr.js.map +1 -0
  19. package/dist/address/legacyaddr.d.ts +31 -0
  20. package/dist/address/legacyaddr.d.ts.map +1 -0
  21. package/dist/address/legacyaddr.js +101 -0
  22. package/dist/address/legacyaddr.js.map +1 -0
  23. package/dist/cashaddr/cashaddr.d.ts +23 -0
  24. package/dist/cashaddr/cashaddr.d.ts.map +1 -0
  25. package/dist/cashaddr/cashaddr.js +325 -0
  26. package/dist/cashaddr/cashaddr.js.map +1 -0
  27. package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  28. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/script.d.ts.map +1 -1
  34. package/dist/script.js +15 -51
  35. package/dist/script.js.map +1 -1
  36. package/dist/txBuilder.d.ts.map +1 -1
  37. package/dist/txBuilder.js +4 -1
  38. package/dist/txBuilder.js.map +1 -1
  39. package/package.json +5 -3
  40. package/test.log +82 -0
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ // Copyright (c) 2024 The Bitcoin developers
3
+ // Distributed under the MIT software license, see the accompanying
4
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.encodeLegacyAddress = exports.decodeLegacyAddress = exports.LEGACY_VERSION_BYTES = exports.decodeBase58Check = exports.encodeBase58Check = void 0;
7
+ const hash_1 = require("../hash");
8
+ const b58_ts_1 = require("b58-ts");
9
+ const hex_1 = require("../io/hex");
10
+ /**
11
+ * Base 58 Check
12
+ */
13
+ const encodeBase58Check = (data) => {
14
+ const checksum = (0, hash_1.sha256d)(data);
15
+ const dataWithChecksum = new Uint8Array(data.length + 4);
16
+ dataWithChecksum.set(data, 0);
17
+ dataWithChecksum.set(checksum.subarray(0, 4), data.length);
18
+ return (0, b58_ts_1.encodeBase58)(dataWithChecksum);
19
+ };
20
+ exports.encodeBase58Check = encodeBase58Check;
21
+ const decodeBase58Check = (str) => {
22
+ const dataWithChecksum = (0, b58_ts_1.decodeBase58)(str);
23
+ const payload = dataWithChecksum.slice(0, -4);
24
+ const checksum = dataWithChecksum.slice(-4);
25
+ const expectedChecksum = (0, hash_1.sha256d)(payload);
26
+ // Ensure the two checksums are equal
27
+ if ((checksum[0] ^ expectedChecksum[0]) |
28
+ (checksum[1] ^ expectedChecksum[1]) |
29
+ (checksum[2] ^ expectedChecksum[2]) |
30
+ (checksum[3] ^ expectedChecksum[3])) {
31
+ throw new Error('Invalid checksum');
32
+ }
33
+ return payload;
34
+ };
35
+ exports.decodeBase58Check = decodeBase58Check;
36
+ // Length of a valid base58check encoding payload: 1 byte for
37
+ // the version byte plus 20 bytes for a RIPEMD - 160 hash.
38
+ const BASE_58_CHECK_PAYLOAD_LENGTH = 21;
39
+ exports.LEGACY_VERSION_BYTES = {
40
+ legacy: {
41
+ mainnet: { p2pkh: 0, p2sh: 5 },
42
+ testnet: { p2pkh: 111, p2sh: 196 },
43
+ },
44
+ };
45
+ // Modeled from https://github.com/ealmansi/bchaddrjs/blob/master/src/bchaddr.js#L193
46
+ const decodeLegacyAddress = (address) => {
47
+ try {
48
+ const payload = (0, exports.decodeBase58Check)(address);
49
+ if (payload.length !== BASE_58_CHECK_PAYLOAD_LENGTH) {
50
+ throw new Error(`Invalid legacy address: payload length must be ${BASE_58_CHECK_PAYLOAD_LENGTH}`);
51
+ }
52
+ const versionByte = payload[0];
53
+ const hash = (0, hex_1.toHex)(new Uint8Array(payload.slice(1)));
54
+ switch (versionByte) {
55
+ case exports.LEGACY_VERSION_BYTES.legacy.mainnet.p2pkh:
56
+ return {
57
+ hash,
58
+ type: 'p2pkh',
59
+ network: 'mainnet',
60
+ };
61
+ case exports.LEGACY_VERSION_BYTES.legacy.mainnet.p2sh:
62
+ return {
63
+ hash,
64
+ type: 'p2sh',
65
+ network: 'mainnet',
66
+ };
67
+ case exports.LEGACY_VERSION_BYTES.legacy.testnet.p2pkh:
68
+ return {
69
+ hash,
70
+ type: 'p2pkh',
71
+ network: 'testnet',
72
+ };
73
+ case exports.LEGACY_VERSION_BYTES.legacy.testnet.p2sh:
74
+ return {
75
+ hash,
76
+ type: 'p2sh',
77
+ network: 'testnet',
78
+ };
79
+ default: {
80
+ throw new Error(`Invalid legacy address: unrecognized version byte "${versionByte}"`);
81
+ }
82
+ }
83
+ }
84
+ catch {
85
+ throw new Error(`Invalid legacy address`);
86
+ }
87
+ };
88
+ exports.decodeLegacyAddress = decodeLegacyAddress;
89
+ /**
90
+ * Encode a legacy address given type and hash
91
+ * For now, this is a stub method that supports only BTC p2pkh and p2sh
92
+ */
93
+ const encodeLegacyAddress = (hash, type, network = 'mainnet') => {
94
+ const versionByte = exports.LEGACY_VERSION_BYTES.legacy[network][type];
95
+ const combined = new Uint8Array(1 + hash.length);
96
+ combined[0] = versionByte;
97
+ combined.set(hash, 1);
98
+ return (0, exports.encodeBase58Check)(combined);
99
+ };
100
+ exports.encodeLegacyAddress = encodeLegacyAddress;
101
+ //# sourceMappingURL=legacyaddr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyaddr.js","sourceRoot":"","sources":["../../src/address/legacyaddr.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AAEtE,kCAAkC;AAClC,mCAAoD;AAEpD,mCAAkC;AAElC;;GAEG;AAEI,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAU,EAAE;IAC1D,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAC;AAC1C,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAc,EAAE;IACzD,MAAM,gBAAgB,GAAG,IAAA,qBAAY,EAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;IAE1C,qCAAqC;IACrC,IACI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACrC,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAjBW,QAAA,iBAAiB,qBAiB5B;AAQF,6DAA6D;AAC7D,0DAA0D;AAC1D,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAY3B,QAAA,oBAAoB,GAAyB;IACtD,MAAM,EAAE;QACJ,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;QAC9B,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;KACrC;CACJ,CAAC;AAEF,qFAAqF;AAC9E,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAwB,EAAE;IACzE,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,4BAA4B,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACX,kDAAkD,4BAA4B,EAAE,CACnF,CAAC;QACN,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAA,WAAK,EAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,QAAQ,WAAW,EAAE,CAAC;YAClB,KAAK,4BAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;gBAC1C,OAAO;oBACH,IAAI;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,SAAS;iBACrB,CAAC;YACN,KAAK,4BAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;gBACzC,OAAO;oBACH,IAAI;oBACJ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,SAAS;iBACrB,CAAC;YACN,KAAK,4BAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;gBAC1C,OAAO;oBACH,IAAI;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,SAAS;iBACrB,CAAC;YACN,KAAK,4BAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;gBACzC,OAAO;oBACH,IAAI;oBACJ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,SAAS;iBACrB,CAAC;YACN,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,IAAI,KAAK,CACX,sDAAsD,WAAW,GAAG,CACvE,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC,CAAC;AA5CW,QAAA,mBAAmB,uBA4C9B;AAEF;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAC/B,IAAgB,EAChB,IAAsB,EACtB,UAAuB,SAAS,EAClC,EAAE;IACA,MAAM,WAAW,GAAG,4BAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACtB,OAAO,IAAA,yBAAiB,EAAC,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC;AAVW,QAAA,mBAAmB,uBAU9B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Handle cashaddr methods
3
+ * We are improving and extending the exiting functionality of the ecashaddrjs lib
4
+ * We will deprecate that lib after migrating all apps to ecash-lib
5
+ */
6
+ type AddressType = 'p2pkh' | 'p2sh';
7
+ /**
8
+ * Base 32 encoding / decoding
9
+ */
10
+ export declare const BASE32_CHARSET: string;
11
+ /**
12
+ * Encode a hash as a p2pkh or p2sh cashaddr
13
+ * defaults to p2pkh "ecash"-prefixed cashaddr
14
+ */
15
+ export declare const toCashAddress: (hash: string | Uint8Array, prefix?: string, type?: AddressType) => string;
16
+ interface DecodedAddress {
17
+ prefix: string;
18
+ type: AddressType;
19
+ hash: string;
20
+ }
21
+ export declare const decodeCashAddress: (address: string) => DecodedAddress;
22
+ export {};
23
+ //# sourceMappingURL=cashaddr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cashaddr.d.ts","sourceRoot":"","sources":["../../src/cashaddr/cashaddr.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAWH,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAmNpC;;GAEG;AAGH,eAAO,MAAM,cAAc,EAAE,MAA2C,CAAC;AA0EzE;;;GAGG;AACH,eAAO,MAAM,aAAa,SAChB,MAAM,GAAG,UAAU,0BAEnB,WAAW,WA8BpB,CAAC;AAEF,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AACD,eAAO,MAAM,iBAAiB,YAAa,MAAM,KAAG,cAsCnD,CAAC"}
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ // Copyright (c) 2024 The Bitcoin developers
3
+ // Distributed under the MIT software license, see the accompanying
4
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.decodeCashAddress = exports.toCashAddress = exports.BASE32_CHARSET = void 0;
7
+ const hex_1 = require("../io/hex");
8
+ const VALID_ADDRESS_TYPES = ['p2pkh', 'p2sh'];
9
+ /**
10
+ * Private methods
11
+ * Helper functions that are used by exported functions
12
+ * We do not export cashaddr as a class because users should only bundle the functions they use
13
+ */
14
+ const prefixToUint5Array = (prefix) => {
15
+ const result = new Uint8Array(prefix.length);
16
+ for (let i = 0; i < prefix.length; ++i) {
17
+ result[i] = prefix[i].charCodeAt(0) & 31;
18
+ }
19
+ return result;
20
+ };
21
+ /**
22
+ * Converts an array of 5-bit integers back into an array of 8-bit integers,
23
+ * removing extra zeroes left from padding if necessary.
24
+ */
25
+ function fromUint5Array(data) {
26
+ return convertBits(data, 5, 8, true);
27
+ }
28
+ const concat = (a, b) => {
29
+ const ab = new Uint8Array(a.length + b.length);
30
+ ab.set(a);
31
+ ab.set(b, a.length);
32
+ return ab;
33
+ };
34
+ const getTypeBits = (type) => {
35
+ switch (type) {
36
+ case 'p2pkh':
37
+ return 0;
38
+ case 'p2sh':
39
+ return 8;
40
+ default:
41
+ throw new Error('Invalid type: ' + type + '.');
42
+ }
43
+ };
44
+ const getHashSizeBits = (hash) => {
45
+ switch (hash.length * 8) {
46
+ case 160:
47
+ return 0;
48
+ case 192:
49
+ return 1;
50
+ case 224:
51
+ return 2;
52
+ case 256:
53
+ return 3;
54
+ case 320:
55
+ return 4;
56
+ case 384:
57
+ return 5;
58
+ case 448:
59
+ return 6;
60
+ case 512:
61
+ return 7;
62
+ default:
63
+ throw new Error('Invalid hash size: ' + hash.length + '.');
64
+ }
65
+ };
66
+ /**
67
+ * Converts an array of integers made up of 'from' bits into an
68
+ * array of integers made up of 'to' bits. The output array is
69
+ * zero-padded if necessary, unless strict mode is true.
70
+ * Original by Pieter Wuille: https://github.com/sipa/bech32.
71
+ *
72
+ * @param data Array of integers made up of 'from' bits.
73
+ * @param from Length in bits of elements in the input array.
74
+ * @param to Length in bits of elements in the output array.
75
+ * @param strictMode Require the conversion to be completed without padding.
76
+ */
77
+ const convertBits = (data, from, to, strictMode = false) => {
78
+ const length = strictMode
79
+ ? Math.floor((data.length * from) / to)
80
+ : Math.ceil((data.length * from) / to);
81
+ const mask = (1 << to) - 1;
82
+ const result = new Uint8Array(length);
83
+ let index = 0;
84
+ let accumulator = 0;
85
+ let bits = 0;
86
+ for (let i = 0; i < data.length; ++i) {
87
+ const value = data[i];
88
+ if (!(0 <= value && value >> from === 0)) {
89
+ throw new Error(`Invalid value: ${value}`);
90
+ }
91
+ accumulator = (accumulator << from) | value;
92
+ bits += from;
93
+ while (bits >= to) {
94
+ bits -= to;
95
+ result[index] = (accumulator >> bits) & mask;
96
+ ++index;
97
+ }
98
+ }
99
+ if (!strictMode) {
100
+ if (bits > 0) {
101
+ result[index] = (accumulator << (to - bits)) & mask;
102
+ ++index;
103
+ }
104
+ }
105
+ else {
106
+ if (!(bits < from && ((accumulator << (to - bits)) & mask) === 0)) {
107
+ throw new Error('Input cannot be converted to ' +
108
+ to +
109
+ ' bits without padding, but strict mode was used.');
110
+ }
111
+ }
112
+ return result;
113
+ };
114
+ const toUint5Array = (data) => {
115
+ return convertBits(data, 8, 5);
116
+ };
117
+ const checksumToUint5Array = (checksum) => {
118
+ const result = new Uint8Array(8);
119
+ for (let i = 0; i < 8; ++i) {
120
+ // Extract the least significant 5 bits (31 is 11111 in binary)
121
+ result[7 - i] = Number(checksum & 31n);
122
+ // Shift right by 5 bits
123
+ checksum >>= 5n;
124
+ }
125
+ return result;
126
+ };
127
+ const polymod = (data) => {
128
+ const GENERATOR = [
129
+ BigInt('0x98f2bc8e61'),
130
+ BigInt('0x79b76d99e2'),
131
+ BigInt('0xf33e5fb3c4'),
132
+ BigInt('0xae2eabe2a8'),
133
+ BigInt('0x1e4f43e470'),
134
+ ];
135
+ let checksum = 1n; // BigInt for 1
136
+ for (let i = 0; i < data.length; i += 1) {
137
+ const value = BigInt(data[i]);
138
+ const topBits = checksum >> 35n;
139
+ checksum = ((checksum & 0x07ffffffffn) << 5n) ^ value;
140
+ for (let j = 0; j < GENERATOR.length; ++j) {
141
+ if ((topBits >> BigInt(j)) & 1n) {
142
+ checksum ^= GENERATOR[j];
143
+ }
144
+ }
145
+ }
146
+ return checksum ^ 1n;
147
+ };
148
+ // Validation helper to ensure we do not accept addresses with mixed case
149
+ const hasSingleCase = (string) => {
150
+ return string === string.toLowerCase() || string === string.toUpperCase();
151
+ };
152
+ const validChecksum = (prefix, payload) => {
153
+ const prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));
154
+ const checksumData = concat(prefixData, payload);
155
+ return polymod(checksumData) === 0n;
156
+ };
157
+ // Retrieves the the length in bits of the encoded hash from its bit
158
+ // representation within the version byte.
159
+ const getHashSize = (versionByte) => {
160
+ switch (versionByte & 7) {
161
+ case 0:
162
+ return 160;
163
+ case 1:
164
+ return 192;
165
+ case 2:
166
+ return 224;
167
+ case 3:
168
+ return 256;
169
+ case 4:
170
+ return 320;
171
+ case 5:
172
+ return 384;
173
+ case 6:
174
+ return 448;
175
+ case 7:
176
+ return 512;
177
+ default:
178
+ throw new Error('Invalid input');
179
+ }
180
+ };
181
+ // Retrieves the address type from its bit representation within the
182
+ // version byte.
183
+ const getType = (versionByte) => {
184
+ switch (versionByte & 120) {
185
+ case 0:
186
+ return 'p2pkh';
187
+ case 8:
188
+ return 'p2sh';
189
+ default:
190
+ throw new Error('Invalid address type in version byte: ' + versionByte + '.');
191
+ }
192
+ };
193
+ /**
194
+ * Base 32 encoding / decoding
195
+ */
196
+ // Charset containing the 32 symbols used in the base32 encoding.
197
+ exports.BASE32_CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';
198
+ // Inverted index mapping each symbol into its index within the charset.
199
+ const BASE32_CHARSET_INVERSE_INDEX = {
200
+ q: 0,
201
+ p: 1,
202
+ z: 2,
203
+ r: 3,
204
+ y: 4,
205
+ 9: 5,
206
+ x: 6,
207
+ 8: 7,
208
+ g: 8,
209
+ f: 9,
210
+ 2: 10,
211
+ t: 11,
212
+ v: 12,
213
+ d: 13,
214
+ w: 14,
215
+ 0: 15,
216
+ s: 16,
217
+ 3: 17,
218
+ j: 18,
219
+ n: 19,
220
+ 5: 20,
221
+ 4: 21,
222
+ k: 22,
223
+ h: 23,
224
+ c: 24,
225
+ e: 25,
226
+ 6: 26,
227
+ m: 27,
228
+ u: 28,
229
+ a: 29,
230
+ 7: 30,
231
+ l: 31,
232
+ };
233
+ /**
234
+ * Encodes the given array of 5-bit integers as a base32-encoded string.
235
+ * @param data Array of integers between 0 and 31 inclusive.
236
+ */
237
+ const encodeBase32 = (data) => {
238
+ if (!(data instanceof Uint8Array)) {
239
+ throw new Error(`Invalid data: ${data}. Data must be a Uint8Array`);
240
+ }
241
+ let base32 = '';
242
+ for (let i = 0; i < data.length; ++i) {
243
+ const value = data[i];
244
+ if (!(0 <= value && value < 32)) {
245
+ throw new Error(`Invalid value: ${value}.`);
246
+ }
247
+ base32 += exports.BASE32_CHARSET[value];
248
+ }
249
+ return base32;
250
+ };
251
+ // Decodes the given base32-encoded string into an array of 5-bit integers.
252
+ const decodeBase32 = (string) => {
253
+ if (typeof string !== 'string') {
254
+ throw new Error(`Invalid base32-encoded string: ${string}.`);
255
+ }
256
+ const data = new Uint8Array(string.length);
257
+ for (let i = 0; i < string.length; ++i) {
258
+ const value = string[i];
259
+ if (!(value in BASE32_CHARSET_INVERSE_INDEX)) {
260
+ throw new Error(`Invalid value: ${value}.`);
261
+ }
262
+ data[i] = BASE32_CHARSET_INVERSE_INDEX[value];
263
+ }
264
+ return data;
265
+ };
266
+ /**
267
+ * Encode a hash as a p2pkh or p2sh cashaddr
268
+ * defaults to p2pkh "ecash"-prefixed cashaddr
269
+ */
270
+ const toCashAddress = (hash, prefix = 'ecash', type = 'p2pkh') => {
271
+ // Validate hash type
272
+ if (typeof hash === 'string') {
273
+ hash = (0, hex_1.fromHex)(hash);
274
+ }
275
+ if (!(hash instanceof Uint8Array)) {
276
+ throw new Error('hash must be a string or Uint8Array');
277
+ }
278
+ // Validate address type
279
+ if (!VALID_ADDRESS_TYPES.includes(type)) {
280
+ throw new Error('type must be "p2pkh" or "p2sh"');
281
+ }
282
+ const prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));
283
+ // Get version byte and validate hash size
284
+ const versionByte = getTypeBits(type) + getHashSizeBits(hash);
285
+ const payloadData = toUint5Array(concat(new Uint8Array([versionByte]), hash));
286
+ const checksumData = concat(concat(prefixData, payloadData), new Uint8Array(8));
287
+ const payload = concat(payloadData, checksumToUint5Array(polymod(checksumData)));
288
+ return prefix + ':' + encodeBase32(payload);
289
+ };
290
+ exports.toCashAddress = toCashAddress;
291
+ const decodeCashAddress = (address) => {
292
+ if (typeof address !== 'string') {
293
+ throw new Error(`Address must be a string`);
294
+ }
295
+ if (!hasSingleCase(address)) {
296
+ throw new Error(`Invalid address: ${address}: mixed-case input is not supported`);
297
+ }
298
+ const pieces = address.toLowerCase().split(':');
299
+ // if there is no prefix, it might still be valid
300
+ let prefix, payload;
301
+ if (pieces.length !== 2) {
302
+ throw new Error(`Invalid address: ${address}: Address can contain only one prefix`);
303
+ }
304
+ prefix = pieces[0];
305
+ payload = decodeBase32(pieces[1]);
306
+ // Validate prefix (we validate any prefix)
307
+ if (!validChecksum(prefix, payload)) {
308
+ throw new Error(`Invalid checksum: ${address}`);
309
+ }
310
+ // We assert that payload will be defined here, as we validate above
311
+ const payloadData = fromUint5Array(payload.subarray(0, -8));
312
+ const versionByte = payloadData[0];
313
+ const hash = payloadData.subarray(1);
314
+ if (getHashSize(versionByte) !== hash.length * 8) {
315
+ throw new Error(`Invalid hash size: ${address}`);
316
+ }
317
+ const type = getType(versionByte);
318
+ return {
319
+ prefix: prefix,
320
+ type: type,
321
+ hash: (0, hex_1.toHex)(hash),
322
+ };
323
+ };
324
+ exports.decodeCashAddress = decodeCashAddress;
325
+ //# sourceMappingURL=cashaddr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cashaddr.js","sourceRoot":"","sources":["../../src/cashaddr/cashaddr.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './hash.js';
4
4
  export * from './op.js';
5
5
  export * from './opcode.js';
6
6
  export * from './script.js';
7
+ export * from './address/address';
7
8
  export * from './sigHashType.js';
8
9
  export * from './tx.js';
9
10
  export * from './txBuilder.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ __exportStar(require("./hash.js"), exports);
23
23
  __exportStar(require("./op.js"), exports);
24
24
  __exportStar(require("./opcode.js"), exports);
25
25
  __exportStar(require("./script.js"), exports);
26
+ __exportStar(require("./address/address"), exports);
26
27
  __exportStar(require("./sigHashType.js"), exports);
27
28
  __exportStar(require("./tx.js"), exports);
28
29
  __exportStar(require("./txBuilder.js"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;;;;;;;;;;;;;;AAEtE,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,mDAAiC;AACjC,0CAAwB;AACxB,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,uDAAqC;AACrC,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;;;;;;;;;;;;;;AAEtE,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,oDAAkC;AAClC,mDAAiC;AACjC,0CAAwB;AACxB,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,iDAA+B;AAC/B,sDAAoC;AACpC,uDAAqC;AACrC,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,OAAO,EAAE,EAAE,EAAgC,MAAM,SAAS,CAAC;AAS3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,gDAAgD;AAChD,qBAAa,MAAM;IACR,QAAQ,EAAE,UAAU,CAAC;IAE5B,2DAA2D;gBACxC,QAAQ,CAAC,EAAE,UAAU;IAIxC;;;QAGI;IACG,aAAa,CAAC,MAAM,EAAE,MAAM;WAKrB,YAAY,CAAC,KAAK,EAAE,KAAK;IAKvC,+CAA+C;WACjC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,MAAM;WAc1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkClD,0CAA0C;IACnC,GAAG,IAAI,YAAY;IAI1B,wCAAwC;IACjC,IAAI,IAAI,MAAM;IAIrB;;;;;;;;;;;;;;;;;;OAkBG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAe9C;;;QAGI;IACG,MAAM,IAAI,OAAO;IAWxB,oDAAoD;WACtC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IASlD,yDAAyD;WAC3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAa5C,oDAAoD;WACtC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;CAGpE;AAED,yCAAyC;AACzC,qBAAa,YAAY;IACrB,KAAK,EAAE,KAAK,CAAC;gBAEM,KAAK,EAAE,KAAK;IAI/B;;;OAGG;IACI,IAAI,IAAI,EAAE,GAAG,SAAS;CAMhC"}
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,OAAO,EAAE,EAAE,EAAgC,MAAM,SAAS,CAAC;AAS3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,gDAAgD;AAChD,qBAAa,MAAM;IACR,QAAQ,EAAE,UAAU,CAAC;IAE5B,2DAA2D;gBACxC,QAAQ,CAAC,EAAE,UAAU;IAIxC;;;QAGI;IACG,aAAa,CAAC,MAAM,EAAE,MAAM;WAKrB,YAAY,CAAC,KAAK,EAAE,KAAK;IAKvC,+CAA+C;WACjC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,MAAM;WAc1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqBlD,0CAA0C;IACnC,GAAG,IAAI,YAAY;IAI1B,wCAAwC;IACjC,IAAI,IAAI,MAAM;IAIrB;;;;;;;;;;;;;;;;;;OAkBG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAe9C;;;QAGI;IACG,MAAM,IAAI,OAAO;IAWxB,oDAAoD;WACtC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IASlD,yDAAyD;WAC3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAa5C,oDAAoD;WACtC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;CAGpE;AAED,yCAAyC;AACzC,qBAAa,YAAY;IACrB,KAAK,EAAE,KAAK,CAAC;gBAEM,KAAK,EAAE,KAAK;IAI/B;;;OAGG;IACI,IAAI,IAAI,EAAE,GAAG,SAAS;CAMhC"}
package/dist/script.js CHANGED
@@ -2,38 +2,16 @@
2
2
  // Copyright (c) 2024 The Bitcoin developers
3
3
  // Distributed under the MIT software license, see the accompanying
4
4
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.ScriptOpIter = exports.Script = void 0;
30
7
  const varsize_js_1 = require("./io/varsize.js");
31
8
  const writerlength_js_1 = require("./io/writerlength.js");
32
9
  const writerbytes_js_1 = require("./io/writerbytes.js");
10
+ const hex_js_1 = require("./io/hex.js");
33
11
  const op_js_1 = require("./op.js");
34
12
  const opcode_js_1 = require("./opcode.js");
35
13
  const bytes_js_1 = require("./io/bytes.js");
36
- const cashaddr = __importStar(require("ecashaddrjs"));
14
+ const address_1 = require("./address/address");
37
15
  /** A Bitcoin Script locking/unlocking a UTXO */
38
16
  class Script {
39
17
  /** Create a new Script with the given bytecode or empty */
@@ -67,35 +45,21 @@ class Script {
67
45
  return new Script(bytecodeWriter.data);
68
46
  }
69
47
  static fromAddress(address) {
70
- // Note that hash is always returned as a string when decode is called with 'true'
71
- let decodedAddress;
72
- try {
73
- decodedAddress = cashaddr.decode(address, false);
74
- }
75
- catch (err) {
76
- throw new Error(`Error decoding address "${address}": ${err}`);
77
- }
78
- if (typeof decodedAddress.hash !== 'string') {
79
- // cashaddr.decode returns hash as string | uint8array
80
- // When called with chronikReady=false param, hash is always returned as a uint8array
81
- // typescript does not know this though so we need this gate to prevent an error
82
- switch (decodedAddress.type) {
83
- case 'P2PKH': {
84
- return Script.p2pkh(decodedAddress.hash);
85
- }
86
- case 'P2SH': {
87
- return Script.p2sh(decodedAddress.hash);
88
- }
89
- default: {
90
- // Note we should never get here, as ecashaddrjs decode method
91
- // only supports p2pkh and p2sh
92
- throw new Error(`Unsupported address type: ${decodedAddress.type}`);
93
- }
48
+ // make Address from address
49
+ const thisAddress = address_1.Address.fromCashAddress(address);
50
+ switch (thisAddress.type) {
51
+ case 'p2pkh': {
52
+ return Script.p2pkh((0, hex_js_1.fromHex)(thisAddress.hash));
53
+ }
54
+ case 'p2sh': {
55
+ return Script.p2sh((0, hex_js_1.fromHex)(thisAddress.hash));
56
+ }
57
+ default: {
58
+ // Note we should never get here, as Address constructor
59
+ // only supports p2pkh and p2sh
60
+ throw new Error(`Unsupported address type: ${thisAddress.type}`);
94
61
  }
95
62
  }
96
- // Note we should never get here, as ecashaddrjs decode method
97
- // always returns hash as a Uint8Array when called with (<addr>, false)
98
- throw new Error(`Error decoding address "${address}"`);
99
63
  }
100
64
  /** Iterate over the Ops of this Script */
101
65
  ops() {
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"txBuilder.d.ts","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAY,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAEH,EAAE,EACF,OAAO,EACP,QAAQ,EAGX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAc,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;AAErE,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhD,oDAAoD;AACpD,qBAAa,SAAS;IAClB,mCAAmC;IAC5B,OAAO,EAAE,MAAM,CAAC;IACvB,+CAA+C;IACxC,MAAM,EAAE,cAAc,EAAE,CAAC;IAChC;;;QAGI;IACG,OAAO,EAAE,eAAe,EAAE,CAAC;IAClC,oCAAoC;IAC7B,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAOD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA2BtB,wDAAwD;IACjD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE;CAiFnE;AAED;kBACkB;AAClB,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CACzB,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,WAAW,GAC1B,UAAU,CAKZ;AAED;;;IAGI;AACJ,wBAAgB,eAAe,CAC3B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,WAAW,GACzB,UAAU,CAMZ;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,OACnB,UAAU,MACV,UAAU,eACD,WAAW,WAEX,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,aAAa,OAAQ,UAAU,eAAe,WAAW,WACrD,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC"}
1
+ {"version":3,"file":"txBuilder.d.ts","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAY,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAEH,EAAE,EACF,OAAO,EACP,QAAQ,EAGX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAc,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;AAErE,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhD,oDAAoD;AACpD,qBAAa,SAAS;IAClB,mCAAmC;IAC5B,OAAO,EAAE,MAAM,CAAC;IACvB,+CAA+C;IACxC,MAAM,EAAE,cAAc,EAAE,CAAC;IAChC;;;QAGI;IACG,OAAO,EAAE,eAAe,EAAE,CAAC;IAClC,oCAAoC;IAC7B,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAOD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA8BtB,wDAAwD;IACjD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE;CAiFnE;AAED;kBACkB;AAClB,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CACzB,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,WAAW,GAC1B,UAAU,CAKZ;AAED;;;IAGI;AACJ,wBAAgB,eAAe,CAC3B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,WAAW,GACzB,UAAU,CAMZ;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,OACnB,UAAU,MACV,UAAU,eACD,WAAW,WAEX,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,aAAa,OAAQ,UAAU,eAAe,WAAW,WACrD,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC"}