ecash-lib 0.2.0-rc → 0.2.1

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 (187) hide show
  1. package/README.md +80 -15
  2. package/dist/{src/ecc.d.ts → ecc.d.ts} +6 -2
  3. package/dist/ecc.d.ts.map +1 -0
  4. package/dist/{src/ecc.js → ecc.js} +9 -6
  5. package/dist/ecc.js.map +1 -0
  6. package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  7. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  8. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm.d.ts +16 -0
  9. package/dist/ffi/{ecash_lib_wasm.js → ecash_lib_wasm_browser.js} +1 -1
  10. package/dist/ffi/ecash_lib_wasm_nodejs.d.ts +50 -0
  11. package/dist/ffi/ecash_lib_wasm_nodejs.js +265 -0
  12. package/dist/hash.d.ts +11 -0
  13. package/dist/hash.d.ts.map +1 -0
  14. package/dist/hash.js +24 -0
  15. package/dist/hash.js.map +1 -0
  16. package/dist/{src/index.d.ts → index.d.ts} +5 -1
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +41 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/indexBrowser.d.ts +3 -0
  21. package/dist/indexBrowser.d.ts.map +1 -0
  22. package/dist/indexBrowser.js +22 -0
  23. package/dist/indexBrowser.js.map +1 -0
  24. package/dist/indexNodeJs.d.ts +3 -0
  25. package/dist/indexNodeJs.d.ts.map +1 -0
  26. package/dist/indexNodeJs.js +22 -0
  27. package/dist/indexNodeJs.js.map +1 -0
  28. package/dist/initBrowser.d.ts +3 -0
  29. package/dist/initBrowser.d.ts.map +1 -0
  30. package/dist/initBrowser.js +44 -0
  31. package/dist/initBrowser.js.map +1 -0
  32. package/dist/initNodeJs.d.ts +3 -0
  33. package/dist/initNodeJs.d.ts.map +1 -0
  34. package/dist/initNodeJs.js +43 -0
  35. package/dist/initNodeJs.js.map +1 -0
  36. package/dist/io/bytes.d.ts.map +1 -0
  37. package/dist/{src/io → io}/bytes.js +5 -1
  38. package/dist/io/bytes.js.map +1 -0
  39. package/dist/io/hex.d.ts.map +1 -0
  40. package/dist/{src/io → io}/hex.js +11 -4
  41. package/dist/io/hex.js.map +1 -0
  42. package/dist/io/int.d.ts.map +1 -0
  43. package/dist/{src/io → io}/int.js +2 -1
  44. package/dist/io/int.js.map +1 -0
  45. package/dist/io/str.d.ts +5 -0
  46. package/dist/io/str.d.ts.map +1 -0
  47. package/dist/io/str.js +19 -0
  48. package/dist/io/str.js.map +1 -0
  49. package/dist/io/varsize.d.ts.map +1 -0
  50. package/dist/{src/io → io}/varsize.js +7 -2
  51. package/dist/io/varsize.js.map +1 -0
  52. package/dist/io/writer.d.ts.map +1 -0
  53. package/dist/{src/io → io}/writer.js +2 -1
  54. package/dist/io/writer.js.map +1 -0
  55. package/dist/io/writerbytes.d.ts.map +1 -0
  56. package/dist/{src/io → io}/writerbytes.js +5 -1
  57. package/dist/io/writerbytes.js.map +1 -0
  58. package/dist/io/writerlength.d.ts.map +1 -0
  59. package/dist/{src/io → io}/writerlength.js +5 -1
  60. package/dist/io/writerlength.js.map +1 -0
  61. package/dist/{src/op.d.ts → op.d.ts} +6 -0
  62. package/dist/op.d.ts.map +1 -0
  63. package/dist/{src/op.js → op.js} +57 -16
  64. package/dist/op.js.map +1 -0
  65. package/dist/opcode.d.ts.map +1 -0
  66. package/dist/opcode.js +141 -0
  67. package/dist/opcode.js.map +1 -0
  68. package/dist/{src/script.d.ts → script.d.ts} +2 -0
  69. package/dist/script.d.ts.map +1 -0
  70. package/dist/script.js +196 -0
  71. package/dist/script.js.map +1 -0
  72. package/dist/sigHashType.d.ts.map +1 -0
  73. package/dist/{src/sigHashType.js → sigHashType.js} +23 -19
  74. package/dist/sigHashType.js.map +1 -0
  75. package/dist/test/testRunner.d.ts +21 -0
  76. package/dist/test/testRunner.d.ts.map +1 -0
  77. package/dist/test/testRunner.js +171 -0
  78. package/dist/test/testRunner.js.map +1 -0
  79. package/dist/token/alp.d.ts.map +1 -0
  80. package/dist/token/alp.js +117 -0
  81. package/dist/token/alp.js.map +1 -0
  82. package/dist/{src/token → token}/common.d.ts +4 -0
  83. package/dist/token/common.d.ts.map +1 -0
  84. package/dist/token/common.js +12 -0
  85. package/dist/token/common.js.map +1 -0
  86. package/dist/token/empp.d.ts.map +1 -0
  87. package/dist/{src/token → token}/empp.js +13 -9
  88. package/dist/token/empp.js.map +1 -0
  89. package/dist/token/slp.d.ts +35 -0
  90. package/dist/token/slp.d.ts.map +1 -0
  91. package/dist/token/slp.js +172 -0
  92. package/dist/token/slp.js.map +1 -0
  93. package/dist/{src/tx.d.ts → tx.d.ts} +4 -0
  94. package/dist/tx.d.ts.map +1 -0
  95. package/dist/{src/tx.js → tx.js} +40 -20
  96. package/dist/tx.js.map +1 -0
  97. package/dist/txBuilder.d.ts.map +1 -0
  98. package/dist/{src/txBuilder.js → txBuilder.js} +51 -45
  99. package/dist/txBuilder.js.map +1 -0
  100. package/dist/unsignedTx.d.ts.map +1 -0
  101. package/dist/{src/unsignedTx.js → unsignedTx.js} +34 -29
  102. package/dist/unsignedTx.js.map +1 -0
  103. package/package.json +9 -6
  104. package/tsconfig.build.json +13 -0
  105. package/tsconfig.json +4 -7
  106. package/.nyc_output/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  107. package/.nyc_output/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  108. package/.nyc_output/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  109. package/.nyc_output/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  110. package/.nyc_output/processinfo/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  111. package/.nyc_output/processinfo/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  112. package/.nyc_output/processinfo/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  113. package/.nyc_output/processinfo/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  114. package/.nyc_output/processinfo/index.json +0 -1
  115. package/dist/ffi/ecash_lib_wasm_bg.wasm +0 -0
  116. package/dist/src/ecc.d.ts.map +0 -1
  117. package/dist/src/ecc.js.map +0 -1
  118. package/dist/src/hash.d.ts +0 -5
  119. package/dist/src/hash.d.ts.map +0 -1
  120. package/dist/src/hash.js +0 -8
  121. package/dist/src/hash.js.map +0 -1
  122. package/dist/src/index.d.ts.map +0 -1
  123. package/dist/src/index.js +0 -21
  124. package/dist/src/index.js.map +0 -1
  125. package/dist/src/init.d.ts +0 -3
  126. package/dist/src/init.d.ts.map +0 -1
  127. package/dist/src/init.js +0 -18
  128. package/dist/src/init.js.map +0 -1
  129. package/dist/src/io/bytes.d.ts.map +0 -1
  130. package/dist/src/io/bytes.js.map +0 -1
  131. package/dist/src/io/hex.d.ts.map +0 -1
  132. package/dist/src/io/hex.js.map +0 -1
  133. package/dist/src/io/int.d.ts.map +0 -1
  134. package/dist/src/io/int.js.map +0 -1
  135. package/dist/src/io/str.d.ts +0 -3
  136. package/dist/src/io/str.d.ts.map +0 -1
  137. package/dist/src/io/str.js +0 -9
  138. package/dist/src/io/str.js.map +0 -1
  139. package/dist/src/io/varsize.d.ts.map +0 -1
  140. package/dist/src/io/varsize.js.map +0 -1
  141. package/dist/src/io/writer.d.ts.map +0 -1
  142. package/dist/src/io/writer.js.map +0 -1
  143. package/dist/src/io/writerbytes.d.ts.map +0 -1
  144. package/dist/src/io/writerbytes.js.map +0 -1
  145. package/dist/src/io/writerlength.d.ts.map +0 -1
  146. package/dist/src/io/writerlength.js.map +0 -1
  147. package/dist/src/op.d.ts.map +0 -1
  148. package/dist/src/op.js.map +0 -1
  149. package/dist/src/opcode.d.ts.map +0 -1
  150. package/dist/src/opcode.js +0 -136
  151. package/dist/src/opcode.js.map +0 -1
  152. package/dist/src/script.d.ts.map +0 -1
  153. package/dist/src/script.js +0 -132
  154. package/dist/src/script.js.map +0 -1
  155. package/dist/src/sigHashType.d.ts.map +0 -1
  156. package/dist/src/sigHashType.js.map +0 -1
  157. package/dist/src/token/alp.d.ts.map +0 -1
  158. package/dist/src/token/alp.js +0 -110
  159. package/dist/src/token/alp.js.map +0 -1
  160. package/dist/src/token/common.d.ts.map +0 -1
  161. package/dist/src/token/common.js +0 -9
  162. package/dist/src/token/common.js.map +0 -1
  163. package/dist/src/token/empp.d.ts.map +0 -1
  164. package/dist/src/token/empp.js.map +0 -1
  165. package/dist/src/tx.d.ts.map +0 -1
  166. package/dist/src/tx.js.map +0 -1
  167. package/dist/src/txBuilder.d.ts.map +0 -1
  168. package/dist/src/txBuilder.js.map +0 -1
  169. package/dist/src/unsignedTx.d.ts.map +0 -1
  170. package/dist/src/unsignedTx.js.map +0 -1
  171. package/tests/alp.test.ts +0 -515
  172. package/tests/txBuilder.test.ts +0 -680
  173. /package/dist/ffi/{ecash_lib_wasm_bg.wasm.d.ts → ecash_lib_wasm_bg_browser.wasm.d.ts} +0 -0
  174. /package/dist/ffi/{ecash_lib_wasm.d.ts → ecash_lib_wasm_browser.d.ts} +0 -0
  175. /package/dist/{src/io → io}/bytes.d.ts +0 -0
  176. /package/dist/{src/io → io}/hex.d.ts +0 -0
  177. /package/dist/{src/io → io}/int.d.ts +0 -0
  178. /package/dist/{src/io → io}/varsize.d.ts +0 -0
  179. /package/dist/{src/io → io}/writer.d.ts +0 -0
  180. /package/dist/{src/io → io}/writerbytes.d.ts +0 -0
  181. /package/dist/{src/io → io}/writerlength.d.ts +0 -0
  182. /package/dist/{src/opcode.d.ts → opcode.d.ts} +0 -0
  183. /package/dist/{src/sigHashType.d.ts → sigHashType.d.ts} +0 -0
  184. /package/dist/{src/token → token}/alp.d.ts +0 -0
  185. /package/dist/{src/token → token}/empp.d.ts +0 -0
  186. /package/dist/{src/txBuilder.d.ts → txBuilder.d.ts} +0 -0
  187. /package/dist/{src/unsignedTx.d.ts → unsignedTx.d.ts} +0 -0
package/dist/opcode.js ADDED
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ // Copyright (c) 2024 The Bitcoin developers
3
+ // Distributed under the MIT software license, see the accompanying
4
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.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;
9
+ // push value
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;
34
+ // control
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;
45
+ // stack ops
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;
65
+ // splice ops
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;
71
+ // bit logic
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;
80
+ // numeric
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;
108
+ // crypto
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;
119
+ // expansion
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;
132
+ // More crypto
133
+ exports.OP_CHECKDATASIG = 0xba;
134
+ exports.OP_CHECKDATASIGVERIFY = 0xbb;
135
+ // additional byte string operations
136
+ exports.OP_REVERSEBYTES = 0xbc;
137
+ // multi-byte opcodes
138
+ exports.OP_PREFIX_BEGIN = 0xf0;
139
+ exports.OP_PREFIX_END = 0xf7;
140
+ exports.OP_INVALIDOPCODE = 0xff;
141
+ //# sourceMappingURL=opcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opcode.js","sourceRoot":"","sources":["../src/opcode.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,10 @@ 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;
17
+ static fromAddress(address: string): Script;
16
18
  /** Iterate over the Ops of this Script */
17
19
  ops(): ScriptOpIter;
18
20
  /** Create a deep copy of this Script */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,OAAO,EAAE,EAAE,EAAgC,MAAM,SAAS,CAAC;AAS3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,gDAAgD;AAChD,qBAAa,MAAM;IACR,QAAQ,EAAE,UAAU,CAAC;IAE5B,2DAA2D;gBACxC,QAAQ,CAAC,EAAE,UAAU;IAIxC;;;QAGI;IACG,aAAa,CAAC,MAAM,EAAE,MAAM;WAKrB,YAAY,CAAC,KAAK,EAAE,KAAK;IAKvC,+CAA+C;WACjC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,MAAM;WAc1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkClD,0CAA0C;IACnC,GAAG,IAAI,YAAY;IAI1B,wCAAwC;IACjC,IAAI,IAAI,MAAM;IAIrB;;;;;;;;;;;;;;;;;;OAkBG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAe9C;;;QAGI;IACG,MAAM,IAAI,OAAO;IAWxB,oDAAoD;WACtC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IASlD,yDAAyD;WAC3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAa5C,oDAAoD;WACtC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;CAGpE;AAED,yCAAyC;AACzC,qBAAa,YAAY;IACrB,KAAK,EAAE,KAAK,CAAC;gBAEM,KAAK,EAAE,KAAK;IAI/B;;;OAGG;IACI,IAAI,IAAI,EAAE,GAAG,SAAS;CAMhC"}
package/dist/script.js ADDED
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ // Copyright (c) 2024 The Bitcoin developers
3
+ // Distributed under the MIT software license, see the accompanying
4
+ // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ScriptOpIter = exports.Script = void 0;
30
+ const varsize_js_1 = require("./io/varsize.js");
31
+ const writerlength_js_1 = require("./io/writerlength.js");
32
+ const writerbytes_js_1 = require("./io/writerbytes.js");
33
+ const op_js_1 = require("./op.js");
34
+ const opcode_js_1 = require("./opcode.js");
35
+ const bytes_js_1 = require("./io/bytes.js");
36
+ const cashaddr = __importStar(require("ecashaddrjs"));
37
+ /** A Bitcoin Script locking/unlocking a UTXO */
38
+ class Script {
39
+ /** Create a new Script with the given bytecode or empty */
40
+ constructor(bytecode) {
41
+ this.bytecode = bytecode ?? new Uint8Array();
42
+ }
43
+ /**
44
+ * Write the script to the writer with the script size as VARINT
45
+ * prepended.
46
+ **/
47
+ writeWithSize(writer) {
48
+ (0, varsize_js_1.writeVarSize)(this.bytecode.length, writer);
49
+ writer.putBytes(this.bytecode);
50
+ }
51
+ static readWithSize(bytes) {
52
+ const size = (0, varsize_js_1.readVarSize)(bytes);
53
+ return new Script(bytes.readBytes(Number(size)));
54
+ }
55
+ /** Build a Script from the given Script Ops */
56
+ static fromOps(ops) {
57
+ let scriptSize = 0;
58
+ for (const op of ops) {
59
+ const writerLength = new writerlength_js_1.WriterLength();
60
+ (0, op_js_1.writeOp)(op, writerLength);
61
+ scriptSize += writerLength.length;
62
+ }
63
+ const bytecodeWriter = new writerbytes_js_1.WriterBytes(scriptSize);
64
+ for (const op of ops) {
65
+ (0, op_js_1.writeOp)(op, bytecodeWriter);
66
+ }
67
+ return new Script(bytecodeWriter.data);
68
+ }
69
+ static fromAddress(address) {
70
+ // Note that hash is always returned as a string when decode is called with 'true'
71
+ let decodedAddress;
72
+ try {
73
+ decodedAddress = cashaddr.decode(address, false);
74
+ }
75
+ catch (err) {
76
+ throw new Error(`Error decoding address "${address}": ${err}`);
77
+ }
78
+ if (typeof decodedAddress.hash !== 'string') {
79
+ // cashaddr.decode returns hash as string | uint8array
80
+ // When called with chronikReady=false param, hash is always returned as a uint8array
81
+ // typescript does not know this though so we need this gate to prevent an error
82
+ switch (decodedAddress.type) {
83
+ case 'P2PKH': {
84
+ return Script.p2pkh(decodedAddress.hash);
85
+ }
86
+ case 'P2SH': {
87
+ return Script.p2sh(decodedAddress.hash);
88
+ }
89
+ default: {
90
+ // Note we should never get here, as ecashaddrjs decode method
91
+ // only supports p2pkh and p2sh
92
+ throw new Error(`Unsupported address type: ${decodedAddress.type}`);
93
+ }
94
+ }
95
+ }
96
+ // Note we should never get here, as ecashaddrjs decode method
97
+ // always returns hash as a Uint8Array when called with (<addr>, false)
98
+ throw new Error(`Error decoding address "${address}"`);
99
+ }
100
+ /** Iterate over the Ops of this Script */
101
+ ops() {
102
+ return new ScriptOpIter(new bytes_js_1.Bytes(this.bytecode));
103
+ }
104
+ /** Create a deep copy of this Script */
105
+ copy() {
106
+ return new Script(new Uint8Array(this.bytecode));
107
+ }
108
+ /**
109
+ * Find the n-th OP_CODESEPARATOR (0-based) and cut out the bytecode
110
+ * following it. Required for signing BIP143 scripts that have an
111
+ * OP_CODESEPARATOR.
112
+ *
113
+ * Throw an error if the n-th OP_CODESEPARATOR doesn't exist.
114
+ *
115
+ * Historically this opcode has been seen as obscure and useless, but in
116
+ * BIP143 sighash-based covenants, basically every covenant benefits from
117
+ * its usage, by trimming down the sighash preimage size and thus tx size.
118
+ *
119
+ * Really long Scripts will have a big BIP143 preimage, which costs precious
120
+ * bytes (and the preimage might even go over the 520 pushdata limit).
121
+ * This can be trimmed down to just one single byte by ending the covenant
122
+ * in `... OP_CODESEPARATOR OP_CHECKSIG`, in which case the BIP143 signature
123
+ * algo will cut out everything after the OP_CODESEPARATOR, so only the
124
+ * OP_CHECKSIG remains.
125
+ * If the covenant bytecode is 520 or so, this would save 519 bytes.
126
+ */
127
+ cutOutCodesep(nCodesep) {
128
+ const ops = this.ops();
129
+ let op;
130
+ let nCodesepsFound = 0;
131
+ while ((op = ops.next()) !== undefined) {
132
+ if (op == opcode_js_1.OP_CODESEPARATOR) {
133
+ if (nCodesepsFound == nCodesep) {
134
+ return new Script(this.bytecode.slice(ops.bytes.idx));
135
+ }
136
+ nCodesepsFound++;
137
+ }
138
+ }
139
+ throw new Error('OP_CODESEPARATOR not found');
140
+ }
141
+ /**
142
+ * Whether the Script is a P2SH Script.
143
+ * Matches CScript::IsPayToScriptHash in /src/script/script.h.
144
+ **/
145
+ isP2sh() {
146
+ if (this.bytecode.length != 23) {
147
+ return false;
148
+ }
149
+ return (this.bytecode[0] == opcode_js_1.OP_HASH160 &&
150
+ this.bytecode[1] == 20 &&
151
+ this.bytecode[22] == opcode_js_1.OP_EQUAL);
152
+ }
153
+ /** Build a P2SH script for the given script hash */
154
+ static p2sh(scriptHash) {
155
+ if (scriptHash.length !== 20) {
156
+ throw new Error(`scriptHash length must be 20, got ${scriptHash.length}`);
157
+ }
158
+ return Script.fromOps([opcode_js_1.OP_HASH160, (0, op_js_1.pushBytesOp)(scriptHash), opcode_js_1.OP_EQUAL]);
159
+ }
160
+ /** Build a P2PKH script for the given public key hash */
161
+ static p2pkh(pkh) {
162
+ if (pkh.length !== 20) {
163
+ throw new Error(`pkh length must be 20, got ${pkh.length}`);
164
+ }
165
+ return Script.fromOps([
166
+ opcode_js_1.OP_DUP,
167
+ opcode_js_1.OP_HASH160,
168
+ (0, op_js_1.pushBytesOp)(pkh),
169
+ opcode_js_1.OP_EQUALVERIFY,
170
+ opcode_js_1.OP_CHECKSIG,
171
+ ]);
172
+ }
173
+ /** Build a scriptSig for spending a P2PKH output */
174
+ static p2pkhSpend(pk, sig) {
175
+ return Script.fromOps([(0, op_js_1.pushBytesOp)(sig), (0, op_js_1.pushBytesOp)(pk)]);
176
+ }
177
+ }
178
+ exports.Script = Script;
179
+ /** Iterator over the Ops of a Script. */
180
+ class ScriptOpIter {
181
+ constructor(bytes) {
182
+ this.bytes = bytes;
183
+ }
184
+ /**
185
+ * Read the next Op and return it, or `undefined` if there are no more Ops.
186
+ * Throws an error if reading the next op failed.
187
+ */
188
+ next() {
189
+ if (this.bytes.idx >= this.bytes.data.length) {
190
+ return undefined;
191
+ }
192
+ return (0, op_js_1.readOp)(this.bytes);
193
+ }
194
+ }
195
+ exports.ScriptOpIter = ScriptOpIter;
196
+ //# sourceMappingURL=script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigHashType.d.ts","sourceRoot":"","sources":["../src/sigHashType.ts"],"names":[],"mappings":"AAIA,6EAA6E;AAC7E,qBAAa,WAAW;IACpB,oDAAoD;IAC7C,OAAO,EAAE,kBAAkB,CAAC;IACnC,wDAAwD;IACjD,SAAS,EAAE,iBAAiB,CAAC;IACpC,uDAAuD;IAChD,UAAU,EAAE,kBAAkB,CAAC;gBAEnB,MAAM,EAAE;QACvB,OAAO,EAAE,kBAAkB,CAAC;QAC5B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,UAAU,EAAE,kBAAkB,CAAC;KAClC;IAMD,+CAA+C;WACjC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IA+B7D,4CAA4C;IACrC,KAAK,IAAI,MAAM;CAGzB;AAED,6BAA6B;AAC7B,oBAAY,kBAAkB;IAC1B,2CAA2C;IAC3C,MAAM,IAAI;IACV,4CAA4C;IAC5C,MAAM,KAAO;CAChB;AAED,+BAA+B;AAC/B,oBAAY,iBAAiB;IACzB,2DAA2D;IAC3D,KAAK,IAAI;IACT,8DAA8D;IAC9D,YAAY,MAAO;CACtB;AAED,gCAAgC;AAChC,oBAAY,kBAAkB;IAC1B,8DAA8D;IAC9D,GAAG,IAAI;IACP,kDAAkD;IAClD,IAAI,IAAI;IACR,kEAAkE;IAClE,MAAM,IAAI;CACb;AAED,iBAAiB;AACjB,eAAO,MAAM,UAAU,EAAE,WAIvB,CAAC;AAEH,8BAA8B;AAC9B,eAAO,MAAM,uBAAuB,EAAE,WAIpC,CAAC;AAEH,kBAAkB;AAClB,eAAO,MAAM,WAAW,EAAE,WAIxB,CAAC;AAEH,+BAA+B;AAC/B,eAAO,MAAM,wBAAwB,EAAE,WAIrC,CAAC;AAEH,oBAAoB;AACpB,eAAO,MAAM,aAAa,EAAE,WAI1B,CAAC;AAEH,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,EAAE,WAIvC,CAAC;AAEH,iBAAiB;AACjB,eAAO,MAAM,UAAU,EAAE,WAIvB,CAAC;AAEH,8BAA8B;AAC9B,eAAO,MAAM,uBAAuB,EAAE,WAIpC,CAAC;AAEH,kBAAkB;AAClB,eAAO,MAAM,WAAW,EAAE,WAIxB,CAAC;AAEH,+BAA+B;AAC/B,eAAO,MAAM,wBAAwB,EAAE,WAIrC,CAAC;AAEH,oBAAoB;AACpB,eAAO,MAAM,aAAa,EAAE,WAI1B,CAAC;AAEH,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,EAAE,WAIvC,CAAC"}
@@ -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
- export class SigHashType {
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
- export var SigHashTypeVariant;
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
- export var SigHashTypeInputs;
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
- export var SigHashTypeOutputs;
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
- export const ALL_BIP143 = new SigHashType({
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
- export const ALL_ANYONECANPAY_BIP143 = new SigHashType({
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
- export const NONE_BIP143 = new SigHashType({
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
- export const NONE_ANYONECANPAY_BIP143 = new SigHashType({
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
- export const SINGLE_BIP143 = new SigHashType({
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
- export const SINGLE_ANYONECANPAY_BIP143 = new SigHashType({
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
- export const ALL_LEGACY = new SigHashType({
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
- export const ALL_ANYONECANPAY_LEGACY = new SigHashType({
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
- export const NONE_LEGACY = new SigHashType({
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
- export const NONE_ANYONECANPAY_LEGACY = new SigHashType({
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
- export const SINGLE_LEGACY = new SigHashType({
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
- export const SINGLE_ANYONECANPAY_LEGACY = new SigHashType({
141
+ exports.SINGLE_ANYONECANPAY_LEGACY = new SigHashType({
138
142
  variant: SigHashTypeVariant.LEGACY,
139
143
  inputType: SigHashTypeInputs.ANYONECANPAY,
140
144
  outputType: SigHashTypeOutputs.SINGLE,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigHashType.js","sourceRoot":"","sources":["../src/sigHashType.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import type { ChronikClient } from 'chronik-client';
3
+ import type { ChildProcess } from 'node:child_process';
4
+ import { Ecc } from '../ecc.js';
5
+ import { Script } from '../script.js';
6
+ import { OutPoint } from '../tx.js';
7
+ export declare class TestRunner {
8
+ ecc: Ecc;
9
+ runner: ChildProcess;
10
+ chronik: ChronikClient;
11
+ private coinsTxid;
12
+ private lastUsedOutIdx;
13
+ private constructor();
14
+ static setup(): Promise<TestRunner>;
15
+ setupCoins(numCoins: number, coinValue: number): Promise<void>;
16
+ getOutpoint(): OutPoint;
17
+ sendToScript(value: number, script: Script): Promise<string>;
18
+ generate(): void;
19
+ stop(): void;
20
+ }
21
+ //# sourceMappingURL=testRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testRunner.d.ts","sourceRoot":"","sources":["../../src/test/testRunner.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,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,aAAa,CAAC;IAC9B,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"}