ecash-lib 0.2.0-rc → 0.2.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.
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/op.d.ts.map +1 -0
  62. package/dist/{src/op.js → op.js} +23 -16
  63. package/dist/op.js.map +1 -0
  64. package/dist/opcode.d.ts.map +1 -0
  65. package/dist/opcode.js +141 -0
  66. package/dist/opcode.js.map +1 -0
  67. package/dist/{src/script.d.ts → script.d.ts} +2 -0
  68. package/dist/script.d.ts.map +1 -0
  69. package/dist/script.js +196 -0
  70. package/dist/script.js.map +1 -0
  71. package/dist/sigHashType.d.ts.map +1 -0
  72. package/dist/{src/sigHashType.js → sigHashType.js} +23 -19
  73. package/dist/sigHashType.js.map +1 -0
  74. package/dist/test/testRunner.d.ts +21 -0
  75. package/dist/test/testRunner.d.ts.map +1 -0
  76. package/dist/test/testRunner.js +171 -0
  77. package/dist/test/testRunner.js.map +1 -0
  78. package/dist/token/alp.d.ts.map +1 -0
  79. package/dist/token/alp.js +117 -0
  80. package/dist/token/alp.js.map +1 -0
  81. package/dist/{src/token → token}/common.d.ts +4 -0
  82. package/dist/token/common.d.ts.map +1 -0
  83. package/dist/token/common.js +12 -0
  84. package/dist/token/common.js.map +1 -0
  85. package/dist/token/empp.d.ts.map +1 -0
  86. package/dist/{src/token → token}/empp.js +13 -9
  87. package/dist/token/empp.js.map +1 -0
  88. package/dist/token/slp.d.ts +35 -0
  89. package/dist/token/slp.d.ts.map +1 -0
  90. package/dist/token/slp.js +172 -0
  91. package/dist/token/slp.js.map +1 -0
  92. package/dist/{src/tx.d.ts → tx.d.ts} +4 -0
  93. package/dist/tx.d.ts.map +1 -0
  94. package/dist/{src/tx.js → tx.js} +40 -20
  95. package/dist/tx.js.map +1 -0
  96. package/dist/txBuilder.d.ts.map +1 -0
  97. package/dist/{src/txBuilder.js → txBuilder.js} +36 -25
  98. package/dist/txBuilder.js.map +1 -0
  99. package/dist/unsignedTx.d.ts.map +1 -0
  100. package/dist/{src/unsignedTx.js → unsignedTx.js} +34 -29
  101. package/dist/unsignedTx.js.map +1 -0
  102. package/package.json +7 -4
  103. package/tsconfig.build.json +13 -0
  104. package/tsconfig.json +4 -7
  105. package/.nyc_output/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  106. package/.nyc_output/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  107. package/.nyc_output/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  108. package/.nyc_output/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  109. package/.nyc_output/processinfo/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  110. package/.nyc_output/processinfo/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  111. package/.nyc_output/processinfo/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  112. package/.nyc_output/processinfo/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  113. package/.nyc_output/processinfo/index.json +0 -1
  114. package/dist/ffi/ecash_lib_wasm_bg.wasm +0 -0
  115. package/dist/src/ecc.d.ts.map +0 -1
  116. package/dist/src/ecc.js.map +0 -1
  117. package/dist/src/hash.d.ts +0 -5
  118. package/dist/src/hash.d.ts.map +0 -1
  119. package/dist/src/hash.js +0 -8
  120. package/dist/src/hash.js.map +0 -1
  121. package/dist/src/index.d.ts.map +0 -1
  122. package/dist/src/index.js +0 -21
  123. package/dist/src/index.js.map +0 -1
  124. package/dist/src/init.d.ts +0 -3
  125. package/dist/src/init.d.ts.map +0 -1
  126. package/dist/src/init.js +0 -18
  127. package/dist/src/init.js.map +0 -1
  128. package/dist/src/io/bytes.d.ts.map +0 -1
  129. package/dist/src/io/bytes.js.map +0 -1
  130. package/dist/src/io/hex.d.ts.map +0 -1
  131. package/dist/src/io/hex.js.map +0 -1
  132. package/dist/src/io/int.d.ts.map +0 -1
  133. package/dist/src/io/int.js.map +0 -1
  134. package/dist/src/io/str.d.ts +0 -3
  135. package/dist/src/io/str.d.ts.map +0 -1
  136. package/dist/src/io/str.js +0 -9
  137. package/dist/src/io/str.js.map +0 -1
  138. package/dist/src/io/varsize.d.ts.map +0 -1
  139. package/dist/src/io/varsize.js.map +0 -1
  140. package/dist/src/io/writer.d.ts.map +0 -1
  141. package/dist/src/io/writer.js.map +0 -1
  142. package/dist/src/io/writerbytes.d.ts.map +0 -1
  143. package/dist/src/io/writerbytes.js.map +0 -1
  144. package/dist/src/io/writerlength.d.ts.map +0 -1
  145. package/dist/src/io/writerlength.js.map +0 -1
  146. package/dist/src/op.d.ts.map +0 -1
  147. package/dist/src/op.js.map +0 -1
  148. package/dist/src/opcode.d.ts.map +0 -1
  149. package/dist/src/opcode.js +0 -136
  150. package/dist/src/opcode.js.map +0 -1
  151. package/dist/src/script.d.ts.map +0 -1
  152. package/dist/src/script.js +0 -132
  153. package/dist/src/script.js.map +0 -1
  154. package/dist/src/sigHashType.d.ts.map +0 -1
  155. package/dist/src/sigHashType.js.map +0 -1
  156. package/dist/src/token/alp.d.ts.map +0 -1
  157. package/dist/src/token/alp.js +0 -110
  158. package/dist/src/token/alp.js.map +0 -1
  159. package/dist/src/token/common.d.ts.map +0 -1
  160. package/dist/src/token/common.js +0 -9
  161. package/dist/src/token/common.js.map +0 -1
  162. package/dist/src/token/empp.d.ts.map +0 -1
  163. package/dist/src/token/empp.js.map +0 -1
  164. package/dist/src/tx.d.ts.map +0 -1
  165. package/dist/src/tx.js.map +0 -1
  166. package/dist/src/txBuilder.d.ts.map +0 -1
  167. package/dist/src/txBuilder.js.map +0 -1
  168. package/dist/src/unsignedTx.d.ts.map +0 -1
  169. package/dist/src/unsignedTx.js.map +0 -1
  170. package/tests/alp.test.ts +0 -515
  171. package/tests/txBuilder.test.ts +0 -680
  172. /package/dist/ffi/{ecash_lib_wasm_bg.wasm.d.ts → ecash_lib_wasm_bg_browser.wasm.d.ts} +0 -0
  173. /package/dist/ffi/{ecash_lib_wasm.d.ts → ecash_lib_wasm_browser.d.ts} +0 -0
  174. /package/dist/{src/io → io}/bytes.d.ts +0 -0
  175. /package/dist/{src/io → io}/hex.d.ts +0 -0
  176. /package/dist/{src/io → io}/int.d.ts +0 -0
  177. /package/dist/{src/io → io}/varsize.d.ts +0 -0
  178. /package/dist/{src/io → io}/writer.d.ts +0 -0
  179. /package/dist/{src/io → io}/writerbytes.d.ts +0 -0
  180. /package/dist/{src/io → io}/writerlength.d.ts +0 -0
  181. /package/dist/{src/op.d.ts → op.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
@@ -1,11 +1,14 @@
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
- import { fromHexRev } from './io/hex.js';
5
- import { writeVarSize } from './io/varsize.js';
6
- import { WriterBytes } from './io/writerbytes.js';
7
- import { WriterLength } from './io/writerlength.js';
8
- import { Script } from './script.js';
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.copyTxOutput = exports.copyTxInput = exports.writeTxOutput = exports.writeTxInput = exports.writeOutPoint = exports.readTxOutput = exports.Tx = exports.DEFAULT_TX_VERSION = exports.DEFAULT_SEQUENCE = void 0;
7
+ const hex_js_1 = require("./io/hex.js");
8
+ const varsize_js_1 = require("./io/varsize.js");
9
+ const writerbytes_js_1 = require("./io/writerbytes.js");
10
+ const writerlength_js_1 = require("./io/writerlength.js");
11
+ const script_js_1 = require("./script.js");
9
12
  /**
10
13
  * Default value for nSequence of inputs if left undefined; this opts out of
11
14
  * BIP68 relative lock-time, and if all inputs have this value, nLockTime is
@@ -14,62 +17,77 @@ import { Script } from './script.js';
14
17
  * This is chosen as the default as it's the default in the node too,
15
18
  * see CTxIn in /src/primitives/transaction.h.
16
19
  **/
17
- export const DEFAULT_SEQUENCE = 0xffffffff;
20
+ exports.DEFAULT_SEQUENCE = 0xffffffff;
21
+ /** Current tx version, see CTransaction in /stc/primitives/transaction.h */
22
+ exports.DEFAULT_TX_VERSION = 2;
18
23
  /** CTransaction, a Bitcoin transaction. */
19
- export class Tx {
24
+ class Tx {
20
25
  constructor(params) {
21
- this.version = params?.version ?? 1;
26
+ this.version = params?.version ?? exports.DEFAULT_TX_VERSION;
22
27
  this.inputs = params?.inputs ?? [];
23
28
  this.outputs = params?.outputs ?? [];
24
29
  this.locktime = params?.locktime ?? 0;
25
30
  }
26
31
  /** Serialize the tx to a byte array */
27
32
  ser() {
28
- const writerBytes = new WriterBytes(this.serSize());
33
+ const writerBytes = new writerbytes_js_1.WriterBytes(this.serSize());
29
34
  this.write(writerBytes);
30
35
  return writerBytes.data;
31
36
  }
32
37
  /** Calculate the serialized size of the tx */
33
38
  serSize() {
34
- const writerLength = new WriterLength();
39
+ const writerLength = new writerlength_js_1.WriterLength();
35
40
  this.write(writerLength);
36
41
  return writerLength.length;
37
42
  }
38
43
  /** Write the tx to the given writer */
39
44
  write(writer) {
40
45
  writer.putU32(this.version);
41
- writeVarSize(this.inputs.length, writer);
46
+ (0, varsize_js_1.writeVarSize)(this.inputs.length, writer);
42
47
  for (const input of this.inputs) {
43
48
  writeTxInput(input, writer);
44
49
  }
45
- writeVarSize(this.outputs.length, writer);
50
+ (0, varsize_js_1.writeVarSize)(this.outputs.length, writer);
46
51
  for (const output of this.outputs) {
47
52
  writeTxOutput(output, writer);
48
53
  }
49
54
  writer.putU32(this.locktime);
50
55
  }
51
56
  }
57
+ exports.Tx = Tx;
58
+ function readTxOutput(bytes) {
59
+ const value = bytes.readU64();
60
+ const script = script_js_1.Script.readWithSize(bytes);
61
+ return {
62
+ value,
63
+ script,
64
+ };
65
+ }
66
+ exports.readTxOutput = readTxOutput;
52
67
  /** Write an outpoint to a Writer */
53
- export function writeOutPoint(outpoint, writer) {
68
+ function writeOutPoint(outpoint, writer) {
54
69
  const txid = typeof outpoint.txid === 'string'
55
- ? fromHexRev(outpoint.txid)
70
+ ? (0, hex_js_1.fromHexRev)(outpoint.txid)
56
71
  : outpoint.txid;
57
72
  writer.putBytes(txid);
58
73
  writer.putU32(outpoint.outIdx);
59
74
  }
75
+ exports.writeOutPoint = writeOutPoint;
60
76
  /** Write a TxInput to a Writer */
61
- export function writeTxInput(input, writer) {
77
+ function writeTxInput(input, writer) {
62
78
  writeOutPoint(input.prevOut, writer);
63
- (input.script ?? new Script()).writeWithSize(writer);
64
- writer.putU32(input.sequence ?? DEFAULT_SEQUENCE);
79
+ (input.script ?? new script_js_1.Script()).writeWithSize(writer);
80
+ writer.putU32(input.sequence ?? exports.DEFAULT_SEQUENCE);
65
81
  }
82
+ exports.writeTxInput = writeTxInput;
66
83
  /** Write a TxOutput to a Writer */
67
- export function writeTxOutput(output, writer) {
84
+ function writeTxOutput(output, writer) {
68
85
  writer.putU64(output.value);
69
86
  output.script.writeWithSize(writer);
70
87
  }
88
+ exports.writeTxOutput = writeTxOutput;
71
89
  /** Create a deep copy of the TxInput */
72
- export function copyTxInput(input) {
90
+ function copyTxInput(input) {
73
91
  return {
74
92
  prevOut: {
75
93
  txid: typeof input.prevOut.txid === 'string'
@@ -86,11 +104,13 @@ export function copyTxInput(input) {
86
104
  },
87
105
  };
88
106
  }
107
+ exports.copyTxInput = copyTxInput;
89
108
  /** Create a deep copy of the TxOutput */
90
- export function copyTxOutput(output) {
109
+ function copyTxOutput(output) {
91
110
  return {
92
111
  value: output.value,
93
112
  script: output.script.copy(),
94
113
  };
95
114
  }
115
+ exports.copyTxOutput = copyTxOutput;
96
116
  //# sourceMappingURL=tx.js.map
package/dist/tx.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx.js","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txBuilder.d.ts","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAY,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAEH,EAAE,EACF,OAAO,EACP,QAAQ,EAGX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAc,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;AAErE,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhD,oDAAoD;AACpD,qBAAa,SAAS;IAClB,mCAAmC;IAC5B,OAAO,EAAE,MAAM,CAAC;IACvB,+CAA+C;IACxC,MAAM,EAAE,cAAc,EAAE,CAAC;IAChC;;;QAGI;IACG,OAAO,EAAE,eAAe,EAAE,CAAC;IAClC,oCAAoC;IAC7B,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAOD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA2BtB,wDAAwD;IACjD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE;CAyFnE;AAED;kBACkB;AAClB,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CACzB,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,WAAW,GAC1B,UAAU,CAKZ;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,OACnB,UAAU,MACV,UAAU,eACD,WAAW,WAEX,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,aAAa,OAAQ,UAAU,eAAe,WAAW,WACrD,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC"}
@@ -1,17 +1,20 @@
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
- import { EccDummy } from './ecc.js';
5
- import { sha256d } from './hash.js';
6
- import { WriterBytes } from './io/writerbytes.js';
7
- import { pushBytesOp } from './op.js';
8
- import { Script } from './script.js';
9
- import { Tx, copyTxInput, copyTxOutput } from './tx.js';
10
- import { UnsignedTx, UnsignedTxInput } from './unsignedTx.js';
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.P2PKSignatory = exports.P2PKHSignatory = exports.flagSignature = exports.calcTxFee = exports.TxBuilder = void 0;
7
+ const ecc_js_1 = require("./ecc.js");
8
+ const hash_js_1 = require("./hash.js");
9
+ const writerbytes_js_1 = require("./io/writerbytes.js");
10
+ const op_js_1 = require("./op.js");
11
+ const script_js_1 = require("./script.js");
12
+ const tx_js_1 = require("./tx.js");
13
+ const unsignedTx_js_1 = require("./unsignedTx.js");
11
14
  /** Class that can be used to build and sign txs. */
12
- export class TxBuilder {
15
+ class TxBuilder {
13
16
  constructor(params) {
14
- this.version = params?.version ?? 1;
17
+ this.version = params?.version ?? tx_js_1.DEFAULT_TX_VERSION;
15
18
  this.inputs = params?.inputs ?? [];
16
19
  this.outputs = params?.outputs ?? [];
17
20
  this.locktime = params?.locktime ?? 0;
@@ -33,7 +36,7 @@ export class TxBuilder {
33
36
  let outputs = new Array(this.outputs.length);
34
37
  for (let idx = 0; idx < this.outputs.length; ++idx) {
35
38
  const builderOutput = this.outputs[idx];
36
- if (builderOutput instanceof Script) {
39
+ if (builderOutput instanceof script_js_1.Script) {
37
40
  if (leftoverIdx !== undefined) {
38
41
  throw 'Multiple leftover outputs, can at most use one';
39
42
  }
@@ -45,7 +48,7 @@ export class TxBuilder {
45
48
  }
46
49
  else {
47
50
  fixedOutputSum += BigInt(builderOutput.value);
48
- outputs[idx] = copyTxOutput(builderOutput);
51
+ outputs[idx] = (0, tx_js_1.copyTxOutput)(builderOutput);
49
52
  }
50
53
  }
51
54
  return { fixedOutputSum, leftoverIdx, outputs };
@@ -53,7 +56,7 @@ export class TxBuilder {
53
56
  /** Sign the tx built by this builder and return a Tx */
54
57
  sign(ecc, feePerKb, dustLimit) {
55
58
  const { fixedOutputSum, leftoverIdx, outputs } = this.prepareOutputs();
56
- const inputs = this.inputs.map(input => copyTxInput(input.input));
59
+ const inputs = this.inputs.map(input => (0, tx_js_1.copyTxInput)(input.input));
57
60
  if (leftoverIdx !== undefined) {
58
61
  const inputSum = this.inputSum();
59
62
  if (inputSum === undefined) {
@@ -62,10 +65,13 @@ export class TxBuilder {
62
65
  if (feePerKb === undefined) {
63
66
  throw new Error('Using a leftover output requires setting feePerKb');
64
67
  }
68
+ if (!Number.isInteger(feePerKb)) {
69
+ throw new Error('feePerKb must be an integer');
70
+ }
65
71
  if (dustLimit === undefined) {
66
72
  throw new Error('Using a leftover output requires setting dustLimit');
67
73
  }
68
- const dummyUnsignedTx = UnsignedTx.dummyFromTx(new Tx({
74
+ const dummyUnsignedTx = unsignedTx_js_1.UnsignedTx.dummyFromTx(new tx_js_1.Tx({
69
75
  version: this.version,
70
76
  inputs,
71
77
  outputs,
@@ -77,7 +83,7 @@ export class TxBuilder {
77
83
  if (signatory !== undefined) {
78
84
  // Must use dummy here because ECDSA sigs could be too small
79
85
  // for fee calc
80
- input.script = signatory(new EccDummy(), new UnsignedTxInput({
86
+ input.script = signatory(new ecc_js_1.EccDummy(), new unsignedTx_js_1.UnsignedTxInput({
81
87
  inputIdx,
82
88
  unsignedTx: dummyUnsignedTx,
83
89
  }));
@@ -100,7 +106,7 @@ export class TxBuilder {
100
106
  throw new Error(`Insufficient input value (${inputSum}): Can only pay for ${inputSum - fixedOutputSum} fees, but ${txFee} required`);
101
107
  }
102
108
  }
103
- const unsignedTx = UnsignedTx.fromTx(new Tx({
109
+ const unsignedTx = unsignedTx_js_1.UnsignedTx.fromTx(new tx_js_1.Tx({
104
110
  version: this.version,
105
111
  inputs,
106
112
  outputs,
@@ -110,7 +116,7 @@ export class TxBuilder {
110
116
  const signatory = this.inputs[inputIdx].signatory;
111
117
  const input = inputs[inputIdx];
112
118
  if (signatory !== undefined) {
113
- input.script = signatory(ecc, new UnsignedTxInput({
119
+ input.script = signatory(ecc, new unsignedTx_js_1.UnsignedTxInput({
114
120
  inputIdx,
115
121
  unsignedTx,
116
122
  }));
@@ -119,34 +125,39 @@ export class TxBuilder {
119
125
  return unsignedTx.tx;
120
126
  }
121
127
  }
128
+ exports.TxBuilder = TxBuilder;
122
129
  /** Calculate the required tx fee for the given txSize and feePerKb,
123
130
  * rounding up */
124
- export function calcTxFee(txSize, feePerKb) {
131
+ function calcTxFee(txSize, feePerKb) {
125
132
  return (BigInt(txSize) * BigInt(feePerKb) + 999n) / 1000n;
126
133
  }
134
+ exports.calcTxFee = calcTxFee;
127
135
  /** Append the sighash flags to the signature */
128
- export function flagSignature(sig, sigHashFlags) {
129
- const writer = new WriterBytes(sig.length + 1);
136
+ function flagSignature(sig, sigHashFlags) {
137
+ const writer = new writerbytes_js_1.WriterBytes(sig.length + 1);
130
138
  writer.putBytes(sig);
131
139
  writer.putU8(sigHashFlags.toInt() & 0xff);
132
140
  return writer.data;
133
141
  }
142
+ exports.flagSignature = flagSignature;
134
143
  /** Signatory for a P2PKH input. Always uses Schnorr signatures */
135
- export const P2PKHSignatory = (sk, pk, sigHashType) => {
144
+ const P2PKHSignatory = (sk, pk, sigHashType) => {
136
145
  return (ecc, input) => {
137
146
  const preimage = input.sigHashPreimage(sigHashType);
138
- const sighash = sha256d(preimage.bytes);
147
+ const sighash = (0, hash_js_1.sha256d)(preimage.bytes);
139
148
  const sig = flagSignature(ecc.schnorrSign(sk, sighash), sigHashType);
140
- return Script.p2pkhSpend(pk, sig);
149
+ return script_js_1.Script.p2pkhSpend(pk, sig);
141
150
  };
142
151
  };
152
+ exports.P2PKHSignatory = P2PKHSignatory;
143
153
  /** Signatory for a P2PK input. Always uses Schnorr signatures */
144
- export const P2PKSignatory = (sk, sigHashType) => {
154
+ const P2PKSignatory = (sk, sigHashType) => {
145
155
  return (ecc, input) => {
146
156
  const preimage = input.sigHashPreimage(sigHashType);
147
- const sighash = sha256d(preimage.bytes);
157
+ const sighash = (0, hash_js_1.sha256d)(preimage.bytes);
148
158
  const sig = flagSignature(ecc.schnorrSign(sk, sighash), sigHashType);
149
- return Script.fromOps([pushBytesOp(sig)]);
159
+ return script_js_1.Script.fromOps([(0, op_js_1.pushBytesOp)(sig)]);
150
160
  };
151
161
  };
162
+ exports.P2PKSignatory = P2PKSignatory;
152
163
  //# sourceMappingURL=txBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txBuilder.js","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsignedTx.d.ts","sourceRoot":"","sources":["../src/unsignedTx.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACH,WAAW,EAId,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGH,EAAE,EACF,OAAO,EAGV,MAAM,SAAS,CAAC;AAEjB,gFAAgF;AAChF,qBAAa,UAAU;IACnB,EAAE,EAAE,EAAE,CAAC;IACP,YAAY,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,UAAU,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IAExB,OAAO;IAYP;;;QAGI;WACU,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU;IASxC;;;QAGI;WACU,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU;IAS7C,4DAA4D;IACrD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;CAGpD;AAED,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC5B,+CAA+C;IAC/C,KAAK,EAAE,UAAU,CAAC;IAClB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;;IAGI;AACJ,qBAAa,eAAe;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;gBAEJ,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE;IAKvE;;;QAGI;IACG,eAAe,CAClB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,MAAM,GAClB,eAAe;IA4ElB,iDAAiD;IAC1C,OAAO,IAAI,OAAO;CAG5B"}
@@ -1,13 +1,16 @@
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
- import { sha256d } from './hash.js';
5
- import { WriterBytes } from './io/writerbytes.js';
6
- import { WriterLength } from './io/writerlength.js';
7
- import { SigHashTypeInputs, SigHashTypeOutputs, SigHashTypeVariant, } from './sigHashType.js';
8
- import { DEFAULT_SEQUENCE, writeOutPoint, writeTxOutput, } from './tx.js';
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UnsignedTxInput = exports.UnsignedTx = void 0;
7
+ const hash_js_1 = require("./hash.js");
8
+ const writerbytes_js_1 = require("./io/writerbytes.js");
9
+ const writerlength_js_1 = require("./io/writerlength.js");
10
+ const sigHashType_js_1 = require("./sigHashType.js");
11
+ const tx_js_1 = require("./tx.js");
9
12
  /** An unsigned tx, which helps us build the sighash preimage we need to sign */
10
- export class UnsignedTx {
13
+ class UnsignedTx {
11
14
  constructor(params) {
12
15
  this.tx = params.tx;
13
16
  this.prevoutsHash = params.prevoutsHash;
@@ -43,11 +46,12 @@ export class UnsignedTx {
43
46
  return new UnsignedTxInput({ inputIdx, unsignedTx: this });
44
47
  }
45
48
  }
49
+ exports.UnsignedTx = UnsignedTx;
46
50
  /**
47
51
  * An unsigned tx input, can be used to build a sighash preimage ready to be
48
52
  * signed
49
53
  **/
50
- export class UnsignedTxInput {
54
+ class UnsignedTxInput {
51
55
  constructor(params) {
52
56
  this.inputIdx = params.inputIdx;
53
57
  this.unsignedTx = params.unsignedTx;
@@ -57,7 +61,7 @@ export class UnsignedTxInput {
57
61
  * and OP_CODESEPARATOR index
58
62
  **/
59
63
  sigHashPreimage(sigHashType, nCodesep) {
60
- if (sigHashType.variant == SigHashTypeVariant.LEGACY) {
64
+ if (sigHashType.variant == sigHashType_js_1.SigHashTypeVariant.LEGACY) {
61
65
  throw new Error('Legacy sighash type not implemented');
62
66
  }
63
67
  const tx = this.unsignedTx.tx;
@@ -72,20 +76,20 @@ export class UnsignedTxInput {
72
76
  : redeemScript.cutOutCodesep(nCodesep);
73
77
  let hashOutputs;
74
78
  switch (sigHashType.outputType) {
75
- case SigHashTypeOutputs.ALL:
79
+ case sigHashType_js_1.SigHashTypeOutputs.ALL:
76
80
  hashOutputs = this.unsignedTx.outputsHash;
77
81
  break;
78
- case SigHashTypeOutputs.NONE:
82
+ case sigHashType_js_1.SigHashTypeOutputs.NONE:
79
83
  hashOutputs = new Uint8Array(32);
80
84
  break;
81
- case SigHashTypeOutputs.SINGLE:
85
+ case sigHashType_js_1.SigHashTypeOutputs.SINGLE:
82
86
  if (this.inputIdx < tx.outputs.length) {
83
87
  const output = tx.outputs[this.inputIdx];
84
- const writerOutputLength = new WriterLength();
85
- writeTxOutput(output, writerOutputLength);
86
- const writerOutput = new WriterBytes(writerOutputLength.length);
87
- writeTxOutput(output, writerOutput);
88
- hashOutputs = sha256d(writerOutput.data);
88
+ const writerOutputLength = new writerlength_js_1.WriterLength();
89
+ (0, tx_js_1.writeTxOutput)(output, writerOutputLength);
90
+ const writerOutput = new writerbytes_js_1.WriterBytes(writerOutputLength.length);
91
+ (0, tx_js_1.writeTxOutput)(output, writerOutput);
92
+ hashOutputs = (0, hash_js_1.sha256d)(writerOutput.data);
89
93
  }
90
94
  else {
91
95
  hashOutputs = new Uint8Array(32);
@@ -94,30 +98,30 @@ export class UnsignedTxInput {
94
98
  }
95
99
  const writePreimage = (writer) => {
96
100
  writer.putU32(tx.version);
97
- if (sigHashType.inputType == SigHashTypeInputs.FIXED) {
101
+ if (sigHashType.inputType == sigHashType_js_1.SigHashTypeInputs.FIXED) {
98
102
  writer.putBytes(this.unsignedTx.prevoutsHash);
99
103
  }
100
104
  else {
101
105
  writer.putBytes(new Uint8Array(32));
102
106
  }
103
- if (sigHashType.inputType == SigHashTypeInputs.FIXED &&
104
- sigHashType.outputType == SigHashTypeOutputs.ALL) {
107
+ if (sigHashType.inputType == sigHashType_js_1.SigHashTypeInputs.FIXED &&
108
+ sigHashType.outputType == sigHashType_js_1.SigHashTypeOutputs.ALL) {
105
109
  writer.putBytes(this.unsignedTx.sequencesHash);
106
110
  }
107
111
  else {
108
112
  writer.putBytes(new Uint8Array(32));
109
113
  }
110
- writeOutPoint(input.prevOut, writer);
114
+ (0, tx_js_1.writeOutPoint)(input.prevOut, writer);
111
115
  scriptCode.writeWithSize(writer);
112
116
  writer.putU64(signData.value);
113
- writer.putU32(input.sequence ?? DEFAULT_SEQUENCE);
117
+ writer.putU32(input.sequence ?? tx_js_1.DEFAULT_SEQUENCE);
114
118
  writer.putBytes(hashOutputs);
115
119
  writer.putU32(tx.locktime);
116
120
  writer.putU32(sigHashType.toInt());
117
121
  };
118
- const preimageWriterLen = new WriterLength();
122
+ const preimageWriterLen = new writerlength_js_1.WriterLength();
119
123
  writePreimage(preimageWriterLen);
120
- const preimageWriter = new WriterBytes(preimageWriterLen.length);
124
+ const preimageWriter = new writerbytes_js_1.WriterBytes(preimageWriterLen.length);
121
125
  writePreimage(preimageWriter);
122
126
  return {
123
127
  bytes: preimageWriter.data,
@@ -130,6 +134,7 @@ export class UnsignedTxInput {
130
134
  return this.unsignedTx.tx.inputs[this.inputIdx];
131
135
  }
132
136
  }
137
+ exports.UnsignedTxInput = UnsignedTxInput;
133
138
  /** Find the scriptCode that should be signed */
134
139
  function signDataScriptCode(signData) {
135
140
  if (signData.outputScript !== undefined) {
@@ -144,25 +149,25 @@ function signDataScriptCode(signData) {
144
149
  return signData.redeemScript;
145
150
  }
146
151
  function txWriterHash(tx, fn) {
147
- const writerLength = new WriterLength();
152
+ const writerLength = new writerlength_js_1.WriterLength();
148
153
  fn(tx, writerLength);
149
- const writer = new WriterBytes(writerLength.length);
154
+ const writer = new writerbytes_js_1.WriterBytes(writerLength.length);
150
155
  fn(tx, writer);
151
- return sha256d(writer.data);
156
+ return (0, hash_js_1.sha256d)(writer.data);
152
157
  }
153
158
  function writePrevouts(tx, writer) {
154
159
  for (const input of tx.inputs) {
155
- writeOutPoint(input.prevOut, writer);
160
+ (0, tx_js_1.writeOutPoint)(input.prevOut, writer);
156
161
  }
157
162
  }
158
163
  function writeSequences(tx, writer) {
159
164
  for (const input of tx.inputs) {
160
- writer.putU32(input.sequence ?? DEFAULT_SEQUENCE);
165
+ writer.putU32(input.sequence ?? tx_js_1.DEFAULT_SEQUENCE);
161
166
  }
162
167
  }
163
168
  function writeOutputs(tx, writer) {
164
169
  for (const output of tx.outputs) {
165
- writeTxOutput(output, writer);
170
+ (0, tx_js_1.writeTxOutput)(output, writer);
166
171
  }
167
172
  }
168
173
  //# sourceMappingURL=unsignedTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsignedTx.js","sourceRoot":"","sources":["../src/unsignedTx.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "ecash-lib",
3
- "version": "0.2.0rc",
3
+ "version": "0.2.0",
4
4
  "description": "Library for eCash transaction building",
5
- "main": "./dist/index.js",
6
- "type": "module",
5
+ "main": "./dist/indexNodeJs.js",
6
+ "browser": "./dist/indexBrowser.js",
7
7
  "scripts": {
8
- "build": "tsc && cp -r ./src/ffi ./dist",
8
+ "build": "tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist",
9
9
  "test": "mocha --import=tsx ./src/*.test.ts ./src/**/*.test.ts",
10
10
  "integration-tests": "mocha --import=tsx ./tests/*.test.ts --timeout 60000",
11
11
  "coverage": "nyc npm run test",
@@ -43,5 +43,8 @@
43
43
  "tsx": "^4.7.2",
44
44
  "typescript": "^5.4.3",
45
45
  "typescript-eslint": "^7.6.0"
46
+ },
47
+ "dependencies": {
48
+ "ecashaddrjs": "file:../ecashaddrjs"
46
49
  }
47
50
  }
@@ -0,0 +1,13 @@
1
+ /** tsconfig for building the actual library */
2
+ {
3
+ "extends": "./tsconfig.json",
4
+ "compilerOptions": {
5
+ "noEmit": false,
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "sourceMap": true,
9
+ "outDir": "./dist"
10
+ },
11
+ "include": ["./src/**/*"],
12
+ "exclude": ["./**/*.test.ts"]
13
+ }
package/tsconfig.json CHANGED
@@ -5,17 +5,14 @@
5
5
  /* ES2020 for bigint, DOM for WebAssemby */
6
6
  "lib": ["ES2020", "DOM"],
7
7
  /* Modules */
8
- "module": "NodeNext",
9
- "moduleResolution": "NodeNext",
8
+ "module": "CommonJS",
10
9
  /* Emit */
11
- "declaration": true,
12
- "declarationMap": true,
13
- "sourceMap": true,
14
- "outDir": "./dist",
10
+ "noEmit": true,
15
11
  /* Interop Constraints */
16
12
  "esModuleInterop": true,
17
13
  "forceConsistentCasingInFileNames": true,
18
14
  /* Type Checking */
19
15
  "strict": true
20
- }
16
+ },
17
+ "include": ["src/**/*", "tests/**/*"]
21
18
  }