ecash-lib 0.1.0-rc2 → 0.1.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 +73 -15
- package/dist/ecc.d.ts +6 -2
- package/dist/ecc.d.ts.map +1 -1
- package/dist/ecc.js +9 -6
- package/dist/ecc.js.map +1 -1
- package/dist/ffi/ecash_lib_wasm_bg.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_browser.wasm.d.ts +16 -0
- package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm.d.ts +16 -0
- package/dist/ffi/ecash_lib_wasm_browser.d.ts +90 -0
- package/dist/ffi/ecash_lib_wasm_browser.js +340 -0
- package/dist/ffi/ecash_lib_wasm_nodejs.d.ts +50 -0
- package/dist/ffi/ecash_lib_wasm_nodejs.js +265 -0
- package/dist/hash.d.ts +10 -4
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +20 -4
- package/dist/hash.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -21
- package/dist/index.js.map +1 -1
- package/dist/indexBrowser.d.ts +3 -0
- package/dist/indexBrowser.d.ts.map +1 -0
- package/dist/indexBrowser.js +22 -0
- package/dist/indexBrowser.js.map +1 -0
- package/dist/indexNodeJs.d.ts +3 -0
- package/dist/indexNodeJs.d.ts.map +1 -0
- package/dist/indexNodeJs.js +22 -0
- package/dist/indexNodeJs.js.map +1 -0
- package/dist/initBrowser.d.ts +3 -0
- package/dist/initBrowser.d.ts.map +1 -0
- package/dist/initBrowser.js +44 -0
- package/dist/initBrowser.js.map +1 -0
- package/dist/initNodeJs.d.ts +3 -0
- package/dist/initNodeJs.d.ts.map +1 -0
- package/dist/initNodeJs.js +43 -0
- package/dist/initNodeJs.js.map +1 -0
- package/dist/io/bytes.js +5 -1
- package/dist/io/bytes.js.map +1 -1
- package/dist/io/hex.js +11 -4
- package/dist/io/hex.js.map +1 -1
- package/dist/io/int.js +2 -1
- package/dist/io/int.js.map +1 -1
- package/dist/io/str.d.ts +2 -0
- package/dist/io/str.d.ts.map +1 -1
- package/dist/io/str.js +11 -1
- package/dist/io/str.js.map +1 -1
- package/dist/io/varsize.js +7 -2
- package/dist/io/varsize.js.map +1 -1
- package/dist/io/writer.js +2 -1
- package/dist/io/writer.js.map +1 -1
- package/dist/io/writerbytes.js +5 -1
- package/dist/io/writerbytes.js.map +1 -1
- package/dist/io/writerlength.js +5 -1
- package/dist/io/writerlength.js.map +1 -1
- package/dist/op.js +23 -16
- package/dist/op.js.map +1 -1
- package/dist/opcode.js +126 -121
- package/dist/opcode.js.map +1 -1
- package/dist/script.d.ts +1 -0
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +34 -25
- package/dist/script.js.map +1 -1
- package/dist/sigHashType.js +23 -19
- package/dist/sigHashType.js.map +1 -1
- package/dist/test/testRunner.d.ts +1 -1
- package/dist/test/testRunner.d.ts.map +1 -1
- package/dist/test/testRunner.js +51 -26
- package/dist/test/testRunner.js.map +1 -1
- package/dist/token/alp.js +43 -36
- package/dist/token/alp.js.map +1 -1
- package/dist/token/common.js +8 -5
- package/dist/token/common.js.map +1 -1
- package/dist/token/empp.js +13 -9
- package/dist/token/empp.js.map +1 -1
- package/dist/token/slp.js +61 -53
- package/dist/token/slp.js.map +1 -1
- package/dist/tx.d.ts +2 -0
- package/dist/tx.d.ts.map +1 -1
- package/dist/tx.js +39 -21
- package/dist/tx.js.map +1 -1
- package/dist/txBuilder.js +33 -25
- package/dist/txBuilder.js.map +1 -1
- package/dist/unsignedTx.js +34 -29
- package/dist/unsignedTx.js.map +1 -1
- package/package.json +3 -3
- package/tsconfig.json +1 -2
- package/tests/alp.test.ts +0 -383
- package/tests/slp.test.ts +0 -1124
- package/tests/txBuilder.test.ts +0 -562
package/dist/opcode.js
CHANGED
|
@@ -1,136 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OP_ROLL = exports.OP_PICK = exports.OP_OVER = exports.OP_NIP = exports.OP_DUP = exports.OP_DROP = exports.OP_DEPTH = exports.OP_IFDUP = exports.OP_2SWAP = exports.OP_2ROT = exports.OP_2OVER = exports.OP_3DUP = exports.OP_2DUP = exports.OP_2DROP = exports.OP_FROMALTSTACK = exports.OP_TOALTSTACK = exports.OP_RETURN = exports.OP_VERIFY = exports.OP_ENDIF = exports.OP_ELSE = exports.OP_VERNOTIF = exports.OP_VERIF = exports.OP_NOTIF = exports.OP_IF = exports.OP_VER = exports.OP_NOP = exports.OP_16 = exports.OP_15 = exports.OP_14 = exports.OP_13 = exports.OP_12 = exports.OP_11 = exports.OP_10 = exports.OP_9 = exports.OP_8 = exports.OP_7 = exports.OP_6 = exports.OP_5 = exports.OP_4 = exports.OP_3 = exports.OP_2 = exports.OP_TRUE = exports.OP_1 = exports.OP_RESERVED = exports.OP_1NEGATE = exports.OP_PUSHDATA4 = exports.OP_PUSHDATA2 = exports.OP_PUSHDATA1 = exports.OP_FALSE = exports.OP_0 = void 0;
|
|
7
|
+
exports.OP_CHECKSIG = exports.OP_CODESEPARATOR = exports.OP_HASH256 = exports.OP_HASH160 = exports.OP_SHA256 = exports.OP_SHA1 = exports.OP_RIPEMD160 = exports.OP_WITHIN = exports.OP_MAX = exports.OP_MIN = exports.OP_GREATERTHANOREQUAL = exports.OP_LESSTHANOREQUAL = exports.OP_GREATERTHAN = exports.OP_LESSTHAN = exports.OP_NUMNOTEQUAL = exports.OP_NUMEQUALVERIFY = exports.OP_NUMEQUAL = exports.OP_BOOLOR = exports.OP_BOOLAND = exports.OP_RSHIFT = exports.OP_LSHIFT = exports.OP_MOD = exports.OP_DIV = exports.OP_MUL = exports.OP_SUB = exports.OP_ADD = exports.OP_0NOTEQUAL = exports.OP_NOT = exports.OP_ABS = exports.OP_NEGATE = exports.OP_2DIV = exports.OP_2MUL = exports.OP_1SUB = exports.OP_1ADD = exports.OP_RESERVED2 = exports.OP_RESERVED1 = exports.OP_EQUALVERIFY = exports.OP_EQUAL = exports.OP_XOR = exports.OP_OR = exports.OP_AND = exports.OP_INVERT = exports.OP_SIZE = exports.OP_BIN2NUM = exports.OP_NUM2BIN = exports.OP_SPLIT = exports.OP_CAT = exports.OP_TUCK = exports.OP_SWAP = exports.OP_ROT = void 0;
|
|
8
|
+
exports.OP_INVALIDOPCODE = exports.OP_PREFIX_END = exports.OP_PREFIX_BEGIN = exports.OP_REVERSEBYTES = exports.OP_CHECKDATASIGVERIFY = exports.OP_CHECKDATASIG = exports.OP_NOP10 = exports.OP_NOP9 = exports.OP_NOP8 = exports.OP_NOP7 = exports.OP_NOP6 = exports.OP_NOP5 = exports.OP_NOP4 = exports.OP_NOP3 = exports.OP_CHECKSEQUENCEVERIFY = exports.OP_NOP2 = exports.OP_CHECKLOCKTIMEVERIFY = exports.OP_NOP1 = exports.OP_CHECKMULTISIGVERIFY = exports.OP_CHECKMULTISIG = exports.OP_CHECKSIGVERIFY = void 0;
|
|
4
9
|
// push value
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
10
|
+
exports.OP_0 = 0x00;
|
|
11
|
+
exports.OP_FALSE = exports.OP_0;
|
|
12
|
+
exports.OP_PUSHDATA1 = 0x4c;
|
|
13
|
+
exports.OP_PUSHDATA2 = 0x4d;
|
|
14
|
+
exports.OP_PUSHDATA4 = 0x4e;
|
|
15
|
+
exports.OP_1NEGATE = 0x4f;
|
|
16
|
+
exports.OP_RESERVED = 0x50;
|
|
17
|
+
exports.OP_1 = 0x51;
|
|
18
|
+
exports.OP_TRUE = exports.OP_1;
|
|
19
|
+
exports.OP_2 = 0x52;
|
|
20
|
+
exports.OP_3 = 0x53;
|
|
21
|
+
exports.OP_4 = 0x54;
|
|
22
|
+
exports.OP_5 = 0x55;
|
|
23
|
+
exports.OP_6 = 0x56;
|
|
24
|
+
exports.OP_7 = 0x57;
|
|
25
|
+
exports.OP_8 = 0x58;
|
|
26
|
+
exports.OP_9 = 0x59;
|
|
27
|
+
exports.OP_10 = 0x5a;
|
|
28
|
+
exports.OP_11 = 0x5b;
|
|
29
|
+
exports.OP_12 = 0x5c;
|
|
30
|
+
exports.OP_13 = 0x5d;
|
|
31
|
+
exports.OP_14 = 0x5e;
|
|
32
|
+
exports.OP_15 = 0x5f;
|
|
33
|
+
exports.OP_16 = 0x60;
|
|
29
34
|
// control
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
exports.OP_NOP = 0x61;
|
|
36
|
+
exports.OP_VER = 0x62;
|
|
37
|
+
exports.OP_IF = 0x63;
|
|
38
|
+
exports.OP_NOTIF = 0x64;
|
|
39
|
+
exports.OP_VERIF = 0x65;
|
|
40
|
+
exports.OP_VERNOTIF = 0x66;
|
|
41
|
+
exports.OP_ELSE = 0x67;
|
|
42
|
+
exports.OP_ENDIF = 0x68;
|
|
43
|
+
exports.OP_VERIFY = 0x69;
|
|
44
|
+
exports.OP_RETURN = 0x6a;
|
|
40
45
|
// stack ops
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
exports.OP_TOALTSTACK = 0x6b;
|
|
47
|
+
exports.OP_FROMALTSTACK = 0x6c;
|
|
48
|
+
exports.OP_2DROP = 0x6d;
|
|
49
|
+
exports.OP_2DUP = 0x6e;
|
|
50
|
+
exports.OP_3DUP = 0x6f;
|
|
51
|
+
exports.OP_2OVER = 0x70;
|
|
52
|
+
exports.OP_2ROT = 0x71;
|
|
53
|
+
exports.OP_2SWAP = 0x72;
|
|
54
|
+
exports.OP_IFDUP = 0x73;
|
|
55
|
+
exports.OP_DEPTH = 0x74;
|
|
56
|
+
exports.OP_DROP = 0x75;
|
|
57
|
+
exports.OP_DUP = 0x76;
|
|
58
|
+
exports.OP_NIP = 0x77;
|
|
59
|
+
exports.OP_OVER = 0x78;
|
|
60
|
+
exports.OP_PICK = 0x79;
|
|
61
|
+
exports.OP_ROLL = 0x7a;
|
|
62
|
+
exports.OP_ROT = 0x7b;
|
|
63
|
+
exports.OP_SWAP = 0x7c;
|
|
64
|
+
exports.OP_TUCK = 0x7d;
|
|
60
65
|
// splice ops
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
exports.OP_CAT = 0x7e;
|
|
67
|
+
exports.OP_SPLIT = 0x7f; // after monolith upgrade (May 2018)
|
|
68
|
+
exports.OP_NUM2BIN = 0x80; // after monolith upgrade (May 2018)
|
|
69
|
+
exports.OP_BIN2NUM = 0x81; // after monolith upgrade (May 2018)
|
|
70
|
+
exports.OP_SIZE = 0x82;
|
|
66
71
|
// bit logic
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
exports.OP_INVERT = 0x83;
|
|
73
|
+
exports.OP_AND = 0x84;
|
|
74
|
+
exports.OP_OR = 0x85;
|
|
75
|
+
exports.OP_XOR = 0x86;
|
|
76
|
+
exports.OP_EQUAL = 0x87;
|
|
77
|
+
exports.OP_EQUALVERIFY = 0x88;
|
|
78
|
+
exports.OP_RESERVED1 = 0x89;
|
|
79
|
+
exports.OP_RESERVED2 = 0x8a;
|
|
75
80
|
// numeric
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
81
|
+
exports.OP_1ADD = 0x8b;
|
|
82
|
+
exports.OP_1SUB = 0x8c;
|
|
83
|
+
exports.OP_2MUL = 0x8d;
|
|
84
|
+
exports.OP_2DIV = 0x8e;
|
|
85
|
+
exports.OP_NEGATE = 0x8f;
|
|
86
|
+
exports.OP_ABS = 0x90;
|
|
87
|
+
exports.OP_NOT = 0x91;
|
|
88
|
+
exports.OP_0NOTEQUAL = 0x92;
|
|
89
|
+
exports.OP_ADD = 0x93;
|
|
90
|
+
exports.OP_SUB = 0x94;
|
|
91
|
+
exports.OP_MUL = 0x95;
|
|
92
|
+
exports.OP_DIV = 0x96;
|
|
93
|
+
exports.OP_MOD = 0x97;
|
|
94
|
+
exports.OP_LSHIFT = 0x98;
|
|
95
|
+
exports.OP_RSHIFT = 0x99;
|
|
96
|
+
exports.OP_BOOLAND = 0x9a;
|
|
97
|
+
exports.OP_BOOLOR = 0x9b;
|
|
98
|
+
exports.OP_NUMEQUAL = 0x9c;
|
|
99
|
+
exports.OP_NUMEQUALVERIFY = 0x9d;
|
|
100
|
+
exports.OP_NUMNOTEQUAL = 0x9e;
|
|
101
|
+
exports.OP_LESSTHAN = 0x9f;
|
|
102
|
+
exports.OP_GREATERTHAN = 0xa0;
|
|
103
|
+
exports.OP_LESSTHANOREQUAL = 0xa1;
|
|
104
|
+
exports.OP_GREATERTHANOREQUAL = 0xa2;
|
|
105
|
+
exports.OP_MIN = 0xa3;
|
|
106
|
+
exports.OP_MAX = 0xa4;
|
|
107
|
+
exports.OP_WITHIN = 0xa5;
|
|
103
108
|
// crypto
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
exports.OP_RIPEMD160 = 0xa6;
|
|
110
|
+
exports.OP_SHA1 = 0xa7;
|
|
111
|
+
exports.OP_SHA256 = 0xa8;
|
|
112
|
+
exports.OP_HASH160 = 0xa9;
|
|
113
|
+
exports.OP_HASH256 = 0xaa;
|
|
114
|
+
exports.OP_CODESEPARATOR = 0xab;
|
|
115
|
+
exports.OP_CHECKSIG = 0xac;
|
|
116
|
+
exports.OP_CHECKSIGVERIFY = 0xad;
|
|
117
|
+
exports.OP_CHECKMULTISIG = 0xae;
|
|
118
|
+
exports.OP_CHECKMULTISIGVERIFY = 0xaf;
|
|
114
119
|
// expansion
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
120
|
+
exports.OP_NOP1 = 0xb0;
|
|
121
|
+
exports.OP_CHECKLOCKTIMEVERIFY = 0xb1;
|
|
122
|
+
exports.OP_NOP2 = exports.OP_CHECKLOCKTIMEVERIFY;
|
|
123
|
+
exports.OP_CHECKSEQUENCEVERIFY = 0xb2;
|
|
124
|
+
exports.OP_NOP3 = exports.OP_CHECKSEQUENCEVERIFY;
|
|
125
|
+
exports.OP_NOP4 = 0xb3;
|
|
126
|
+
exports.OP_NOP5 = 0xb4;
|
|
127
|
+
exports.OP_NOP6 = 0xb5;
|
|
128
|
+
exports.OP_NOP7 = 0xb6;
|
|
129
|
+
exports.OP_NOP8 = 0xb7;
|
|
130
|
+
exports.OP_NOP9 = 0xb8;
|
|
131
|
+
exports.OP_NOP10 = 0xb9;
|
|
127
132
|
// More crypto
|
|
128
|
-
|
|
129
|
-
|
|
133
|
+
exports.OP_CHECKDATASIG = 0xba;
|
|
134
|
+
exports.OP_CHECKDATASIGVERIFY = 0xbb;
|
|
130
135
|
// additional byte string operations
|
|
131
|
-
|
|
136
|
+
exports.OP_REVERSEBYTES = 0xbc;
|
|
132
137
|
// multi-byte opcodes
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
138
|
+
exports.OP_PREFIX_BEGIN = 0xf0;
|
|
139
|
+
exports.OP_PREFIX_END = 0xf7;
|
|
140
|
+
exports.OP_INVALIDOPCODE = 0xff;
|
|
136
141
|
//# sourceMappingURL=opcode.js.map
|
package/dist/opcode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opcode.js","sourceRoot":"","sources":["../src/opcode.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"opcode.js","sourceRoot":"","sources":["../src/opcode.ts"],"names":[],"mappings":"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"}
|
package/dist/script.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare class Script {
|
|
|
11
11
|
* prepended.
|
|
12
12
|
**/
|
|
13
13
|
writeWithSize(writer: Writer): void;
|
|
14
|
+
static readWithSize(bytes: Bytes): Script;
|
|
14
15
|
/** Build a Script from the given Script Ops */
|
|
15
16
|
static fromOps(ops: Op[]): Script;
|
|
16
17
|
/** Iterate over the Ops of this Script */
|
package/dist/script.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,EAAE,EAAE,EAAgC,MAAM,SAAS,CAAC;AAS3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,gDAAgD;AAChD,qBAAa,MAAM;IACR,QAAQ,EAAE,UAAU,CAAC;IAE5B,2DAA2D;gBACxC,QAAQ,CAAC,EAAE,UAAU;IAIxC;;;QAGI;IACG,aAAa,CAAC,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,EAAE,EAAE,EAAgC,MAAM,SAAS,CAAC;AAS3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,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;IAcxC,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
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ScriptOpIter = exports.Script = void 0;
|
|
7
|
+
const varsize_js_1 = require("./io/varsize.js");
|
|
8
|
+
const writerlength_js_1 = require("./io/writerlength.js");
|
|
9
|
+
const writerbytes_js_1 = require("./io/writerbytes.js");
|
|
10
|
+
const op_js_1 = require("./op.js");
|
|
11
|
+
const opcode_js_1 = require("./opcode.js");
|
|
12
|
+
const bytes_js_1 = require("./io/bytes.js");
|
|
10
13
|
/** A Bitcoin Script locking/unlocking a UTXO */
|
|
11
|
-
|
|
14
|
+
class Script {
|
|
12
15
|
/** Create a new Script with the given bytecode or empty */
|
|
13
16
|
constructor(bytecode) {
|
|
14
17
|
this.bytecode = bytecode ?? new Uint8Array();
|
|
@@ -18,26 +21,30 @@ export class Script {
|
|
|
18
21
|
* prepended.
|
|
19
22
|
**/
|
|
20
23
|
writeWithSize(writer) {
|
|
21
|
-
writeVarSize(this.bytecode.length, writer);
|
|
24
|
+
(0, varsize_js_1.writeVarSize)(this.bytecode.length, writer);
|
|
22
25
|
writer.putBytes(this.bytecode);
|
|
23
26
|
}
|
|
27
|
+
static readWithSize(bytes) {
|
|
28
|
+
const size = (0, varsize_js_1.readVarSize)(bytes);
|
|
29
|
+
return new Script(bytes.readBytes(Number(size)));
|
|
30
|
+
}
|
|
24
31
|
/** Build a Script from the given Script Ops */
|
|
25
32
|
static fromOps(ops) {
|
|
26
33
|
let scriptSize = 0;
|
|
27
34
|
for (const op of ops) {
|
|
28
|
-
const writerLength = new WriterLength();
|
|
29
|
-
writeOp(op, writerLength);
|
|
35
|
+
const writerLength = new writerlength_js_1.WriterLength();
|
|
36
|
+
(0, op_js_1.writeOp)(op, writerLength);
|
|
30
37
|
scriptSize += writerLength.length;
|
|
31
38
|
}
|
|
32
|
-
const bytecodeWriter = new WriterBytes(scriptSize);
|
|
39
|
+
const bytecodeWriter = new writerbytes_js_1.WriterBytes(scriptSize);
|
|
33
40
|
for (const op of ops) {
|
|
34
|
-
writeOp(op, bytecodeWriter);
|
|
41
|
+
(0, op_js_1.writeOp)(op, bytecodeWriter);
|
|
35
42
|
}
|
|
36
43
|
return new Script(bytecodeWriter.data);
|
|
37
44
|
}
|
|
38
45
|
/** Iterate over the Ops of this Script */
|
|
39
46
|
ops() {
|
|
40
|
-
return new ScriptOpIter(new Bytes(this.bytecode));
|
|
47
|
+
return new ScriptOpIter(new bytes_js_1.Bytes(this.bytecode));
|
|
41
48
|
}
|
|
42
49
|
/** Create a deep copy of this Script */
|
|
43
50
|
copy() {
|
|
@@ -67,7 +74,7 @@ export class Script {
|
|
|
67
74
|
let op;
|
|
68
75
|
let nCodesepsFound = 0;
|
|
69
76
|
while ((op = ops.next()) !== undefined) {
|
|
70
|
-
if (op == OP_CODESEPARATOR) {
|
|
77
|
+
if (op == opcode_js_1.OP_CODESEPARATOR) {
|
|
71
78
|
if (nCodesepsFound == nCodesep) {
|
|
72
79
|
return new Script(this.bytecode.slice(ops.bytes.idx));
|
|
73
80
|
}
|
|
@@ -84,16 +91,16 @@ export class Script {
|
|
|
84
91
|
if (this.bytecode.length != 23) {
|
|
85
92
|
return false;
|
|
86
93
|
}
|
|
87
|
-
return (this.bytecode[0] == OP_HASH160 &&
|
|
94
|
+
return (this.bytecode[0] == opcode_js_1.OP_HASH160 &&
|
|
88
95
|
this.bytecode[1] == 20 &&
|
|
89
|
-
this.bytecode[22] == OP_EQUAL);
|
|
96
|
+
this.bytecode[22] == opcode_js_1.OP_EQUAL);
|
|
90
97
|
}
|
|
91
98
|
/** Build a P2SH script for the given script hash */
|
|
92
99
|
static p2sh(scriptHash) {
|
|
93
100
|
if (scriptHash.length !== 20) {
|
|
94
101
|
throw new Error(`scriptHash length must be 20, got ${scriptHash.length}`);
|
|
95
102
|
}
|
|
96
|
-
return Script.fromOps([OP_HASH160, pushBytesOp(scriptHash), OP_EQUAL]);
|
|
103
|
+
return Script.fromOps([opcode_js_1.OP_HASH160, (0, op_js_1.pushBytesOp)(scriptHash), opcode_js_1.OP_EQUAL]);
|
|
97
104
|
}
|
|
98
105
|
/** Build a P2PKH script for the given public key hash */
|
|
99
106
|
static p2pkh(pkh) {
|
|
@@ -101,20 +108,21 @@ export class Script {
|
|
|
101
108
|
throw new Error(`pkh length must be 20, got ${pkh.length}`);
|
|
102
109
|
}
|
|
103
110
|
return Script.fromOps([
|
|
104
|
-
OP_DUP,
|
|
105
|
-
OP_HASH160,
|
|
106
|
-
pushBytesOp(pkh),
|
|
107
|
-
OP_EQUALVERIFY,
|
|
108
|
-
OP_CHECKSIG,
|
|
111
|
+
opcode_js_1.OP_DUP,
|
|
112
|
+
opcode_js_1.OP_HASH160,
|
|
113
|
+
(0, op_js_1.pushBytesOp)(pkh),
|
|
114
|
+
opcode_js_1.OP_EQUALVERIFY,
|
|
115
|
+
opcode_js_1.OP_CHECKSIG,
|
|
109
116
|
]);
|
|
110
117
|
}
|
|
111
118
|
/** Build a scriptSig for spending a P2PKH output */
|
|
112
119
|
static p2pkhSpend(pk, sig) {
|
|
113
|
-
return Script.fromOps([pushBytesOp(sig), pushBytesOp(pk)]);
|
|
120
|
+
return Script.fromOps([(0, op_js_1.pushBytesOp)(sig), (0, op_js_1.pushBytesOp)(pk)]);
|
|
114
121
|
}
|
|
115
122
|
}
|
|
123
|
+
exports.Script = Script;
|
|
116
124
|
/** Iterator over the Ops of a Script. */
|
|
117
|
-
|
|
125
|
+
class ScriptOpIter {
|
|
118
126
|
constructor(bytes) {
|
|
119
127
|
this.bytes = bytes;
|
|
120
128
|
}
|
|
@@ -126,7 +134,8 @@ export class ScriptOpIter {
|
|
|
126
134
|
if (this.bytes.idx >= this.bytes.data.length) {
|
|
127
135
|
return undefined;
|
|
128
136
|
}
|
|
129
|
-
return readOp(this.bytes);
|
|
137
|
+
return (0, op_js_1.readOp)(this.bytes);
|
|
130
138
|
}
|
|
131
139
|
}
|
|
140
|
+
exports.ScriptOpIter = ScriptOpIter;
|
|
132
141
|
//# sourceMappingURL=script.js.map
|
package/dist/script.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
|
package/dist/sigHashType.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SINGLE_ANYONECANPAY_LEGACY = exports.SINGLE_LEGACY = exports.NONE_ANYONECANPAY_LEGACY = exports.NONE_LEGACY = exports.ALL_ANYONECANPAY_LEGACY = exports.ALL_LEGACY = exports.SINGLE_ANYONECANPAY_BIP143 = exports.SINGLE_BIP143 = exports.NONE_ANYONECANPAY_BIP143 = exports.NONE_BIP143 = exports.ALL_ANYONECANPAY_BIP143 = exports.ALL_BIP143 = exports.SigHashTypeOutputs = exports.SigHashTypeInputs = exports.SigHashTypeVariant = exports.SigHashType = void 0;
|
|
4
7
|
/** Type of sighash used to sign for an input for a OP_CHECKSIG operation. */
|
|
5
|
-
|
|
8
|
+
class SigHashType {
|
|
6
9
|
constructor(params) {
|
|
7
10
|
this.variant = params.variant;
|
|
8
11
|
this.inputType = params.inputType;
|
|
@@ -41,24 +44,25 @@ export class SigHashType {
|
|
|
41
44
|
return this.variant | this.inputType | this.outputType;
|
|
42
45
|
}
|
|
43
46
|
}
|
|
47
|
+
exports.SigHashType = SigHashType;
|
|
44
48
|
/** Variant of the sighash */
|
|
45
|
-
|
|
49
|
+
var SigHashTypeVariant;
|
|
46
50
|
(function (SigHashTypeVariant) {
|
|
47
51
|
/** Original Satoshi, pre-BIP143 sighash */
|
|
48
52
|
SigHashTypeVariant[SigHashTypeVariant["LEGACY"] = 0] = "LEGACY";
|
|
49
53
|
/** New BIP143 sighash introduced by UAHF */
|
|
50
54
|
SigHashTypeVariant[SigHashTypeVariant["BIP143"] = 64] = "BIP143";
|
|
51
|
-
})(SigHashTypeVariant || (SigHashTypeVariant = {}));
|
|
55
|
+
})(SigHashTypeVariant || (exports.SigHashTypeVariant = SigHashTypeVariant = {}));
|
|
52
56
|
/** How tx inputs are signed */
|
|
53
|
-
|
|
57
|
+
var SigHashTypeInputs;
|
|
54
58
|
(function (SigHashTypeInputs) {
|
|
55
59
|
/** Inputs are fixed, no other inputs can added/removeed */
|
|
56
60
|
SigHashTypeInputs[SigHashTypeInputs["FIXED"] = 0] = "FIXED";
|
|
57
61
|
/** Inputs are arbitrary, other inputs can be added/removed */
|
|
58
62
|
SigHashTypeInputs[SigHashTypeInputs["ANYONECANPAY"] = 128] = "ANYONECANPAY";
|
|
59
|
-
})(SigHashTypeInputs || (SigHashTypeInputs = {}));
|
|
63
|
+
})(SigHashTypeInputs || (exports.SigHashTypeInputs = SigHashTypeInputs = {}));
|
|
60
64
|
/** How tx outputs are signed */
|
|
61
|
-
|
|
65
|
+
var SigHashTypeOutputs;
|
|
62
66
|
(function (SigHashTypeOutputs) {
|
|
63
67
|
/** All outputs are signed, no outputs can be added/removed */
|
|
64
68
|
SigHashTypeOutputs[SigHashTypeOutputs["ALL"] = 1] = "ALL";
|
|
@@ -66,75 +70,75 @@ export var SigHashTypeOutputs;
|
|
|
66
70
|
SigHashTypeOutputs[SigHashTypeOutputs["NONE"] = 2] = "NONE";
|
|
67
71
|
/** The output with the identical index as this input is signed */
|
|
68
72
|
SigHashTypeOutputs[SigHashTypeOutputs["SINGLE"] = 3] = "SINGLE";
|
|
69
|
-
})(SigHashTypeOutputs || (SigHashTypeOutputs = {}));
|
|
73
|
+
})(SigHashTypeOutputs || (exports.SigHashTypeOutputs = SigHashTypeOutputs = {}));
|
|
70
74
|
/** ALL|BIP143 */
|
|
71
|
-
|
|
75
|
+
exports.ALL_BIP143 = new SigHashType({
|
|
72
76
|
variant: SigHashTypeVariant.BIP143,
|
|
73
77
|
inputType: SigHashTypeInputs.FIXED,
|
|
74
78
|
outputType: SigHashTypeOutputs.ALL,
|
|
75
79
|
});
|
|
76
80
|
/** ALL|ANYONECANPAY|BIP143 */
|
|
77
|
-
|
|
81
|
+
exports.ALL_ANYONECANPAY_BIP143 = new SigHashType({
|
|
78
82
|
variant: SigHashTypeVariant.BIP143,
|
|
79
83
|
inputType: SigHashTypeInputs.ANYONECANPAY,
|
|
80
84
|
outputType: SigHashTypeOutputs.ALL,
|
|
81
85
|
});
|
|
82
86
|
/** NONE|BIP143 */
|
|
83
|
-
|
|
87
|
+
exports.NONE_BIP143 = new SigHashType({
|
|
84
88
|
variant: SigHashTypeVariant.BIP143,
|
|
85
89
|
inputType: SigHashTypeInputs.FIXED,
|
|
86
90
|
outputType: SigHashTypeOutputs.NONE,
|
|
87
91
|
});
|
|
88
92
|
/** NONE|ANYONECANPAY|BIP143 */
|
|
89
|
-
|
|
93
|
+
exports.NONE_ANYONECANPAY_BIP143 = new SigHashType({
|
|
90
94
|
variant: SigHashTypeVariant.BIP143,
|
|
91
95
|
inputType: SigHashTypeInputs.ANYONECANPAY,
|
|
92
96
|
outputType: SigHashTypeOutputs.NONE,
|
|
93
97
|
});
|
|
94
98
|
/** SINGLE|BIP143 */
|
|
95
|
-
|
|
99
|
+
exports.SINGLE_BIP143 = new SigHashType({
|
|
96
100
|
variant: SigHashTypeVariant.BIP143,
|
|
97
101
|
inputType: SigHashTypeInputs.FIXED,
|
|
98
102
|
outputType: SigHashTypeOutputs.SINGLE,
|
|
99
103
|
});
|
|
100
104
|
/** SINGLE|ANYONECANPAY|BIP143 */
|
|
101
|
-
|
|
105
|
+
exports.SINGLE_ANYONECANPAY_BIP143 = new SigHashType({
|
|
102
106
|
variant: SigHashTypeVariant.BIP143,
|
|
103
107
|
inputType: SigHashTypeInputs.ANYONECANPAY,
|
|
104
108
|
outputType: SigHashTypeOutputs.SINGLE,
|
|
105
109
|
});
|
|
106
110
|
/** ALL|LEGACY */
|
|
107
|
-
|
|
111
|
+
exports.ALL_LEGACY = new SigHashType({
|
|
108
112
|
variant: SigHashTypeVariant.LEGACY,
|
|
109
113
|
inputType: SigHashTypeInputs.FIXED,
|
|
110
114
|
outputType: SigHashTypeOutputs.ALL,
|
|
111
115
|
});
|
|
112
116
|
/** ALL|ANYONECANPAY|LEGACY */
|
|
113
|
-
|
|
117
|
+
exports.ALL_ANYONECANPAY_LEGACY = new SigHashType({
|
|
114
118
|
variant: SigHashTypeVariant.LEGACY,
|
|
115
119
|
inputType: SigHashTypeInputs.ANYONECANPAY,
|
|
116
120
|
outputType: SigHashTypeOutputs.ALL,
|
|
117
121
|
});
|
|
118
122
|
/** NONE|LEGACY */
|
|
119
|
-
|
|
123
|
+
exports.NONE_LEGACY = new SigHashType({
|
|
120
124
|
variant: SigHashTypeVariant.LEGACY,
|
|
121
125
|
inputType: SigHashTypeInputs.FIXED,
|
|
122
126
|
outputType: SigHashTypeOutputs.NONE,
|
|
123
127
|
});
|
|
124
128
|
/** NONE|ANYONECANPAY|LEGACY */
|
|
125
|
-
|
|
129
|
+
exports.NONE_ANYONECANPAY_LEGACY = new SigHashType({
|
|
126
130
|
variant: SigHashTypeVariant.LEGACY,
|
|
127
131
|
inputType: SigHashTypeInputs.ANYONECANPAY,
|
|
128
132
|
outputType: SigHashTypeOutputs.NONE,
|
|
129
133
|
});
|
|
130
134
|
/** SINGLE|LEGACY */
|
|
131
|
-
|
|
135
|
+
exports.SINGLE_LEGACY = new SigHashType({
|
|
132
136
|
variant: SigHashTypeVariant.LEGACY,
|
|
133
137
|
inputType: SigHashTypeInputs.FIXED,
|
|
134
138
|
outputType: SigHashTypeOutputs.SINGLE,
|
|
135
139
|
});
|
|
136
140
|
/** SINGLE|ANYONECANPAY|LEGACY */
|
|
137
|
-
|
|
141
|
+
exports.SINGLE_ANYONECANPAY_LEGACY = new SigHashType({
|
|
138
142
|
variant: SigHashTypeVariant.LEGACY,
|
|
139
143
|
inputType: SigHashTypeInputs.ANYONECANPAY,
|
|
140
144
|
outputType: SigHashTypeOutputs.SINGLE,
|
package/dist/sigHashType.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sigHashType.js","sourceRoot":"","sources":["../src/sigHashType.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"sigHashType.js","sourceRoot":"","sources":["../src/sigHashType.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testRunner.d.ts","sourceRoot":"","sources":["../../src/test/testRunner.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"testRunner.d.ts","sourceRoot":"","sources":["../../src/test/testRunner.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAKhC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAM,MAAM,UAAU,CAAC;AAUxC,qBAAa,UAAU;IACZ,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAClC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO;WAYa,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAkFnC,UAAU,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAgCT,WAAW,IAAI,QAAQ;IAUjB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclE,QAAQ;IAIR,IAAI;CAGd"}
|