@bsv/sdk 1.10.2 → 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.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/primitives/ReaderUint8Array.js +180 -0
- package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -0
- package/dist/cjs/src/primitives/WriterUint8Array.js +173 -0
- package/dist/cjs/src/primitives/WriterUint8Array.js.map +1 -0
- package/dist/cjs/src/primitives/utils.js +20 -2
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +85 -27
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +32 -14
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +25 -6
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +77 -26
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/primitives/ReaderUint8Array.js +176 -0
- package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -0
- package/dist/esm/src/primitives/WriterUint8Array.js +169 -0
- package/dist/esm/src/primitives/WriterUint8Array.js.map +1 -0
- package/dist/esm/src/primitives/utils.js +18 -1
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +86 -28
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +33 -15
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +26 -7
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +78 -27
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/primitives/ReaderUint8Array.d.ts +32 -0
- package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -0
- package/dist/types/src/primitives/WriterUint8Array.d.ts +54 -0
- package/dist/types/src/primitives/WriterUint8Array.d.ts.map +1 -0
- package/dist/types/src/primitives/utils.d.ts +15 -3
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +24 -7
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +13 -6
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts +16 -3
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +44 -7
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/dist/umd/bundle.js.map +1 -1
- package/docs/reference/primitives.md +167 -29
- package/docs/reference/script.md +1 -1
- package/docs/reference/transaction.md +177 -34
- package/package.json +1 -1
- package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +9 -0
- package/src/primitives/ReaderUint8Array.ts +196 -0
- package/src/primitives/WriterUint8Array.ts +195 -0
- package/src/primitives/__tests/ReaderUint8Array.test.ts +317 -0
- package/src/primitives/__tests/WriterUint8Array.test.ts +208 -0
- package/src/primitives/utils.ts +20 -2
- package/src/transaction/Beef.ts +103 -40
- package/src/transaction/BeefTx.ts +38 -19
- package/src/transaction/MerklePath.ts +30 -9
- package/src/transaction/Transaction.ts +91 -38
- package/src/transaction/__tests/Beef.test.ts +75 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import BigNumber from './BigNumber.js';
|
|
2
|
+
import { Reader } from './utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reader for serialized Uint8Array binary data.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ReaderUint8Array {
|
|
7
|
+
bin: Uint8Array;
|
|
8
|
+
pos: number;
|
|
9
|
+
private readonly length;
|
|
10
|
+
static makeReader(bin: Uint8Array | number[], pos?: number): Reader | ReaderUint8Array;
|
|
11
|
+
constructor(bin?: Uint8Array | number[], pos?: number);
|
|
12
|
+
eof(): boolean;
|
|
13
|
+
read(len?: number): Uint8Array;
|
|
14
|
+
readReverse(len?: number): Uint8Array;
|
|
15
|
+
readUInt8(): number;
|
|
16
|
+
readInt8(): number;
|
|
17
|
+
readUInt16BE(): number;
|
|
18
|
+
readInt16BE(): number;
|
|
19
|
+
readUInt16LE(): number;
|
|
20
|
+
readInt16LE(): number;
|
|
21
|
+
readUInt32BE(): number;
|
|
22
|
+
readInt32BE(): number;
|
|
23
|
+
readUInt32LE(): number;
|
|
24
|
+
readInt32LE(): number;
|
|
25
|
+
readUInt64BEBn(): BigNumber;
|
|
26
|
+
readUInt64LEBn(): BigNumber;
|
|
27
|
+
readInt64LEBn(): BigNumber;
|
|
28
|
+
readVarIntNum(signed?: boolean): number;
|
|
29
|
+
readVarInt(): Uint8Array;
|
|
30
|
+
readVarIntBn(): BigNumber;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ReaderUint8Array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReaderUint8Array.d.ts","sourceRoot":"","sources":["../../../../src/primitives/ReaderUint8Array.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,qBAAa,gBAAgB;IACpB,GAAG,EAAE,UAAU,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,MAAM,CAAC,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,EAAE,GAAG,GAAE,MAAU,GAAG,MAAM,GAAG,gBAAgB;gBAU7E,GAAG,GAAE,UAAU,GAAG,MAAM,EAAsB,EAAE,GAAG,GAAE,MAAU;IAYrE,GAAG,IAAK,OAAO;IAIf,IAAI,CAAE,GAAG,SAAc,GAAG,UAAU;IAOpC,WAAW,CAAE,GAAG,SAAc,GAAG,UAAU;IAS3C,SAAS,IAAK,MAAM;IAMpB,QAAQ,IAAK,MAAM;IAOnB,YAAY,IAAK,MAAM;IAMvB,WAAW,IAAK,MAAM;IAMtB,YAAY,IAAK,MAAM;IAMvB,WAAW,IAAK,MAAM;IAOtB,YAAY,IAAK,MAAM;IAUvB,WAAW,IAAK,MAAM;IAMtB,YAAY,IAAK,MAAM;IAWvB,WAAW,IAAK,MAAM;IAMtB,cAAc,IAAK,SAAS;IAO5B,cAAc,IAAK,SAAS;IAM5B,aAAa,IAAK,SAAS;IAW3B,aAAa,CAAE,MAAM,GAAE,OAAc,GAAG,MAAM;IAoB9C,UAAU,IAAK,UAAU;IAczB,YAAY,IAAK,SAAS;CAalC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import BigNumber from './BigNumber.js';
|
|
2
|
+
type WriterChunk = readonly number[] | Uint8Array;
|
|
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 declare class WriterUint8Array {
|
|
10
|
+
private buffer;
|
|
11
|
+
private pos;
|
|
12
|
+
private capacity;
|
|
13
|
+
constructor(bufs?: WriterChunk[], initialCapacity?: number);
|
|
14
|
+
/**
|
|
15
|
+
* Returns the current length of written data
|
|
16
|
+
*/
|
|
17
|
+
getLength(): number;
|
|
18
|
+
/**
|
|
19
|
+
* @return the written data as Uint8Array copy of the internal buffer
|
|
20
|
+
*/
|
|
21
|
+
toUint8Array(): Uint8Array;
|
|
22
|
+
/**
|
|
23
|
+
* Legacy compatibility method – returns number[] (Byte[])
|
|
24
|
+
*/
|
|
25
|
+
toArray(): number[];
|
|
26
|
+
/**
|
|
27
|
+
* @return the written data as Uint8Array. CAUTION: This is zero-copy subarray of the internal buffer).
|
|
28
|
+
*/
|
|
29
|
+
toUint8ArrayZeroCopy(): Uint8Array;
|
|
30
|
+
private ensureCapacity;
|
|
31
|
+
write(bytes: WriterChunk): this;
|
|
32
|
+
writeReverse(buf: WriterChunk): this;
|
|
33
|
+
writeUInt8(value: number): this;
|
|
34
|
+
writeInt8(value: number): this;
|
|
35
|
+
writeUInt16LE(value: number): this;
|
|
36
|
+
writeUInt16BE(value: number): this;
|
|
37
|
+
writeInt16LE(value: number): this;
|
|
38
|
+
writeInt16BE(value: number): this;
|
|
39
|
+
writeUInt32LE(value: number): this;
|
|
40
|
+
writeUInt32BE(value: number): this;
|
|
41
|
+
writeInt32LE(value: number): this;
|
|
42
|
+
writeInt32BE(value: number): this;
|
|
43
|
+
writeUInt64BEBn(bn: BigNumber): this;
|
|
44
|
+
writeUInt64LEBn(bn: BigNumber): this;
|
|
45
|
+
writeUInt64LE(n: number): this;
|
|
46
|
+
writeVarIntNum(n: number): this;
|
|
47
|
+
writeVarIntBn(bn: BigNumber): this;
|
|
48
|
+
/**
|
|
49
|
+
* Resets the writer to empty state (reuses the buffer)
|
|
50
|
+
*/
|
|
51
|
+
reset(): void;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=WriterUint8Array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriterUint8Array.d.ts","sourceRoot":"","sources":["../../../../src/primitives/WriterUint8Array.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAGtC,KAAK,WAAW,GAAG,SAAS,MAAM,EAAE,GAAG,UAAU,CAAA;AAEjD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAQ;gBAEX,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,eAAe,GAAE,MAAY;IAehE;;OAEG;IACH,SAAS,IAAK,MAAM;IAIpB;;OAEG;IACH,YAAY,IAAK,UAAU;IAI3B;;OAEG;IACH,OAAO,IAAK,MAAM,EAAE;IAIpB;;OAEG;IACH,oBAAoB,IAAK,UAAU;IAInC,OAAO,CAAC,cAAc;IAatB,KAAK,CAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAQhC,YAAY,CAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAUrC,UAAU,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,aAAa,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQnC,aAAa,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQnC,YAAY,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,YAAY,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,aAAa,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAUnC,aAAa,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAUnC,YAAY,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,YAAY,CAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,eAAe,CAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IAMrC,eAAe,CAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IAMrC,aAAa,CAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM/B,cAAc,CAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMhC,aAAa,CAAE,EAAE,EAAE,SAAS,GAAG,IAAI;IAMnC;;OAEG;IACH,KAAK,IAAK,IAAI;CAGf"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
import BigNumber from './BigNumber.js';
|
|
2
|
+
import { WriterUint8Array } from './WriterUint8Array.js';
|
|
3
|
+
import { ReaderUint8Array } from './ReaderUint8Array.js';
|
|
4
|
+
export { WriterUint8Array };
|
|
5
|
+
export { ReaderUint8Array };
|
|
2
6
|
/**
|
|
3
7
|
* Prepends a '0' to an odd character length word to ensure it has an even number of characters.
|
|
4
8
|
* @param {string} word - The input word.
|
|
5
9
|
* @returns {string} - The word with a leading '0' if it's an odd character length; otherwise, the original word.
|
|
6
10
|
*/
|
|
7
11
|
export declare const zero2: (word: string) => string;
|
|
8
|
-
export declare const toHex: (msg: number[]) => string;
|
|
12
|
+
export declare const toHex: (msg: number[] | Uint8Array) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Converts various message formats into a Uint8Array.
|
|
15
|
+
* Supports Uint8Array, arrays of bytes, hexadecimal strings, base64 strings, and UTF-8 strings.
|
|
16
|
+
*
|
|
17
|
+
* @param {any} msg - The input message (Uint8Array, number[], Array or string).
|
|
18
|
+
* @param {('hex' | 'utf8' | 'base64')} enc - Specifies the string encoding, if applicable.
|
|
19
|
+
* @returns {Uint8Array}
|
|
20
|
+
*/
|
|
21
|
+
export declare const toUint8Array: (msg: any, enc?: "hex" | "utf8" | "base64") => Uint8Array;
|
|
9
22
|
/**
|
|
10
23
|
* Converts various message formats into an array of numbers.
|
|
11
24
|
* Supports arrays, hexadecimal strings, base64 strings, and UTF-8 strings.
|
|
12
25
|
*
|
|
13
|
-
* @param {any} msg - The input message (
|
|
26
|
+
* @param {any} msg - The input message (Uint8Array, number[], Array or string).
|
|
14
27
|
* @param {('hex' | 'utf8' | 'base64')} enc - Specifies the string encoding, if applicable.
|
|
15
28
|
* @returns {any[]} - Array representation of the input.
|
|
16
29
|
*/
|
|
@@ -137,5 +150,4 @@ export declare const minimallyEncode: (buf: number[]) => number[];
|
|
|
137
150
|
*/
|
|
138
151
|
export declare function verifyNotNull<T>(value: T | undefined | null, errorMessage?: string): T;
|
|
139
152
|
export declare function constantTimeEquals(a: Uint8Array | number[], b: Uint8Array | number[]): boolean;
|
|
140
|
-
export {};
|
|
141
153
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/primitives/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/primitives/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import MerklePath from './MerklePath.js';
|
|
|
2
2
|
import Transaction from './Transaction.js';
|
|
3
3
|
import ChainTracker from './ChainTracker.js';
|
|
4
4
|
import BeefTx from './BeefTx.js';
|
|
5
|
-
import { Reader, Writer } from '../primitives/utils.js';
|
|
5
|
+
import { Reader, Writer, ReaderUint8Array, WriterUint8Array } from '../primitives/utils.js';
|
|
6
6
|
export declare const BEEF_V1 = 4022206465;
|
|
7
7
|
export declare const BEEF_V2 = 4022206466;
|
|
8
8
|
export declare const ATOMIC_BEEF = 16843009;
|
|
@@ -26,6 +26,7 @@ export declare class Beef {
|
|
|
26
26
|
private ensureSerializableState;
|
|
27
27
|
private ensureSortedForSerialization;
|
|
28
28
|
private getSerializedBytes;
|
|
29
|
+
private getBeefForAtomic;
|
|
29
30
|
/**
|
|
30
31
|
* @param txid of `beefTx` to find
|
|
31
32
|
* @returns `BeefTx` in `txs` with `txid`.
|
|
@@ -85,7 +86,7 @@ export declare class Beef {
|
|
|
85
86
|
* @param bumpIndex Optional. If a number, must be valid index into bumps array.
|
|
86
87
|
* @returns txid of rawTx
|
|
87
88
|
*/
|
|
88
|
-
mergeRawTx(rawTx: number[], bumpIndex?: number): BeefTx;
|
|
89
|
+
mergeRawTx(rawTx: number[] | Uint8Array, bumpIndex?: number): BeefTx;
|
|
89
90
|
/**
|
|
90
91
|
* Merge a `Transaction` and any referenced `merklePath` and `sourceTransaction`, recursifely.
|
|
91
92
|
*
|
|
@@ -104,7 +105,7 @@ export declare class Beef {
|
|
|
104
105
|
removeExistingTxid(txid: string): void;
|
|
105
106
|
mergeTxidOnly(txid: string): BeefTx;
|
|
106
107
|
mergeBeefTx(btx: BeefTx): BeefTx;
|
|
107
|
-
mergeBeef(beef: number[] |
|
|
108
|
+
mergeBeef(beef: Beef | number[] | Uint8Array): void;
|
|
108
109
|
/**
|
|
109
110
|
* Sorts `txs` and checks structural validity of beef.
|
|
110
111
|
*
|
|
@@ -159,12 +160,17 @@ export declare class Beef {
|
|
|
159
160
|
* Serializes this data to `writer`
|
|
160
161
|
* @param writer
|
|
161
162
|
*/
|
|
162
|
-
toWriter(writer: Writer): void;
|
|
163
|
+
toWriter(writer: Writer | WriterUint8Array): void;
|
|
163
164
|
/**
|
|
164
165
|
* Returns a binary array representing the serialized BEEF
|
|
165
166
|
* @returns A binary array representing the BEEF
|
|
167
|
+
* @returns An array of byte values containing binary serialization of the BEEF
|
|
166
168
|
*/
|
|
167
169
|
toBinary(): number[];
|
|
170
|
+
/**
|
|
171
|
+
* Returns a binary array representing the serialized BEEF
|
|
172
|
+
* @returns A Uint8Array containing binary serialization of the BEEF
|
|
173
|
+
*/
|
|
168
174
|
toUint8Array(): Uint8Array;
|
|
169
175
|
/**
|
|
170
176
|
* Serialize this Beef as AtomicBEEF.
|
|
@@ -177,18 +183,29 @@ export declare class Beef {
|
|
|
177
183
|
* @returns serialized contents of this Beef with AtomicBEEF prefix.
|
|
178
184
|
*/
|
|
179
185
|
toBinaryAtomic(txid: string): number[];
|
|
186
|
+
/**
|
|
187
|
+
* Serialize this Beef as AtomicBEEF.
|
|
188
|
+
*
|
|
189
|
+
* `txid` must exist
|
|
190
|
+
*
|
|
191
|
+
* after sorting, if txid is not last txid, creates a clone and removes newer txs
|
|
192
|
+
*
|
|
193
|
+
* @param txid
|
|
194
|
+
* @returns serialized contents of this Beef with AtomicBEEF prefix.
|
|
195
|
+
*/
|
|
196
|
+
toUint8ArrayAtomic(txid: string): Uint8Array;
|
|
180
197
|
/**
|
|
181
198
|
* Returns a hex string representing the serialized BEEF
|
|
182
199
|
* @returns A hex string representing the BEEF
|
|
183
200
|
*/
|
|
184
201
|
toHex(): string;
|
|
185
|
-
static fromReader(br: Reader): Beef;
|
|
202
|
+
static fromReader(br: Reader | ReaderUint8Array): Beef;
|
|
186
203
|
/**
|
|
187
204
|
* Constructs an instance of the Beef class based on the provided binary array
|
|
188
|
-
* @param bin The binary array from which to construct BEEF
|
|
205
|
+
* @param bin The binary array or Uint8Array from which to construct BEEF
|
|
189
206
|
* @returns An instance of the Beef class constructed from the binary data
|
|
190
207
|
*/
|
|
191
|
-
static fromBinary(bin: number[]): Beef;
|
|
208
|
+
static fromBinary(bin: number[] | Uint8Array): Beef;
|
|
192
209
|
/**
|
|
193
210
|
* Constructs an instance of the Beef class based on the provided string
|
|
194
211
|
* @param s The string value from which to construct BEEF
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Beef.d.ts","sourceRoot":"","sources":["../../../../src/transaction/Beef.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAA;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAC1C,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAiC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"Beef.d.ts","sourceRoot":"","sources":["../../../../src/transaction/Beef.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Reader, Writer } from '../primitives/utils.js';
|
|
1
|
+
import { Reader, Writer, ReaderUint8Array, WriterUint8Array } from '../primitives/utils.js';
|
|
2
2
|
import Transaction from './Transaction.js';
|
|
3
3
|
/**
|
|
4
4
|
* A single bitcoin transaction associated with a `Beef` validity proof set.
|
|
@@ -12,7 +12,7 @@ import Transaction from './Transaction.js';
|
|
|
12
12
|
export default class BeefTx {
|
|
13
13
|
_bumpIndex?: number;
|
|
14
14
|
_tx?: Transaction;
|
|
15
|
-
_rawTx?:
|
|
15
|
+
_rawTx?: Uint8Array;
|
|
16
16
|
_txid?: string;
|
|
17
17
|
inputTxids: string[];
|
|
18
18
|
/**
|
|
@@ -27,17 +27,24 @@ export default class BeefTx {
|
|
|
27
27
|
get isTxidOnly(): boolean;
|
|
28
28
|
get txid(): string;
|
|
29
29
|
get tx(): Transaction | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Legacy compatibility getter — returns number[] (Byte[])
|
|
32
|
+
*/
|
|
30
33
|
get rawTx(): number[] | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Preferred modern getter — returns Uint8Array (zero-copy where possible)
|
|
36
|
+
*/
|
|
37
|
+
get rawTxUint8Array(): Uint8Array | undefined;
|
|
31
38
|
/**
|
|
32
39
|
* @param tx If string, must be a valid txid. If `number[]` must be a valid serialized transaction.
|
|
33
40
|
* @param bumpIndex If transaction already has a proof in the beef to which it will be added.
|
|
34
41
|
*/
|
|
35
|
-
constructor(tx: Transaction | number[] | string, bumpIndex?: number);
|
|
42
|
+
constructor(tx: Transaction | Uint8Array | number[] | string, bumpIndex?: number);
|
|
36
43
|
static fromTx(tx: Transaction, bumpIndex?: number): BeefTx;
|
|
37
|
-
static fromRawTx(rawTx: number[], bumpIndex?: number): BeefTx;
|
|
44
|
+
static fromRawTx(rawTx: Uint8Array | number[], bumpIndex?: number): BeefTx;
|
|
38
45
|
static fromTxid(txid: string, bumpIndex?: number): BeefTx;
|
|
39
46
|
private updateInputTxids;
|
|
40
|
-
toWriter(writer: Writer, version: number): void;
|
|
41
|
-
static fromReader(br: Reader, version: number): BeefTx;
|
|
47
|
+
toWriter(writer: Writer | WriterUint8Array, version: number): void;
|
|
48
|
+
static fromReader(br: Reader | ReaderUint8Array, version: number): BeefTx;
|
|
42
49
|
}
|
|
43
50
|
//# sourceMappingURL=BeefTx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeefTx.d.ts","sourceRoot":"","sources":["../../../../src/transaction/BeefTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"BeefTx.d.ts","sourceRoot":"","sources":["../../../../src/transaction/BeefTx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAkB,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3G,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,EAAE,CAAK;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAY;IAE7B,IAAI,SAAS,IAAK,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,SAAS,CAAE,CAAC,EAAE,MAAM,GAAG,SAAS,EAGnC;IAED,IAAI,QAAQ,IAAK,OAAO,CAEvB;IAED,IAAI,UAAU,IAAK,OAAO,CAEzB;IAED,IAAI,IAAI,IAAK,MAAM,CAWlB;IAED,IAAI,EAAE,IAAK,WAAW,GAAG,SAAS,CAOjC;IAED;;OAEG;IACH,IAAI,KAAK,IAAK,MAAM,EAAE,GAAG,SAAS,CAUjC;IAED;;OAEG;IACH,IAAI,eAAe,IAAK,UAAU,GAAG,SAAS,CAO7C;IAED;;;OAGG;gBACU,EAAE,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAgBjF,MAAM,CAAC,MAAM,CAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3D,MAAM,CAAC,SAAS,CAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAI3E,MAAM,CAAC,QAAQ,CAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1D,OAAO,CAAC,gBAAgB;IAexB,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA+CnE,MAAM,CAAC,UAAU,CAAE,EAAE,EAAE,MAAM,GAAG,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAyB3E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Reader } from '../primitives/utils.js';
|
|
1
|
+
import { Reader, Writer, WriterUint8Array } from '../primitives/utils.js';
|
|
2
2
|
import ChainTracker from './ChainTracker.js';
|
|
3
|
+
import { ReaderUint8Array } from '../primitives/ReaderUint8Array.js';
|
|
3
4
|
export interface MerklePathLeaf {
|
|
4
5
|
offset: number;
|
|
5
6
|
hash?: string;
|
|
@@ -43,7 +44,7 @@ export default class MerklePath {
|
|
|
43
44
|
* @returns {MerklePath} - A new MerklePath instance.
|
|
44
45
|
*/
|
|
45
46
|
static fromHex(hex: string): MerklePath;
|
|
46
|
-
static fromReader(reader: Reader, legalOffsetsOnly?: boolean): MerklePath;
|
|
47
|
+
static fromReader(reader: Reader | ReaderUint8Array, legalOffsetsOnly?: boolean): MerklePath;
|
|
47
48
|
/**
|
|
48
49
|
* Creates a MerklePath instance from a binary array.
|
|
49
50
|
*
|
|
@@ -51,7 +52,7 @@ export default class MerklePath {
|
|
|
51
52
|
* @param {number[]} bump - The binary array representation of the Merkle Path.
|
|
52
53
|
* @returns {MerklePath} - A new MerklePath instance.
|
|
53
54
|
*/
|
|
54
|
-
static fromBinary(bump: number[]): MerklePath;
|
|
55
|
+
static fromBinary(bump: number[] | Uint8Array): MerklePath;
|
|
55
56
|
/**
|
|
56
57
|
*
|
|
57
58
|
* @static fromCoinbaseTxid
|
|
@@ -70,12 +71,24 @@ export default class MerklePath {
|
|
|
70
71
|
txid?: boolean;
|
|
71
72
|
duplicate?: boolean;
|
|
72
73
|
}>>, legalOffsetsOnly?: boolean);
|
|
74
|
+
/**
|
|
75
|
+
* Serializes the MerklePath to the writer provided.
|
|
76
|
+
*
|
|
77
|
+
* @param writer - The writer to which the Merkle Path will be serialized.
|
|
78
|
+
*/
|
|
79
|
+
toWriter(writer: Writer | WriterUint8Array): void;
|
|
73
80
|
/**
|
|
74
81
|
* Converts the MerklePath to a binary array format.
|
|
75
82
|
*
|
|
76
83
|
* @returns {number[]} - The binary array representation of the Merkle Path.
|
|
77
84
|
*/
|
|
78
85
|
toBinary(): number[];
|
|
86
|
+
/**
|
|
87
|
+
* Converts the MerklePath to a binary array format.
|
|
88
|
+
*
|
|
89
|
+
* @returns {Uint8Array} - The binary array representation of the Merkle Path.
|
|
90
|
+
*/
|
|
91
|
+
toBinaryUint8Array(): Uint8Array;
|
|
79
92
|
/**
|
|
80
93
|
* Converts the MerklePath to a hexadecimal string format.
|
|
81
94
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MerklePath.d.ts","sourceRoot":"","sources":["../../../../src/transaction/MerklePath.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MerklePath.d.ts","sourceRoot":"","sources":["../../../../src/transaction/MerklePath.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAkB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzF,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,CACX,KAAK,CAAC;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAC,CACD,CAAA;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU;IAIxC,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,MAAM,GAAG,gBAAgB,EACjC,gBAAgB,GAAE,OAAc,GAC/B,UAAU;IAwCb;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU;IAK3D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,yBAAyB,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;gBAKzE,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,KAAK,CACX,KAAK,CAAC;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAC,CACD,EACD,gBAAgB,GAAE,OAAc;IA+ClC;;;;OAIG;IACH,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAwBlD;;;;OAIG;IACH,QAAQ,IAAK,MAAM,EAAE;IAMrB;;;;OAIG;IACH,kBAAkB,IAAK,UAAU;IAMjC;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAKhB,OAAO,CAAC,OAAO;IAQf;;;;;;OAMG;IACH,WAAW,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IA2CnC;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAmC7B;;;;;;OAMG;IACG,MAAM,CAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAazE;;;;;OAKG;IACH,OAAO,CAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IA2CjC;;;;OAIG;IACH,IAAI,IAAK,IAAI;CAqDd"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import TransactionInput from './TransactionInput.js';
|
|
2
2
|
import TransactionOutput from './TransactionOutput.js';
|
|
3
|
-
import { Reader } from '../primitives/utils.js';
|
|
3
|
+
import { Reader, Writer, ReaderUint8Array, WriterUint8Array } from '../primitives/utils.js';
|
|
4
4
|
import FeeModel from './FeeModel.js';
|
|
5
5
|
import { Broadcaster, BroadcastResponse, BroadcastFailure } from './Broadcaster.js';
|
|
6
6
|
import MerklePath from './MerklePath.js';
|
|
@@ -60,7 +60,7 @@ export default class Transaction {
|
|
|
60
60
|
* @param txid Optional TXID of the transaction to retrieve from the BEEF data.
|
|
61
61
|
* @returns An anchored transaction, linked to its associated inputs populated with merkle paths.
|
|
62
62
|
*/
|
|
63
|
-
static fromBEEF(beef: number[], txid?: string): Transaction;
|
|
63
|
+
static fromBEEF(beef: number[] | Uint8Array, txid?: string): Transaction;
|
|
64
64
|
/**
|
|
65
65
|
* Creates a new transaction from an Atomic BEEF (BRC-95) structure.
|
|
66
66
|
* Extracts the subject transaction and supporting merkle path and source transactions contained in the BEEF data
|
|
@@ -68,14 +68,14 @@ export default class Transaction {
|
|
|
68
68
|
* @param beef A binary representation of an Atomic BEEF structure.
|
|
69
69
|
* @returns The subject transaction, linked to its associated inputs populated with merkle paths.
|
|
70
70
|
*/
|
|
71
|
-
static fromAtomicBEEF(beef: number[]): Transaction;
|
|
71
|
+
static fromAtomicBEEF(beef: number[] | Uint8Array): Transaction;
|
|
72
72
|
private static fromAnyBeef;
|
|
73
73
|
/**
|
|
74
74
|
* Creates a new transaction, linked to its inputs and their associated merkle paths, from a EF (BRC-30) structure.
|
|
75
75
|
* @param ef A binary representation of a transaction in EF format.
|
|
76
76
|
* @returns An extended transaction, linked to its associated inputs by locking script and satoshis amounts only.
|
|
77
77
|
*/
|
|
78
|
-
static fromEF(ef: number[]): Transaction;
|
|
78
|
+
static fromEF(ef: number[] | Uint8Array): Transaction;
|
|
79
79
|
/**
|
|
80
80
|
* Since the validation of blockchain data is atomically transaction data validation,
|
|
81
81
|
* any application seeking to validate data in output scripts must store the entire transaction as well.
|
|
@@ -91,7 +91,7 @@ export default class Transaction {
|
|
|
91
91
|
* outputs: { vout: number, offset: number, length: number }[]
|
|
92
92
|
* }
|
|
93
93
|
*/
|
|
94
|
-
static parseScriptOffsets(bin: number[]): {
|
|
94
|
+
static parseScriptOffsets(bin: number[] | Uint8Array): {
|
|
95
95
|
inputs: Array<{
|
|
96
96
|
vin: number;
|
|
97
97
|
offset: number;
|
|
@@ -103,7 +103,7 @@ export default class Transaction {
|
|
|
103
103
|
length: number;
|
|
104
104
|
}>;
|
|
105
105
|
};
|
|
106
|
-
static fromReader(br: Reader): Transaction;
|
|
106
|
+
static fromReader(br: Reader | ReaderUint8Array): Transaction;
|
|
107
107
|
/**
|
|
108
108
|
* Creates a Transaction instance from a binary array.
|
|
109
109
|
*
|
|
@@ -111,7 +111,7 @@ export default class Transaction {
|
|
|
111
111
|
* @param {number[]} bin - The binary array representation of the transaction.
|
|
112
112
|
* @returns {Transaction} - A new Transaction instance.
|
|
113
113
|
*/
|
|
114
|
-
static fromBinary(bin: number[]): Transaction;
|
|
114
|
+
static fromBinary(bin: number[] | Uint8Array): Transaction;
|
|
115
115
|
/**
|
|
116
116
|
* Creates a Transaction instance from a hexadecimal string.
|
|
117
117
|
*
|
|
@@ -212,12 +212,19 @@ export default class Transaction {
|
|
|
212
212
|
*/
|
|
213
213
|
toBinary(): number[];
|
|
214
214
|
toUint8Array(): Uint8Array;
|
|
215
|
+
private writeEF;
|
|
215
216
|
/**
|
|
216
217
|
* Converts the transaction to a BRC-30 EF format.
|
|
217
218
|
*
|
|
218
219
|
* @returns {number[]} - The BRC-30 EF representation of the transaction.
|
|
219
220
|
*/
|
|
220
221
|
toEF(): number[];
|
|
222
|
+
/**
|
|
223
|
+
* Converts the transaction to a BRC-30 EF format.
|
|
224
|
+
*
|
|
225
|
+
* @returns {Uint8Array} - The BRC-30 EF representation of the transaction.
|
|
226
|
+
*/
|
|
227
|
+
toEFUint8Array(): Uint8Array;
|
|
221
228
|
/**
|
|
222
229
|
* Converts the transaction to a hexadecimal string EF.
|
|
223
230
|
*
|
|
@@ -282,7 +289,25 @@ export default class Transaction {
|
|
|
282
289
|
* @returns The serialized BEEF structure
|
|
283
290
|
* @throws Error if there are any missing sourceTransactions unless `allowPartial` is true.
|
|
284
291
|
*/
|
|
292
|
+
writeSerializedBEEF(writer: Writer | WriterUint8Array, allowPartial?: boolean): void;
|
|
293
|
+
/**
|
|
294
|
+
* Serializes this transaction, together with its inputs and the respective merkle proofs, into the BEEF (BRC-62) format. This enables efficient verification of its compliance with the rules of SPV.
|
|
295
|
+
*
|
|
296
|
+
* @param allowPartial If true, error will not be thrown if there are any missing sourceTransactions.
|
|
297
|
+
*
|
|
298
|
+
* @returns {number[]} The serialized BEEF structure
|
|
299
|
+
* @throws Error if there are any missing sourceTransactions unless `allowPartial` is true.
|
|
300
|
+
*/
|
|
285
301
|
toBEEF(allowPartial?: boolean): number[];
|
|
302
|
+
/**
|
|
303
|
+
* Serializes this transaction, together with its inputs and the respective merkle proofs, into the BEEF (BRC-62) format. This enables efficient verification of its compliance with the rules of SPV.
|
|
304
|
+
*
|
|
305
|
+
* @param allowPartial If true, error will not be thrown if there are any missing sourceTransactions.
|
|
306
|
+
*
|
|
307
|
+
* @returns {number[]} The serialized BEEF structure
|
|
308
|
+
* @throws Error if there are any missing sourceTransactions unless `allowPartial` is true.
|
|
309
|
+
*/
|
|
310
|
+
toBEEFUint8Array(allowPartial?: boolean): Uint8Array;
|
|
286
311
|
/**
|
|
287
312
|
* Serializes this transaction and its inputs into the Atomic BEEF (BRC-95) format.
|
|
288
313
|
* The Atomic BEEF format starts with a 4-byte prefix `0x01010101`, followed by the TXID of the subject transaction,
|
|
@@ -295,5 +320,17 @@ export default class Transaction {
|
|
|
295
320
|
* @throws Error if there are any missing sourceTransactions unless `allowPartial` is true.
|
|
296
321
|
*/
|
|
297
322
|
toAtomicBEEF(allowPartial?: boolean): number[];
|
|
323
|
+
/**
|
|
324
|
+
* Serializes this transaction and its inputs into the Atomic BEEF (BRC-95) format.
|
|
325
|
+
* The Atomic BEEF format starts with a 4-byte prefix `0x01010101`, followed by the TXID of the subject transaction,
|
|
326
|
+
* and then the BEEF data containing only the subject transaction and its dependencies.
|
|
327
|
+
* This format ensures that the BEEF structure is atomic and contains no unrelated transactions.
|
|
328
|
+
*
|
|
329
|
+
* @param allowPartial If true, error will not be thrown if there are any missing sourceTransactions.
|
|
330
|
+
*
|
|
331
|
+
* @returns {number[]} - The serialized Atomic BEEF structure.
|
|
332
|
+
* @throws Error if there are any missing sourceTransactions unless `allowPartial` is true.
|
|
333
|
+
*/
|
|
334
|
+
toAtomicBEEFUint8Array(allowPartial?: boolean): Uint8Array;
|
|
298
335
|
}
|
|
299
336
|
//# sourceMappingURL=Transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/Transaction.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,uBAAuB,CAAA;AACpD,OAAO,iBAAiB,MAAM,wBAAwB,CAAA;AAGtD,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}
|