xpi-ts 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 (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +516 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +8 -0
  6. package/dist/lib/bitcore/address.d.ts +66 -0
  7. package/dist/lib/bitcore/address.d.ts.map +1 -0
  8. package/dist/lib/bitcore/address.js +407 -0
  9. package/dist/lib/bitcore/block/block.d.ts +57 -0
  10. package/dist/lib/bitcore/block/block.d.ts.map +1 -0
  11. package/dist/lib/bitcore/block/block.js +233 -0
  12. package/dist/lib/bitcore/block/blockheader.d.ts +82 -0
  13. package/dist/lib/bitcore/block/blockheader.d.ts.map +1 -0
  14. package/dist/lib/bitcore/block/blockheader.js +323 -0
  15. package/dist/lib/bitcore/block/index.d.ts +5 -0
  16. package/dist/lib/bitcore/block/index.d.ts.map +1 -0
  17. package/dist/lib/bitcore/block/index.js +2 -0
  18. package/dist/lib/bitcore/chunk.d.ts +22 -0
  19. package/dist/lib/bitcore/chunk.d.ts.map +1 -0
  20. package/dist/lib/bitcore/chunk.js +46 -0
  21. package/dist/lib/bitcore/crypto/bn.d.ts +53 -0
  22. package/dist/lib/bitcore/crypto/bn.d.ts.map +1 -0
  23. package/dist/lib/bitcore/crypto/bn.js +238 -0
  24. package/dist/lib/bitcore/crypto/ecdsa.d.ts +46 -0
  25. package/dist/lib/bitcore/crypto/ecdsa.d.ts.map +1 -0
  26. package/dist/lib/bitcore/crypto/ecdsa.js +247 -0
  27. package/dist/lib/bitcore/crypto/hash.d.ts +16 -0
  28. package/dist/lib/bitcore/crypto/hash.d.ts.map +1 -0
  29. package/dist/lib/bitcore/crypto/hash.js +87 -0
  30. package/dist/lib/bitcore/crypto/index.d.ts +9 -0
  31. package/dist/lib/bitcore/crypto/index.d.ts.map +1 -0
  32. package/dist/lib/bitcore/crypto/index.js +8 -0
  33. package/dist/lib/bitcore/crypto/musig2.d.ts +40 -0
  34. package/dist/lib/bitcore/crypto/musig2.d.ts.map +1 -0
  35. package/dist/lib/bitcore/crypto/musig2.js +236 -0
  36. package/dist/lib/bitcore/crypto/point.d.ts +20 -0
  37. package/dist/lib/bitcore/crypto/point.d.ts.map +1 -0
  38. package/dist/lib/bitcore/crypto/point.js +133 -0
  39. package/dist/lib/bitcore/crypto/random.d.ts +7 -0
  40. package/dist/lib/bitcore/crypto/random.d.ts.map +1 -0
  41. package/dist/lib/bitcore/crypto/random.js +30 -0
  42. package/dist/lib/bitcore/crypto/schnorr.d.ts +40 -0
  43. package/dist/lib/bitcore/crypto/schnorr.d.ts.map +1 -0
  44. package/dist/lib/bitcore/crypto/schnorr.js +185 -0
  45. package/dist/lib/bitcore/crypto/signature.d.ts +53 -0
  46. package/dist/lib/bitcore/crypto/signature.d.ts.map +1 -0
  47. package/dist/lib/bitcore/crypto/signature.js +300 -0
  48. package/dist/lib/bitcore/crypto/sigtype.d.ts +5 -0
  49. package/dist/lib/bitcore/crypto/sigtype.d.ts.map +1 -0
  50. package/dist/lib/bitcore/crypto/sigtype.js +18 -0
  51. package/dist/lib/bitcore/encoding/base58.d.ts +16 -0
  52. package/dist/lib/bitcore/encoding/base58.d.ts.map +1 -0
  53. package/dist/lib/bitcore/encoding/base58.js +55 -0
  54. package/dist/lib/bitcore/encoding/base58check.d.ts +9 -0
  55. package/dist/lib/bitcore/encoding/base58check.d.ts.map +1 -0
  56. package/dist/lib/bitcore/encoding/base58check.js +82 -0
  57. package/dist/lib/bitcore/encoding/bufferreader.d.ts +34 -0
  58. package/dist/lib/bitcore/encoding/bufferreader.d.ts.map +1 -0
  59. package/dist/lib/bitcore/encoding/bufferreader.js +198 -0
  60. package/dist/lib/bitcore/encoding/bufferwriter.d.ts +36 -0
  61. package/dist/lib/bitcore/encoding/bufferwriter.d.ts.map +1 -0
  62. package/dist/lib/bitcore/encoding/bufferwriter.js +189 -0
  63. package/dist/lib/bitcore/encoding/varint.d.ts +20 -0
  64. package/dist/lib/bitcore/encoding/varint.d.ts.map +1 -0
  65. package/dist/lib/bitcore/encoding/varint.js +61 -0
  66. package/dist/lib/bitcore/errors.d.ts +28 -0
  67. package/dist/lib/bitcore/errors.d.ts.map +1 -0
  68. package/dist/lib/bitcore/errors.js +325 -0
  69. package/dist/lib/bitcore/hdprivatekey.d.ts +78 -0
  70. package/dist/lib/bitcore/hdprivatekey.d.ts.map +1 -0
  71. package/dist/lib/bitcore/hdprivatekey.js +381 -0
  72. package/dist/lib/bitcore/hdpublickey.d.ts +98 -0
  73. package/dist/lib/bitcore/hdpublickey.d.ts.map +1 -0
  74. package/dist/lib/bitcore/hdpublickey.js +416 -0
  75. package/dist/lib/bitcore/index.d.ts +60 -0
  76. package/dist/lib/bitcore/index.d.ts.map +1 -0
  77. package/dist/lib/bitcore/index.js +44 -0
  78. package/dist/lib/bitcore/message.d.ts +23 -0
  79. package/dist/lib/bitcore/message.d.ts.map +1 -0
  80. package/dist/lib/bitcore/message.js +112 -0
  81. package/dist/lib/bitcore/mnemonic/errors.d.ts +7 -0
  82. package/dist/lib/bitcore/mnemonic/errors.d.ts.map +1 -0
  83. package/dist/lib/bitcore/mnemonic/errors.js +20 -0
  84. package/dist/lib/bitcore/mnemonic/index.d.ts +5 -0
  85. package/dist/lib/bitcore/mnemonic/index.d.ts.map +1 -0
  86. package/dist/lib/bitcore/mnemonic/index.js +4 -0
  87. package/dist/lib/bitcore/mnemonic/mnemonic.d.ts +23 -0
  88. package/dist/lib/bitcore/mnemonic/mnemonic.d.ts.map +1 -0
  89. package/dist/lib/bitcore/mnemonic/mnemonic.js +164 -0
  90. package/dist/lib/bitcore/mnemonic/pbkdf2.d.ts +2 -0
  91. package/dist/lib/bitcore/mnemonic/pbkdf2.d.ts.map +1 -0
  92. package/dist/lib/bitcore/mnemonic/pbkdf2.js +25 -0
  93. package/dist/lib/bitcore/mnemonic/words/english.d.ts +2 -0
  94. package/dist/lib/bitcore/mnemonic/words/english.d.ts.map +1 -0
  95. package/dist/lib/bitcore/mnemonic/words/english.js +2050 -0
  96. package/dist/lib/bitcore/mnemonic/words/index.d.ts +4 -0
  97. package/dist/lib/bitcore/mnemonic/words/index.d.ts.map +1 -0
  98. package/dist/lib/bitcore/mnemonic/words/index.js +4 -0
  99. package/dist/lib/bitcore/musig2/index.d.ts +3 -0
  100. package/dist/lib/bitcore/musig2/index.d.ts.map +1 -0
  101. package/dist/lib/bitcore/musig2/index.js +2 -0
  102. package/dist/lib/bitcore/musig2/session.d.ts +79 -0
  103. package/dist/lib/bitcore/musig2/session.d.ts.map +1 -0
  104. package/dist/lib/bitcore/musig2/session.js +346 -0
  105. package/dist/lib/bitcore/musig2/signer.d.ts +61 -0
  106. package/dist/lib/bitcore/musig2/signer.d.ts.map +1 -0
  107. package/dist/lib/bitcore/musig2/signer.js +146 -0
  108. package/dist/lib/bitcore/networks.d.ts +53 -0
  109. package/dist/lib/bitcore/networks.d.ts.map +1 -0
  110. package/dist/lib/bitcore/networks.js +150 -0
  111. package/dist/lib/bitcore/opcode.d.ts +250 -0
  112. package/dist/lib/bitcore/opcode.d.ts.map +1 -0
  113. package/dist/lib/bitcore/opcode.js +270 -0
  114. package/dist/lib/bitcore/privatekey.d.ts +56 -0
  115. package/dist/lib/bitcore/privatekey.d.ts.map +1 -0
  116. package/dist/lib/bitcore/privatekey.js +237 -0
  117. package/dist/lib/bitcore/publickey.d.ts +59 -0
  118. package/dist/lib/bitcore/publickey.d.ts.map +1 -0
  119. package/dist/lib/bitcore/publickey.js +263 -0
  120. package/dist/lib/bitcore/script/interpreter.d.ts +98 -0
  121. package/dist/lib/bitcore/script/interpreter.d.ts.map +1 -0
  122. package/dist/lib/bitcore/script/interpreter.js +1704 -0
  123. package/dist/lib/bitcore/script.d.ts +111 -0
  124. package/dist/lib/bitcore/script.d.ts.map +1 -0
  125. package/dist/lib/bitcore/script.js +1112 -0
  126. package/dist/lib/bitcore/taproot/musig2.d.ts +29 -0
  127. package/dist/lib/bitcore/taproot/musig2.d.ts.map +1 -0
  128. package/dist/lib/bitcore/taproot/musig2.js +104 -0
  129. package/dist/lib/bitcore/taproot/nft.d.ts +164 -0
  130. package/dist/lib/bitcore/taproot/nft.d.ts.map +1 -0
  131. package/dist/lib/bitcore/taproot/nft.js +407 -0
  132. package/dist/lib/bitcore/taproot.d.ts +65 -0
  133. package/dist/lib/bitcore/taproot.d.ts.map +1 -0
  134. package/dist/lib/bitcore/taproot.js +288 -0
  135. package/dist/lib/bitcore/transaction/index.d.ts +12 -0
  136. package/dist/lib/bitcore/transaction/index.d.ts.map +1 -0
  137. package/dist/lib/bitcore/transaction/index.js +6 -0
  138. package/dist/lib/bitcore/transaction/input.d.ts +202 -0
  139. package/dist/lib/bitcore/transaction/input.d.ts.map +1 -0
  140. package/dist/lib/bitcore/transaction/input.js +911 -0
  141. package/dist/lib/bitcore/transaction/output.d.ts +48 -0
  142. package/dist/lib/bitcore/transaction/output.d.ts.map +1 -0
  143. package/dist/lib/bitcore/transaction/output.js +231 -0
  144. package/dist/lib/bitcore/transaction/sighash.d.ts +32 -0
  145. package/dist/lib/bitcore/transaction/sighash.d.ts.map +1 -0
  146. package/dist/lib/bitcore/transaction/sighash.js +335 -0
  147. package/dist/lib/bitcore/transaction/signature.d.ts +36 -0
  148. package/dist/lib/bitcore/transaction/signature.d.ts.map +1 -0
  149. package/dist/lib/bitcore/transaction/signature.js +130 -0
  150. package/dist/lib/bitcore/transaction/transaction.d.ts +164 -0
  151. package/dist/lib/bitcore/transaction/transaction.d.ts.map +1 -0
  152. package/dist/lib/bitcore/transaction/transaction.js +1016 -0
  153. package/dist/lib/bitcore/transaction/unspentoutput.d.ts +58 -0
  154. package/dist/lib/bitcore/transaction/unspentoutput.d.ts.map +1 -0
  155. package/dist/lib/bitcore/transaction/unspentoutput.js +167 -0
  156. package/dist/lib/bitcore/unit.d.ts +44 -0
  157. package/dist/lib/bitcore/unit.d.ts.map +1 -0
  158. package/dist/lib/bitcore/unit.js +106 -0
  159. package/dist/lib/bitcore/uri.d.ts +29 -0
  160. package/dist/lib/bitcore/uri.d.ts.map +1 -0
  161. package/dist/lib/bitcore/uri.js +163 -0
  162. package/dist/lib/bitcore/util/base32.d.ts +5 -0
  163. package/dist/lib/bitcore/util/base32.d.ts.map +1 -0
  164. package/dist/lib/bitcore/util/base32.js +58 -0
  165. package/dist/lib/bitcore/util/buffer.d.ts +18 -0
  166. package/dist/lib/bitcore/util/buffer.d.ts.map +1 -0
  167. package/dist/lib/bitcore/util/buffer.js +76 -0
  168. package/dist/lib/bitcore/util/convertBits.d.ts +2 -0
  169. package/dist/lib/bitcore/util/convertBits.d.ts.map +1 -0
  170. package/dist/lib/bitcore/util/convertBits.js +26 -0
  171. package/dist/lib/bitcore/util/js.d.ts +9 -0
  172. package/dist/lib/bitcore/util/js.d.ts.map +1 -0
  173. package/dist/lib/bitcore/util/js.js +45 -0
  174. package/dist/lib/bitcore/util/preconditions.d.ts +6 -0
  175. package/dist/lib/bitcore/util/preconditions.d.ts.map +1 -0
  176. package/dist/lib/bitcore/util/preconditions.js +31 -0
  177. package/dist/lib/bitcore/util.d.ts +14 -0
  178. package/dist/lib/bitcore/util.d.ts.map +1 -0
  179. package/dist/lib/bitcore/util.js +13 -0
  180. package/dist/lib/bitcore/xaddress.d.ts +45 -0
  181. package/dist/lib/bitcore/xaddress.d.ts.map +1 -0
  182. package/dist/lib/bitcore/xaddress.js +279 -0
  183. package/dist/lib/rank/api.d.ts +75 -0
  184. package/dist/lib/rank/api.d.ts.map +1 -0
  185. package/dist/lib/rank/api.js +4 -0
  186. package/dist/lib/rank/index.d.ts +127 -0
  187. package/dist/lib/rank/index.d.ts.map +1 -0
  188. package/dist/lib/rank/index.js +421 -0
  189. package/dist/lib/rank/opcode.d.ts +23 -0
  190. package/dist/lib/rank/opcode.d.ts.map +1 -0
  191. package/dist/lib/rank/opcode.js +23 -0
  192. package/dist/lib/rank/script.d.ts +2 -0
  193. package/dist/lib/rank/script.d.ts.map +1 -0
  194. package/dist/lib/rank/script.js +7 -0
  195. package/dist/lib/rank/transaction.d.ts +3 -0
  196. package/dist/lib/rank/transaction.d.ts.map +1 -0
  197. package/dist/lib/rank/transaction.js +12 -0
  198. package/dist/lib/rpc.d.ts +136 -0
  199. package/dist/lib/rpc.d.ts.map +1 -0
  200. package/dist/lib/rpc.js +62 -0
  201. package/dist/utils/constants.d.ts +18 -0
  202. package/dist/utils/constants.d.ts.map +1 -0
  203. package/dist/utils/constants.js +20 -0
  204. package/dist/utils/env.d.ts +3 -0
  205. package/dist/utils/env.d.ts.map +1 -0
  206. package/dist/utils/env.js +8 -0
  207. package/dist/utils/string.d.ts +11 -0
  208. package/dist/utils/string.d.ts.map +1 -0
  209. package/dist/utils/string.js +47 -0
  210. package/dist/utils/types.d.ts +2 -0
  211. package/dist/utils/types.d.ts.map +1 -0
  212. package/dist/utils/types.js +1 -0
  213. package/dist/utils/wallet.d.ts +12 -0
  214. package/dist/utils/wallet.d.ts.map +1 -0
  215. package/dist/utils/wallet.js +28 -0
  216. package/package.json +91 -0
@@ -0,0 +1,36 @@
1
+ import { PublicKey } from '../publickey.js';
2
+ import { Signature } from '../crypto/signature.js';
3
+ export interface TransactionSignatureData {
4
+ publicKey: PublicKey | Buffer | string;
5
+ prevTxId: Buffer | string;
6
+ outputIndex: number;
7
+ inputIndex: number;
8
+ signature: Signature | Buffer | string;
9
+ sigtype: number;
10
+ }
11
+ export interface TransactionSignatureObject {
12
+ publicKey: string;
13
+ prevTxId: string;
14
+ outputIndex: number;
15
+ inputIndex: number;
16
+ signature: string;
17
+ sigtype: number;
18
+ }
19
+ export declare class TransactionSignature extends Signature {
20
+ publicKey: PublicKey;
21
+ prevTxId: Buffer;
22
+ outputIndex: number;
23
+ inputIndex: number;
24
+ sigtype: number;
25
+ signature: Signature;
26
+ constructor(arg?: TransactionSignatureData | TransactionSignature);
27
+ private _fromObject;
28
+ private _checkObjectArgs;
29
+ toObject(): TransactionSignatureObject;
30
+ toJSON: () => TransactionSignatureObject;
31
+ static fromObject(obj: TransactionSignatureData): TransactionSignature;
32
+ clone(): TransactionSignature;
33
+ isValid(): boolean;
34
+ toString(): string;
35
+ }
36
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../lib/bitcore/transaction/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAIlD,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IACtC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IACtC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAqBD,qBAAa,oBAAqB,SAAQ,SAAS;IAEjD,SAAS,EAAG,SAAS,CAAA;IAErB,QAAQ,EAAG,MAAM,CAAA;IAEjB,WAAW,EAAG,MAAM,CAAA;IAEpB,UAAU,EAAG,MAAM,CAAA;IAEnB,OAAO,EAAG,MAAM,CAAA;IAEhB,SAAS,EAAG,SAAS,CAAA;gBAQT,GAAG,CAAC,EAAE,wBAAwB,GAAG,oBAAoB;IAgCjE,OAAO,CAAC,WAAW;IAmEnB,OAAO,CAAC,gBAAgB;IAqDxB,QAAQ,IAAI,0BAA0B;IActC,MAAM,QAdM,0BAA0B,CAchB;IAOtB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,wBAAwB,GAAG,oBAAoB;IAQtE,KAAK,IAAI,oBAAoB;IAe7B,OAAO,IAAI,OAAO;IAkBlB,QAAQ,IAAI,MAAM;CAGnB"}
@@ -0,0 +1,130 @@
1
+ import { Preconditions } from '../util/preconditions.js';
2
+ import { JSUtil } from '../util/js.js';
3
+ import { PublicKey } from '../publickey.js';
4
+ import { BitcoreError } from '../errors.js';
5
+ import { Signature } from '../crypto/signature.js';
6
+ import { BN } from '../crypto/bn.js';
7
+ import { isSchnorrSignature } from '../crypto/sigtype.js';
8
+ export class TransactionSignature extends Signature {
9
+ publicKey;
10
+ prevTxId;
11
+ outputIndex;
12
+ inputIndex;
13
+ sigtype;
14
+ signature;
15
+ constructor(arg) {
16
+ super(BN.fromNumber(0), BN.fromNumber(0));
17
+ if (arg instanceof TransactionSignature) {
18
+ return arg;
19
+ }
20
+ if (typeof arg === 'object' && arg !== null) {
21
+ return this._fromObject(arg);
22
+ }
23
+ else {
24
+ throw new BitcoreError('TransactionSignatures must be instantiated from an object');
25
+ }
26
+ }
27
+ _fromObject(arg) {
28
+ this._checkObjectArgs(arg);
29
+ this.publicKey = new PublicKey(arg.publicKey);
30
+ this.prevTxId = Buffer.isBuffer(arg.prevTxId)
31
+ ? arg.prevTxId
32
+ : Buffer.from(arg.prevTxId, 'hex');
33
+ this.outputIndex = arg.outputIndex;
34
+ this.inputIndex = arg.inputIndex;
35
+ if (arg.signature instanceof Signature) {
36
+ this.signature = arg.signature;
37
+ }
38
+ else if (Buffer.isBuffer(arg.signature)) {
39
+ const sigWithoutSighash = arg.signature.length > 64 &&
40
+ arg.signature[arg.signature.length - 1] !== 0x30
41
+ ? arg.signature.subarray(0, -1)
42
+ : arg.signature;
43
+ if (isSchnorrSignature(sigWithoutSighash)) {
44
+ const parsed = Signature.parseSchnorrEncodedSig(arg.signature);
45
+ const sig = new Signature(parsed.r, parsed.s);
46
+ sig.isSchnorr = true;
47
+ if (parsed.nhashtype) {
48
+ sig.nhashtype = parsed.nhashtype.readUInt8(0);
49
+ }
50
+ this.signature = sig;
51
+ }
52
+ else {
53
+ this.signature = Signature.fromDER(arg.signature);
54
+ }
55
+ }
56
+ else {
57
+ const buf = Buffer.from(arg.signature, 'hex');
58
+ const sigWithoutSighash = buf.length > 64 && buf[buf.length - 1] !== 0x30
59
+ ? buf.subarray(0, -1)
60
+ : buf;
61
+ if (isSchnorrSignature(sigWithoutSighash)) {
62
+ const parsed = Signature.parseSchnorrEncodedSig(buf);
63
+ const sig = new Signature(parsed.r, parsed.s);
64
+ sig.isSchnorr = true;
65
+ if (parsed.nhashtype) {
66
+ sig.nhashtype = parsed.nhashtype.readUInt8(0);
67
+ }
68
+ this.signature = sig;
69
+ }
70
+ else {
71
+ this.signature = Signature.fromString(arg.signature);
72
+ }
73
+ }
74
+ this.sigtype = arg.sigtype;
75
+ return this;
76
+ }
77
+ _checkObjectArgs(arg) {
78
+ Preconditions.checkArgument(arg.publicKey !== undefined, 'publicKey is required');
79
+ Preconditions.checkArgument(arg.inputIndex !== undefined, 'inputIndex is required');
80
+ Preconditions.checkArgument(arg.outputIndex !== undefined, 'outputIndex is required');
81
+ Preconditions.checkState(typeof arg.inputIndex === 'number', 'inputIndex must be a number');
82
+ Preconditions.checkState(typeof arg.outputIndex === 'number', 'outputIndex must be a number');
83
+ Preconditions.checkArgument(arg.signature !== undefined, 'signature is required');
84
+ Preconditions.checkArgument(arg.prevTxId !== undefined, 'prevTxId is required');
85
+ Preconditions.checkState(arg.signature instanceof Signature ||
86
+ Buffer.isBuffer(arg.signature) ||
87
+ JSUtil.isHexa(arg.signature), 'signature must be a buffer or hexa value');
88
+ Preconditions.checkState(Buffer.isBuffer(arg.prevTxId) || JSUtil.isHexa(arg.prevTxId), 'prevTxId must be a buffer or hexa value');
89
+ Preconditions.checkArgument(arg.sigtype !== undefined, 'sigtype is required');
90
+ Preconditions.checkState(typeof arg.sigtype === 'number', 'sigtype must be a number');
91
+ }
92
+ toObject() {
93
+ return {
94
+ publicKey: this.publicKey.toString(),
95
+ prevTxId: this.prevTxId.toString('hex'),
96
+ outputIndex: this.outputIndex,
97
+ inputIndex: this.inputIndex,
98
+ signature: this.signature.toString(),
99
+ sigtype: this.sigtype,
100
+ };
101
+ }
102
+ toJSON = this.toObject;
103
+ static fromObject(obj) {
104
+ return new TransactionSignature(obj);
105
+ }
106
+ clone() {
107
+ return new TransactionSignature({
108
+ publicKey: this.publicKey,
109
+ prevTxId: Buffer.from(this.prevTxId),
110
+ outputIndex: this.outputIndex,
111
+ inputIndex: this.inputIndex,
112
+ signature: this.signature,
113
+ sigtype: this.sigtype,
114
+ });
115
+ }
116
+ isValid() {
117
+ return (this.publicKey !== undefined &&
118
+ this.prevTxId !== undefined &&
119
+ this.outputIndex >= 0 &&
120
+ this.inputIndex >= 0 &&
121
+ this.signature !== undefined &&
122
+ this.sigtype !== undefined &&
123
+ PublicKey.isValid(this.publicKey) &&
124
+ this.signature.r !== undefined &&
125
+ this.signature.s !== undefined);
126
+ }
127
+ toString() {
128
+ return `TransactionSignature(${this.inputIndex}:${this.outputIndex})`;
129
+ }
130
+ }
@@ -0,0 +1,164 @@
1
+ import { BufferReader } from '../encoding/bufferreader.js';
2
+ import { BufferWriter } from '../encoding/bufferwriter.js';
3
+ import { Signature, SignatureSigningMethod } from '../crypto/signature.js';
4
+ import { Address } from '../address.js';
5
+ import { UnspentOutput, UnspentOutputData } from './unspentoutput.js';
6
+ import { Input, InputObject, MuSigTaprootInput } from './input.js';
7
+ import { Output, OutputObject } from './output.js';
8
+ import { Script } from '../script.js';
9
+ import { PrivateKey } from '../privatekey.js';
10
+ import { PublicKey } from '../publickey.js';
11
+ import { BN } from '../crypto/bn.js';
12
+ import { TransactionSignature } from './signature.js';
13
+ import type { Point } from '../crypto/point.js';
14
+ export interface TransactionData {
15
+ version?: number;
16
+ inputs?: InputObject[];
17
+ outputs?: OutputObject[];
18
+ nLockTime?: number;
19
+ changeScript?: Script | string;
20
+ changeAsm?: string;
21
+ changeIndex?: number;
22
+ fee?: number;
23
+ }
24
+ export interface TransactionObject {
25
+ txid: string;
26
+ hash: string;
27
+ version: number;
28
+ inputs: InputObject[];
29
+ outputs: OutputObject[];
30
+ nLockTime: number;
31
+ changeScript?: string;
32
+ changeAsm?: string;
33
+ changeIndex?: number;
34
+ fee?: number;
35
+ }
36
+ export declare class Transaction {
37
+ static readonly DUST_AMOUNT = 546;
38
+ static readonly FEE_SECURITY_MARGIN = 150;
39
+ static readonly NLOCKTIME_BLOCKHEIGHT_LIMIT = 500000000;
40
+ static readonly NLOCKTIME_MAX_VALUE = 4294967295;
41
+ static readonly FEE_PER_KB = 1000;
42
+ static readonly CHANGE_OUTPUT_MAX_SIZE: number;
43
+ static readonly MAXIMUM_EXTRA_SIZE: number;
44
+ static readonly NULL_HASH: Buffer<ArrayBuffer>;
45
+ inputs: Input[];
46
+ outputs: Output[];
47
+ _version: number;
48
+ nLockTime: number;
49
+ private _inputAmount?;
50
+ private _outputAmount?;
51
+ private _changeScript?;
52
+ private _changeIndex?;
53
+ private _fee?;
54
+ private _feePerKb?;
55
+ private _feePerByte?;
56
+ private _hash?;
57
+ private _txid?;
58
+ get spentOutputs(): Output[] | undefined;
59
+ constructor(serialized?: TransactionData | Transaction | Buffer | string);
60
+ static create(serialized?: TransactionData | Transaction | Buffer | string): Transaction;
61
+ static shallowCopy(transaction: Transaction): Transaction;
62
+ static fromBuffer(buffer: Buffer): Transaction;
63
+ static fromBufferReader(reader: BufferReader): Transaction;
64
+ static fromObject(arg: TransactionData | Transaction): Transaction;
65
+ static fromString(str: string): Transaction;
66
+ get hash(): string;
67
+ get id(): string;
68
+ get txid(): string;
69
+ get inputAmount(): number;
70
+ get outputAmount(): number;
71
+ get version(): number;
72
+ feePerByte(feePerByte: number): void;
73
+ fee(amount: number): void;
74
+ feePerKb(amount: number): void;
75
+ set version(version: number);
76
+ private _getHash;
77
+ private _getTxid;
78
+ private _getTxInputHashes;
79
+ private _getTxOutputHashes;
80
+ private _computeMerkleRoot;
81
+ private _getInputAmount;
82
+ private _getOutputAmount;
83
+ private _newTransaction;
84
+ serialize(unsafe?: boolean | {
85
+ disableAll?: boolean;
86
+ }): string;
87
+ uncheckedSerialize(): string;
88
+ checkedSerialize(opts?: {
89
+ disableAll?: boolean;
90
+ disableDustOutputs?: boolean;
91
+ disableIsFullySigned?: boolean;
92
+ }): string;
93
+ getSerializationError(opts?: {
94
+ disableAll?: boolean;
95
+ disableDustOutputs?: boolean;
96
+ disableIsFullySigned?: boolean;
97
+ }): Error | null;
98
+ private _hasDustOutputs;
99
+ private _isMissingSignatures;
100
+ private _hasInvalidSatoshis;
101
+ isFullySigned(): boolean;
102
+ toBuffer(): Buffer;
103
+ toBufferWriter(writer?: BufferWriter): BufferWriter;
104
+ fromBuffer(buffer: Buffer): Transaction;
105
+ fromBufferReader(reader: BufferReader): Transaction;
106
+ fromString(str: string): Transaction;
107
+ toObject(): TransactionObject;
108
+ toJSON: () => TransactionObject;
109
+ fromObject(arg: TransactionData | Transaction): Transaction;
110
+ addInput(input: Input): Transaction;
111
+ addOutput(output: Output): Transaction;
112
+ clone(): Transaction;
113
+ toString(): string;
114
+ inspect(): string;
115
+ from(utxos: UnspentOutput[] | UnspentOutputData[] | UnspentOutput | UnspentOutputData, pubkeys?: PublicKey[], threshold?: number, opts?: {
116
+ noSorting?: boolean;
117
+ }): Transaction;
118
+ change(address: Address | string): Transaction;
119
+ to(address: Address | string | Array<{
120
+ address: Address | string;
121
+ satoshis: number;
122
+ }>, amount: number | string | bigint): Transaction;
123
+ sign(privateKey: PrivateKey | string | Array<PrivateKey | string>, sigtype?: number | null, signingMethod?: SignatureSigningMethod): Transaction;
124
+ signSchnorr(privateKey: PrivateKey | string | Array<PrivateKey | string>): Transaction;
125
+ getMuSig2Inputs(): MuSigTaprootInput[];
126
+ getMuSig2Sighash(inputIndex: number): Buffer;
127
+ addMuSig2Nonce(inputIndex: number, signerIndex: number, nonce: [Point, Point]): Transaction;
128
+ addMuSig2PartialSignature(inputIndex: number, signerIndex: number, partialSig: BN): Transaction;
129
+ finalizeMuSig2Signatures(): Transaction;
130
+ getSignatures(privKey: PrivateKey | string, sigtype?: number, signingMethod?: string): TransactionSignature[];
131
+ applySignature(signature: TransactionSignature, signingMethod?: SignatureSigningMethod): Transaction;
132
+ isValidSignature(sig: TransactionSignature): boolean;
133
+ verifySignature(sig: Signature, pubkey: PublicKey, nin: number, subscript: Script, satoshisBN: BN, flags?: number, signingMethod?: string): boolean;
134
+ lockUntilDate(time: Date | number): Transaction;
135
+ lockUntilBlockHeight(height: number): Transaction;
136
+ getLockTime(): Date | number | null;
137
+ hasAllUtxoInfo(): boolean;
138
+ addData(value: Buffer | string): Transaction;
139
+ clearOutputs(): Transaction;
140
+ removeOutput(index: number): void;
141
+ sort(): Transaction;
142
+ sortInputs(sortingFunction: (inputs: Input[]) => Input[]): Transaction;
143
+ sortOutputs(sortingFunction: (outputs: Output[]) => Output[]): Transaction;
144
+ shuffleOutputs(): Transaction;
145
+ removeInput(index: number): void;
146
+ getFee(): number;
147
+ getChangeOutput(): Output | null;
148
+ verify(): string | boolean;
149
+ private _verifyScripts;
150
+ isCoinbase(): boolean;
151
+ uncheckedAddInput(input: Input): Transaction;
152
+ private _newOutputOrder;
153
+ private _fromNonP2SH;
154
+ private _fromMultisigUtxo;
155
+ private _updateChangeOutput;
156
+ private _getUnspentValue;
157
+ private _clearSignatures;
158
+ private _estimateFee;
159
+ private static _getVarintSize;
160
+ private _estimateSize;
161
+ private _removeOutput;
162
+ private _addOutput;
163
+ }
164
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../lib/bitcore/transaction/transaction.ts"],"names":[],"mappings":"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"}