ecash-lib 4.8.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/consts.d.ts +5 -0
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +6 -1
- package/dist/consts.js.map +1 -1
- package/dist/ffi/ecash_lib_wasm_bg_browser.js +20534 -20534
- package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
- package/dist/op.d.ts +8 -0
- package/dist/op.d.ts.map +1 -1
- package/dist/op.js +97 -0
- package/dist/op.js.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +6 -0
- package/src/ffi/ecash_lib_wasm_bg_browser.js +20534 -20534
- package/src/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
- package/src/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
- package/src/op.ts +103 -0
|
Binary file
|
|
Binary file
|
package/dist/op.d.ts
CHANGED
|
@@ -14,6 +14,14 @@ export interface PushOp {
|
|
|
14
14
|
opcode: Opcode;
|
|
15
15
|
data: Uint8Array;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse a number from a script op.
|
|
19
|
+
* Inverse of pushNumberOp: handles OP_0 (0), OP_1NEGATE (-1), OP_1 through OP_16,
|
|
20
|
+
* single-byte push data, and multi-byte minimal script number encoding (up to 64-bit).
|
|
21
|
+
* Always returns bigint for type safety (matches CScriptNum::getint).
|
|
22
|
+
* @throws Error with descriptive message if the op does not encode a number
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseNumberFromOp(op: Op): bigint;
|
|
17
25
|
/** Returns true if the given object is a `PushOp` */
|
|
18
26
|
export declare function isPushOp(op: any): op is PushOp;
|
|
19
27
|
/** Read a single Script operation from the bytes */
|
package/dist/op.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op.d.ts","sourceRoot":"","sources":["../src/op.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"op.d.ts","sourceRoot":"","sources":["../src/op.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAQH,MAAM,EACT,MAAM,aAAa,CAAC;AAErB;;;IAGI;AACJ,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjC;;;IAGI;AACJ,MAAM,WAAW,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CACpB;AAqED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAwBhD;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,MAAM,CAU9C;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAsBvC;AAED,6CAA6C;AAC7C,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QA+B7C;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAuBhD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,EAAE,CA8BvD"}
|
package/dist/op.js
CHANGED
|
@@ -3,12 +3,109 @@
|
|
|
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
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseNumberFromOp = parseNumberFromOp;
|
|
6
7
|
exports.isPushOp = isPushOp;
|
|
7
8
|
exports.readOp = readOp;
|
|
8
9
|
exports.writeOp = writeOp;
|
|
9
10
|
exports.pushBytesOp = pushBytesOp;
|
|
10
11
|
exports.pushNumberOp = pushNumberOp;
|
|
12
|
+
const consts_js_1 = require("./consts.js");
|
|
11
13
|
const opcode_js_1 = require("./opcode.js");
|
|
14
|
+
/**
|
|
15
|
+
* Check if bytes are a minimally encoded script number (not arbitrary data).
|
|
16
|
+
* See CScriptNum::IsMinimallyEncoded in script/script.cpp.
|
|
17
|
+
*/
|
|
18
|
+
function isMinimallyEncoded(data) {
|
|
19
|
+
if (data.length === 0)
|
|
20
|
+
return true;
|
|
21
|
+
// Check that the number is encoded with the minimum possible number of bytes.
|
|
22
|
+
// If the most-significant-byte (excluding the sign bit) is zero then we're not minimal.
|
|
23
|
+
// This also rejects the negative-zero encoding, 0x80.
|
|
24
|
+
const last = data[data.length - 1];
|
|
25
|
+
if ((last & 0x7f) === 0) {
|
|
26
|
+
// One exception: if there's more than one byte and the most significant bit of the
|
|
27
|
+
// second-to-last byte is set, it would conflict with the sign bit. E.g. +-255
|
|
28
|
+
// encode to 0xff00 and 0xff80 respectively.
|
|
29
|
+
if (data.length <= 1 || (data[data.length - 2] & 0x80) === 0) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Decode a minimally-encoded script number from bytes (little-endian, sign-magnitude).
|
|
37
|
+
* Validates size and minimal encoding; callers can rely on returned value being valid.
|
|
38
|
+
* Always returns bigint for type safety and full 64-bit range (matches CScriptNum::getint).
|
|
39
|
+
* Empty byte array decodes to 0.
|
|
40
|
+
* @throws Error if data exceeds max size or is not minimally encoded
|
|
41
|
+
*/
|
|
42
|
+
function decodeScriptNum(data) {
|
|
43
|
+
if (data.length === 0) {
|
|
44
|
+
return 0n;
|
|
45
|
+
}
|
|
46
|
+
if (data.length > consts_js_1.MAX_SCRIPTNUM_BYTE_SIZE) {
|
|
47
|
+
throw new Error(`Script number exceeds maximum size (${data.length} > ${consts_js_1.MAX_SCRIPTNUM_BYTE_SIZE} bytes)`);
|
|
48
|
+
}
|
|
49
|
+
if (!isMinimallyEncoded(data)) {
|
|
50
|
+
throw new Error('Script number is not minimally encoded');
|
|
51
|
+
}
|
|
52
|
+
let result = 0n;
|
|
53
|
+
for (let i = 0; i < data.length; i++) {
|
|
54
|
+
result |= BigInt(data[i]) << BigInt(8 * i);
|
|
55
|
+
}
|
|
56
|
+
if (data[data.length - 1] & 0x80) {
|
|
57
|
+
const mask = ~(0x80n << BigInt(8 * (data.length - 1)));
|
|
58
|
+
result &= mask;
|
|
59
|
+
result = -result;
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if the PushOp uses minimal push encoding for its data length.
|
|
65
|
+
* pushNumberOp always produces minimal pushes.
|
|
66
|
+
*/
|
|
67
|
+
function isMinimalPushOp(pushOp) {
|
|
68
|
+
const len = pushOp.data.length;
|
|
69
|
+
if (len === 0)
|
|
70
|
+
return pushOp.opcode === opcode_js_1.OP_0;
|
|
71
|
+
if (len >= 1 && len <= 0x4b)
|
|
72
|
+
return pushOp.opcode === len;
|
|
73
|
+
if (len >= 0x4c && len <= 0xff)
|
|
74
|
+
return pushOp.opcode === opcode_js_1.OP_PUSHDATA1;
|
|
75
|
+
if (len >= 0x100 && len <= 0xffff)
|
|
76
|
+
return pushOp.opcode === opcode_js_1.OP_PUSHDATA2;
|
|
77
|
+
if (len >= 0x10000 && len <= 0xffffffff)
|
|
78
|
+
return pushOp.opcode === opcode_js_1.OP_PUSHDATA4;
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parse a number from a script op.
|
|
83
|
+
* Inverse of pushNumberOp: handles OP_0 (0), OP_1NEGATE (-1), OP_1 through OP_16,
|
|
84
|
+
* single-byte push data, and multi-byte minimal script number encoding (up to 64-bit).
|
|
85
|
+
* Always returns bigint for type safety (matches CScriptNum::getint).
|
|
86
|
+
* @throws Error with descriptive message if the op does not encode a number
|
|
87
|
+
*/
|
|
88
|
+
function parseNumberFromOp(op) {
|
|
89
|
+
if (typeof op === 'number') {
|
|
90
|
+
if (op === opcode_js_1.OP_0) {
|
|
91
|
+
return 0n;
|
|
92
|
+
}
|
|
93
|
+
if (op === opcode_js_1.OP_1NEGATE) {
|
|
94
|
+
return -1n;
|
|
95
|
+
}
|
|
96
|
+
if (op >= opcode_js_1.OP_1 && op <= opcode_js_1.OP_16) {
|
|
97
|
+
return BigInt(op - 0x50);
|
|
98
|
+
}
|
|
99
|
+
throw new Error(`Opcode 0x${op.toString(16)} does not encode a number (expected OP_0, OP_1NEGATE, or OP_1-OP_16)`);
|
|
100
|
+
}
|
|
101
|
+
if (!isPushOp(op)) {
|
|
102
|
+
throw new Error('Op is not a push op');
|
|
103
|
+
}
|
|
104
|
+
if (!isMinimalPushOp(op)) {
|
|
105
|
+
throw new Error(`Push uses non-minimal encoding (opcode 0x${op.opcode.toString(16)} for ${op.data.length} bytes)`);
|
|
106
|
+
}
|
|
107
|
+
return decodeScriptNum(op.data);
|
|
108
|
+
}
|
|
12
109
|
/** Returns true if the given object is a `PushOp` */
|
|
13
110
|
function isPushOp(op) {
|
|
14
111
|
if (!op || typeof op !== 'object') {
|
package/dist/op.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op.js","sourceRoot":"","sources":["../src/op.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;
|
|
1
|
+
{"version":3,"file":"op.js","sourceRoot":"","sources":["../src/op.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/consts.ts
CHANGED
|
@@ -37,5 +37,11 @@ export const OP_RETURN_MAX_BYTES = 223;
|
|
|
37
37
|
*/
|
|
38
38
|
export const MAX_TX_SERSIZE = 100_000;
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Maximum byte size of script numbers when interpreting Script.
|
|
42
|
+
* Mirrors MAX_SCRIPTNUM_BYTE_SIZE in src/script/script.h.
|
|
43
|
+
*/
|
|
44
|
+
export const MAX_SCRIPTNUM_BYTE_SIZE = 8;
|
|
45
|
+
|
|
40
46
|
// The size in bytes of a p2pkh output
|
|
41
47
|
export const P2PKH_OUTPUT_SIZE = 34;
|