@bsv/sdk 1.10.1 → 1.10.3

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 (71) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/identity/IdentityClient.js +124 -20
  3. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  4. package/dist/cjs/src/primitives/ReaderUint8Array.js +180 -0
  5. package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -0
  6. package/dist/cjs/src/primitives/WriterUint8Array.js +173 -0
  7. package/dist/cjs/src/primitives/WriterUint8Array.js.map +1 -0
  8. package/dist/cjs/src/primitives/utils.js +20 -2
  9. package/dist/cjs/src/primitives/utils.js.map +1 -1
  10. package/dist/cjs/src/transaction/Beef.js +85 -27
  11. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  12. package/dist/cjs/src/transaction/BeefTx.js +32 -14
  13. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  14. package/dist/cjs/src/transaction/MerklePath.js +25 -6
  15. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  16. package/dist/cjs/src/transaction/Transaction.js +77 -26
  17. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  18. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  19. package/dist/esm/src/identity/IdentityClient.js +124 -20
  20. package/dist/esm/src/identity/IdentityClient.js.map +1 -1
  21. package/dist/esm/src/primitives/ReaderUint8Array.js +176 -0
  22. package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -0
  23. package/dist/esm/src/primitives/WriterUint8Array.js +169 -0
  24. package/dist/esm/src/primitives/WriterUint8Array.js.map +1 -0
  25. package/dist/esm/src/primitives/utils.js +18 -1
  26. package/dist/esm/src/primitives/utils.js.map +1 -1
  27. package/dist/esm/src/transaction/Beef.js +86 -28
  28. package/dist/esm/src/transaction/Beef.js.map +1 -1
  29. package/dist/esm/src/transaction/BeefTx.js +33 -15
  30. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  31. package/dist/esm/src/transaction/MerklePath.js +26 -7
  32. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  33. package/dist/esm/src/transaction/Transaction.js +78 -27
  34. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  35. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  36. package/dist/types/src/identity/IdentityClient.d.ts +8 -0
  37. package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
  38. package/dist/types/src/primitives/ReaderUint8Array.d.ts +32 -0
  39. package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -0
  40. package/dist/types/src/primitives/WriterUint8Array.d.ts +54 -0
  41. package/dist/types/src/primitives/WriterUint8Array.d.ts.map +1 -0
  42. package/dist/types/src/primitives/utils.d.ts +15 -3
  43. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  44. package/dist/types/src/transaction/Beef.d.ts +24 -7
  45. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  46. package/dist/types/src/transaction/BeefTx.d.ts +13 -6
  47. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  48. package/dist/types/src/transaction/MerklePath.d.ts +16 -3
  49. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  50. package/dist/types/src/transaction/Transaction.d.ts +44 -7
  51. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  52. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  53. package/dist/umd/bundle.js +3 -3
  54. package/dist/umd/bundle.js.map +1 -1
  55. package/docs/reference/primitives.md +167 -29
  56. package/docs/reference/script.md +1 -1
  57. package/docs/reference/transaction.md +177 -34
  58. package/package.json +1 -1
  59. package/src/identity/IdentityClient.ts +153 -29
  60. package/src/identity/__tests/IdentityClient.test.ts +289 -1
  61. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +9 -0
  62. package/src/primitives/ReaderUint8Array.ts +196 -0
  63. package/src/primitives/WriterUint8Array.ts +195 -0
  64. package/src/primitives/__tests/ReaderUint8Array.test.ts +317 -0
  65. package/src/primitives/__tests/WriterUint8Array.test.ts +208 -0
  66. package/src/primitives/utils.ts +20 -2
  67. package/src/transaction/Beef.ts +103 -40
  68. package/src/transaction/BeefTx.ts +38 -19
  69. package/src/transaction/MerklePath.ts +30 -9
  70. package/src/transaction/Transaction.ts +91 -38
  71. package/src/transaction/__tests/Beef.test.ts +75 -0
@@ -2,10 +2,14 @@ import { DEFAULT_IDENTITY_CLIENT_OPTIONS, defaultIdentity, KNOWN_IDENTITY_TYPES
2
2
  import { WalletClient } from '../wallet/index.js';
3
3
  import { Transaction } from '../transaction/index.js';
4
4
  import Certificate from '../auth/certificates/Certificate.js';
5
+ import { VerifiableCertificate } from '../auth/certificates/VerifiableCertificate.js';
5
6
  import { PushDrop } from '../script/index.js';
6
7
  import { PrivateKey, Utils } from '../primitives/index.js';
8
+ import ProtoWallet from '../wallet/ProtoWallet.js';
7
9
  import { LookupResolver, SHIPBroadcaster, TopicBroadcaster, withDoubleSpendRetry } from '../overlay-tools/index.js';
8
10
  import { ContactsManager } from './ContactsManager.js';
11
+ // Default SocialCert certifier for fallback resolution when no wallet is available
12
+ const DEFAULT_CERTIFIER = '02cf6cdf466951d8dfc9e7c9367511d0007ed6fba35ed42d425cc412fd6cfd4a17';
9
13
  /**
10
14
  * IdentityClient lets you discover who others are, and let the world know who you are.
11
15
  */
@@ -18,7 +22,7 @@ export class IdentityClient {
18
22
  this.options = options;
19
23
  this.originator = originator;
20
24
  this.originator = originator;
21
- this.wallet = wallet ?? new WalletClient();
25
+ this.wallet = wallet ?? new WalletClient('auto', this.originator);
22
26
  this.contactsManager = new ContactsManager(this.wallet, this.originator);
23
27
  }
24
28
  /**
@@ -90,15 +94,31 @@ export class IdentityClient {
90
94
  async resolveByIdentityKey(args, overrideWithContacts = true) {
91
95
  if (overrideWithContacts) {
92
96
  // Override results with personal contacts if available
93
- const contacts = await this.contactsManager.getContacts(args.identityKey);
94
- if (contacts.length > 0) {
95
- return contacts;
97
+ try {
98
+ const contacts = await this.contactsManager.getContacts(args.identityKey);
99
+ if (contacts.length > 0) {
100
+ return contacts;
101
+ }
102
+ }
103
+ catch (e) {
104
+ // Contacts require wallet - continue to try discovery
96
105
  }
97
106
  }
98
- const { certificates } = await this.wallet.discoverByIdentityKey(args, this.originator);
99
- return certificates.map((cert) => {
100
- return IdentityClient.parseIdentity(cert);
101
- });
107
+ try {
108
+ const { certificates } = await this.wallet.discoverByIdentityKey(args, this.originator);
109
+ return certificates.map((cert) => {
110
+ return IdentityClient.parseIdentity(cert);
111
+ });
112
+ }
113
+ catch (error) {
114
+ // Fallback to LookupResolver if no wallet is available
115
+ const errorMessage = error instanceof Error ? error.message : '';
116
+ if (errorMessage.includes('No wallet available')) {
117
+ const certificates = await this.resolveViaLookup({ identityKey: args.identityKey });
118
+ return certificates.map((cert) => IdentityClient.parseIdentity(cert));
119
+ }
120
+ throw error;
121
+ }
102
122
  }
103
123
  /**
104
124
  * Resolves displayable identity certificates by specific identity attributes, issued by a trusted entity.
@@ -109,18 +129,102 @@ export class IdentityClient {
109
129
  */
110
130
  async resolveByAttributes(args, overrideWithContacts = true) {
111
131
  // Run both queries in parallel for better performance
112
- const [contacts, certificatesResult] = await Promise.all([
113
- overrideWithContacts
114
- ? this.contactsManager.getContacts()
115
- : Promise.resolve([]),
116
- this.wallet.discoverByAttributes(args, this.originator)
117
- ]);
118
- // Fast lookup by identityKey
119
- const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
120
- // Guard if certificates might be absent
121
- const certs = certificatesResult?.certificates ?? [];
122
- // Parse certificates and substitute with contacts where available
123
- return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
132
+ const contactsPromise = overrideWithContacts
133
+ ? this.contactsManager.getContacts().catch(() => [])
134
+ : Promise.resolve([]);
135
+ try {
136
+ const [contacts, certificatesResult] = await Promise.all([
137
+ contactsPromise,
138
+ this.wallet.discoverByAttributes(args, this.originator)
139
+ ]);
140
+ // Fast lookup by identityKey
141
+ const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
142
+ // Guard if certificates might be absent
143
+ const certs = certificatesResult?.certificates ?? [];
144
+ // Parse certificates and substitute with contacts where available
145
+ return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
146
+ }
147
+ catch (error) {
148
+ // Fallback to LookupResolver if no wallet is available
149
+ const errorMessage = error instanceof Error ? error.message : '';
150
+ if (errorMessage.includes('No wallet available')) {
151
+ const certificates = await this.resolveViaLookup({ attributes: args.attributes });
152
+ return certificates.map((cert) => IdentityClient.parseIdentity(cert));
153
+ }
154
+ throw error;
155
+ }
156
+ }
157
+ /**
158
+ * Fallback method to resolve identity certificates via LookupResolver when no wallet is available.
159
+ * Uses the ls_identity overlay with a default SocialCert certifier.
160
+ *
161
+ * @param query - Query parameters: either identityKey or attributes
162
+ * @returns {Promise<IdentityCertificate[]>} Array of identity certificates
163
+ */
164
+ async resolveViaLookup(query) {
165
+ const resolver = new LookupResolver({ networkPreset: 'mainnet' });
166
+ // Build the lookup query based on what was provided
167
+ const lookupQuery = {
168
+ certifiers: [DEFAULT_CERTIFIER]
169
+ };
170
+ if (query.identityKey !== undefined) {
171
+ lookupQuery.identityKey = query.identityKey;
172
+ }
173
+ else if (query.attributes !== undefined) {
174
+ // For attribute search, use the 'any' matcher for flexible matching
175
+ const attributeValues = Object.values(query.attributes);
176
+ if (attributeValues.length === 1) {
177
+ lookupQuery.attributes = { any: attributeValues[0] };
178
+ }
179
+ else {
180
+ lookupQuery.attributes = query.attributes;
181
+ }
182
+ }
183
+ const lookupResult = await resolver.query({
184
+ service: 'ls_identity',
185
+ query: lookupQuery
186
+ });
187
+ if (lookupResult.type !== 'output-list' || lookupResult.outputs.length === 0) {
188
+ return [];
189
+ }
190
+ const certificates = [];
191
+ const anyoneWallet = new ProtoWallet('anyone');
192
+ for (const output of lookupResult.outputs) {
193
+ try {
194
+ const tx = Transaction.fromBEEF(output.beef);
195
+ const decodedOutput = PushDrop.decode(tx.outputs[output.outputIndex].lockingScript);
196
+ const certData = JSON.parse(Utils.toUTF8(decodedOutput.fields[0]));
197
+ const verifiableCert = new VerifiableCertificate(certData.type, certData.serialNumber, certData.subject, certData.certifier, certData.revocationOutpoint, certData.fields, certData.keyring, certData.signature);
198
+ // Decrypt fields using 'anyone' wallet for publicly revealed certificates
199
+ const decryptedFields = await verifiableCert.decryptFields(anyoneWallet);
200
+ // Verify the certificate is valid
201
+ await verifiableCert.verify();
202
+ // Construct IdentityCertificate with default certifier info
203
+ const identityCert = {
204
+ type: certData.type,
205
+ serialNumber: certData.serialNumber,
206
+ subject: certData.subject,
207
+ certifier: certData.certifier,
208
+ revocationOutpoint: certData.revocationOutpoint,
209
+ fields: certData.fields,
210
+ signature: certData.signature,
211
+ certifierInfo: {
212
+ name: 'SocialCert',
213
+ iconUrl: 'https://socialcert.net/favicon.ico',
214
+ description: 'Social identity verification',
215
+ trust: 5
216
+ },
217
+ publiclyRevealedKeyring: certData.keyring,
218
+ decryptedFields
219
+ };
220
+ certificates.push(identityCert);
221
+ }
222
+ catch (e) {
223
+ // Skip invalid certificates and continue processing
224
+ continue;
225
+ }
226
+ }
227
+ return certificates;
124
228
  }
125
229
  /**
126
230
  * Remove public certificate revelation from overlay services by spending the identity token
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import BigNumber from './BigNumber.js';
2
+ import { Reader } from './utils.js';
3
+ /**
4
+ * Reader for serialized Uint8Array binary data.
5
+ */
6
+ export class ReaderUint8Array {
7
+ bin;
8
+ pos;
9
+ length;
10
+ static makeReader(bin, pos = 0) {
11
+ if (bin instanceof Uint8Array) {
12
+ return new ReaderUint8Array(bin, pos);
13
+ }
14
+ if (Array.isArray(bin)) {
15
+ return new Reader(bin, pos);
16
+ }
17
+ throw new Error('ReaderUint8Array.makeReader: bin must be Uint8Array or number[]');
18
+ }
19
+ constructor(bin = new Uint8Array(0), pos = 0) {
20
+ if (bin instanceof Uint8Array) {
21
+ this.bin = bin;
22
+ }
23
+ else if (Array.isArray(bin)) {
24
+ this.bin = new Uint8Array(bin);
25
+ }
26
+ else {
27
+ throw new Error('ReaderUint8Array constructor: bin must be Uint8Array or number[]');
28
+ }
29
+ this.pos = pos;
30
+ this.length = this.bin.length;
31
+ }
32
+ eof() {
33
+ return this.pos >= this.length;
34
+ }
35
+ read(len = this.length) {
36
+ const start = this.pos;
37
+ const end = this.pos + len;
38
+ this.pos = end;
39
+ return this.bin.slice(start, end);
40
+ }
41
+ readReverse(len = this.length) {
42
+ const buf2 = new Uint8Array(len);
43
+ for (let i = 0; i < len; i++) {
44
+ buf2[i] = this.bin[this.pos + len - 1 - i];
45
+ }
46
+ this.pos += len;
47
+ return buf2;
48
+ }
49
+ readUInt8() {
50
+ const val = this.bin[this.pos];
51
+ this.pos += 1;
52
+ return val;
53
+ }
54
+ readInt8() {
55
+ const val = this.bin[this.pos];
56
+ this.pos += 1;
57
+ // If the sign bit is set, convert to negative value
58
+ return (val & 0x80) !== 0 ? val - 0x100 : val;
59
+ }
60
+ readUInt16BE() {
61
+ const val = (this.bin[this.pos] << 8) | this.bin[this.pos + 1];
62
+ this.pos += 2;
63
+ return val;
64
+ }
65
+ readInt16BE() {
66
+ const val = this.readUInt16BE();
67
+ // If the sign bit is set, convert to negative value
68
+ return (val & 0x8000) !== 0 ? val - 0x10000 : val;
69
+ }
70
+ readUInt16LE() {
71
+ const val = this.bin[this.pos] | (this.bin[this.pos + 1] << 8);
72
+ this.pos += 2;
73
+ return val;
74
+ }
75
+ readInt16LE() {
76
+ const val = this.readUInt16LE();
77
+ // If the sign bit is set, convert to negative value
78
+ const x = (val & 0x8000) !== 0 ? val - 0x10000 : val;
79
+ return x;
80
+ }
81
+ readUInt32BE() {
82
+ const val = this.bin[this.pos] * 0x1000000 + // Shift the first byte by 24 bits
83
+ ((this.bin[this.pos + 1] << 16) | // Shift the second byte by 16 bits
84
+ (this.bin[this.pos + 2] << 8) | // Shift the third byte by 8 bits
85
+ this.bin[this.pos + 3]); // The fourth byte
86
+ this.pos += 4;
87
+ return val;
88
+ }
89
+ readInt32BE() {
90
+ const val = this.readUInt32BE();
91
+ // If the sign bit is set, convert to negative value
92
+ return (val & 0x80000000) !== 0 ? val - 0x100000000 : val;
93
+ }
94
+ readUInt32LE() {
95
+ const val = (this.bin[this.pos] |
96
+ (this.bin[this.pos + 1] << 8) |
97
+ (this.bin[this.pos + 2] << 16) |
98
+ (this.bin[this.pos + 3] << 24)) >>>
99
+ 0;
100
+ this.pos += 4;
101
+ return val;
102
+ }
103
+ readInt32LE() {
104
+ const val = this.readUInt32LE();
105
+ // Explicitly check if the sign bit is set and then convert to a negative value
106
+ return (val & 0x80000000) !== 0 ? val - 0x100000000 : val;
107
+ }
108
+ readUInt64BEBn() {
109
+ const bin = Array.from(this.bin.slice(this.pos, this.pos + 8));
110
+ const bn = new BigNumber(bin);
111
+ this.pos = this.pos + 8;
112
+ return bn;
113
+ }
114
+ readUInt64LEBn() {
115
+ const bin = Array.from(this.readReverse(8));
116
+ const bn = new BigNumber(bin);
117
+ return bn;
118
+ }
119
+ readInt64LEBn() {
120
+ const OverflowInt64 = new BigNumber(2).pow(new BigNumber(63));
121
+ const OverflowUint64 = new BigNumber(2).pow(new BigNumber(64));
122
+ const bin = Array.from(this.readReverse(8));
123
+ let bn = new BigNumber(bin);
124
+ if (bn.gte(OverflowInt64)) {
125
+ bn = bn.sub(OverflowUint64); // Adjust for negative numbers
126
+ }
127
+ return bn;
128
+ }
129
+ readVarIntNum(signed = true) {
130
+ const first = this.readUInt8();
131
+ let bn;
132
+ switch (first) {
133
+ case 0xfd:
134
+ return this.readUInt16LE();
135
+ case 0xfe:
136
+ return this.readUInt32LE();
137
+ case 0xff:
138
+ bn = signed ? this.readInt64LEBn() : this.readUInt64LEBn();
139
+ if (bn.lte(new BigNumber(2).pow(new BigNumber(53)))) {
140
+ return bn.toNumber();
141
+ }
142
+ else {
143
+ throw new Error('number too large to retain precision - use readVarIntBn');
144
+ }
145
+ default:
146
+ return first;
147
+ }
148
+ }
149
+ readVarInt() {
150
+ const first = this.bin[this.pos];
151
+ switch (first) {
152
+ case 0xfd:
153
+ return this.read(1 + 2);
154
+ case 0xfe:
155
+ return this.read(1 + 4);
156
+ case 0xff:
157
+ return this.read(1 + 8);
158
+ default:
159
+ return this.read(1);
160
+ }
161
+ }
162
+ readVarIntBn() {
163
+ const first = this.readUInt8();
164
+ switch (first) {
165
+ case 0xfd:
166
+ return new BigNumber(this.readUInt16LE());
167
+ case 0xfe:
168
+ return new BigNumber(this.readUInt32LE());
169
+ case 0xff:
170
+ return this.readUInt64LEBn();
171
+ default:
172
+ return new BigNumber(first);
173
+ }
174
+ }
175
+ }
176
+ //# sourceMappingURL=ReaderUint8Array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReaderUint8Array.js","sourceRoot":"","sources":["../../../../src/primitives/ReaderUint8Array.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import BigNumber from './BigNumber.js';
2
+ import { Writer } from './utils.js';
3
+ /**
4
+ * WriterUint8Array is a utility class for writing binary data into a dynamically
5
+ * growing Uint8Array buffer. It provides methods to write various integer types
6
+ * and variable-length integers, similar to the Writer class but optimized for
7
+ * Uint8Array usage.
8
+ */
9
+ export class WriterUint8Array {
10
+ buffer;
11
+ pos;
12
+ capacity;
13
+ constructor(bufs, initialCapacity = 256) {
14
+ if ((bufs != null) && bufs.length > 0) {
15
+ const totalLength = bufs.reduce((sum, buf) => sum + buf.length, 0);
16
+ initialCapacity = Math.max(initialCapacity, totalLength);
17
+ }
18
+ this.buffer = new Uint8Array(initialCapacity);
19
+ this.pos = 0;
20
+ this.capacity = initialCapacity;
21
+ if (bufs != null) {
22
+ for (const buf of bufs) {
23
+ this.write(buf);
24
+ }
25
+ }
26
+ }
27
+ /**
28
+ * Returns the current length of written data
29
+ */
30
+ getLength() {
31
+ return this.pos;
32
+ }
33
+ /**
34
+ * @return the written data as Uint8Array copy of the internal buffer
35
+ */
36
+ toUint8Array() {
37
+ return this.buffer.slice(0, this.pos);
38
+ }
39
+ /**
40
+ * Legacy compatibility method – returns number[] (Byte[])
41
+ */
42
+ toArray() {
43
+ return Array.from(this.toUint8Array());
44
+ }
45
+ /**
46
+ * @return the written data as Uint8Array. CAUTION: This is zero-copy subarray of the internal buffer).
47
+ */
48
+ toUint8ArrayZeroCopy() {
49
+ return this.buffer.subarray(0, this.pos);
50
+ }
51
+ ensureCapacity(needed) {
52
+ if (this.pos + needed > this.capacity) {
53
+ let newCapacity = this.capacity * 2;
54
+ while (this.pos + needed > newCapacity) {
55
+ newCapacity *= 2;
56
+ }
57
+ const newBuffer = new Uint8Array(newCapacity);
58
+ newBuffer.set(this.buffer);
59
+ this.buffer = newBuffer;
60
+ this.capacity = newCapacity;
61
+ }
62
+ }
63
+ write(bytes) {
64
+ const data = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
65
+ this.ensureCapacity(data.length);
66
+ this.buffer.set(data, this.pos);
67
+ this.pos += data.length;
68
+ return this;
69
+ }
70
+ writeReverse(buf) {
71
+ const data = buf instanceof Uint8Array ? buf : new Uint8Array(buf);
72
+ this.ensureCapacity(data.length);
73
+ for (let i = data.length - 1; i >= 0; i--) {
74
+ this.buffer[this.pos] = data[i];
75
+ this.pos += 1;
76
+ }
77
+ return this;
78
+ }
79
+ writeUInt8(value) {
80
+ this.ensureCapacity(1);
81
+ this.buffer[this.pos] = value & 0xff;
82
+ this.pos += 1;
83
+ return this;
84
+ }
85
+ writeInt8(value) {
86
+ this.writeUInt8(value);
87
+ return this;
88
+ }
89
+ writeUInt16LE(value) {
90
+ this.ensureCapacity(2);
91
+ this.buffer[this.pos] = value & 0xff;
92
+ this.buffer[this.pos + 1] = (value >> 8) & 0xff;
93
+ this.pos += 2;
94
+ return this;
95
+ }
96
+ writeUInt16BE(value) {
97
+ this.ensureCapacity(2);
98
+ this.buffer[this.pos] = (value >> 8) & 0xff;
99
+ this.buffer[this.pos + 1] = value & 0xff;
100
+ this.pos += 2;
101
+ return this;
102
+ }
103
+ writeInt16LE(value) {
104
+ this.writeUInt16LE(value & 0xffff);
105
+ return this;
106
+ }
107
+ writeInt16BE(value) {
108
+ this.writeUInt16BE(value & 0xffff);
109
+ return this;
110
+ }
111
+ writeUInt32LE(value) {
112
+ this.ensureCapacity(4);
113
+ this.buffer[this.pos] = value & 0xff;
114
+ this.buffer[this.pos + 1] = (value >> 8) & 0xff;
115
+ this.buffer[this.pos + 2] = (value >> 16) & 0xff;
116
+ this.buffer[this.pos + 3] = (value >> 24) & 0xff;
117
+ this.pos += 4;
118
+ return this;
119
+ }
120
+ writeUInt32BE(value) {
121
+ this.ensureCapacity(4);
122
+ this.buffer[this.pos] = (value >> 24) & 0xff;
123
+ this.buffer[this.pos + 1] = (value >> 16) & 0xff;
124
+ this.buffer[this.pos + 2] = (value >> 8) & 0xff;
125
+ this.buffer[this.pos + 3] = value & 0xff;
126
+ this.pos += 4;
127
+ return this;
128
+ }
129
+ writeInt32LE(value) {
130
+ this.writeUInt32LE(value >>> 0);
131
+ return this;
132
+ }
133
+ writeInt32BE(value) {
134
+ this.writeUInt32BE(value >>> 0);
135
+ return this;
136
+ }
137
+ writeUInt64BEBn(bn) {
138
+ const buf = bn.toArray('be', 8);
139
+ this.write(buf);
140
+ return this;
141
+ }
142
+ writeUInt64LEBn(bn) {
143
+ const buf = bn.toArray('be', 8);
144
+ this.writeReverse(buf);
145
+ return this;
146
+ }
147
+ writeUInt64LE(n) {
148
+ const buf = new BigNumber(n).toArray('be', 8);
149
+ this.writeReverse(buf);
150
+ return this;
151
+ }
152
+ writeVarIntNum(n) {
153
+ const buf = Writer.varIntNum(n);
154
+ this.write(buf);
155
+ return this;
156
+ }
157
+ writeVarIntBn(bn) {
158
+ const buf = Writer.varIntBn(bn);
159
+ this.write(buf);
160
+ return this;
161
+ }
162
+ /**
163
+ * Resets the writer to empty state (reuses the buffer)
164
+ */
165
+ reset() {
166
+ this.pos = 0;
167
+ }
168
+ }
169
+ //# sourceMappingURL=WriterUint8Array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriterUint8Array.js","sourceRoot":"","sources":["../../../../src/primitives/WriterUint8Array.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import BigNumber from './BigNumber.js';
2
2
  import { hash256 } from './Hash.js';
3
3
  import { assertValidHex } from './hex.js';
4
+ import { WriterUint8Array } from './WriterUint8Array.js';
5
+ import { ReaderUint8Array } from './ReaderUint8Array.js';
6
+ export { WriterUint8Array };
7
+ export { ReaderUint8Array };
4
8
  const BufferCtor = typeof globalThis !== 'undefined' ? globalThis.Buffer : undefined;
5
9
  const CAN_USE_BUFFER = BufferCtor != null && typeof BufferCtor.from === 'function';
6
10
  /**
@@ -39,11 +43,24 @@ export const toHex = (msg) => {
39
43
  }
40
44
  return out.join('');
41
45
  };
46
+ /**
47
+ * Converts various message formats into a Uint8Array.
48
+ * Supports Uint8Array, arrays of bytes, hexadecimal strings, base64 strings, and UTF-8 strings.
49
+ *
50
+ * @param {any} msg - The input message (Uint8Array, number[], Array or string).
51
+ * @param {('hex' | 'utf8' | 'base64')} enc - Specifies the string encoding, if applicable.
52
+ * @returns {Uint8Array}
53
+ */
54
+ export const toUint8Array = (msg, enc) => {
55
+ if (msg instanceof Uint8Array)
56
+ return msg;
57
+ return new Uint8Array(toArray(msg, enc));
58
+ };
42
59
  /**
43
60
  * Converts various message formats into an array of numbers.
44
61
  * Supports arrays, hexadecimal strings, base64 strings, and UTF-8 strings.
45
62
  *
46
- * @param {any} msg - The input message (array or string).
63
+ * @param {any} msg - The input message (Uint8Array, number[], Array or string).
47
64
  * @param {('hex' | 'utf8' | 'base64')} enc - Specifies the string encoding, if applicable.
48
65
  * @returns {any[]} - Array representation of the input.
49
66
  */