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.
- package/LICENSE +21 -0
- package/README.md +516 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/lib/bitcore/address.d.ts +66 -0
- package/dist/lib/bitcore/address.d.ts.map +1 -0
- package/dist/lib/bitcore/address.js +407 -0
- package/dist/lib/bitcore/block/block.d.ts +57 -0
- package/dist/lib/bitcore/block/block.d.ts.map +1 -0
- package/dist/lib/bitcore/block/block.js +233 -0
- package/dist/lib/bitcore/block/blockheader.d.ts +82 -0
- package/dist/lib/bitcore/block/blockheader.d.ts.map +1 -0
- package/dist/lib/bitcore/block/blockheader.js +323 -0
- package/dist/lib/bitcore/block/index.d.ts +5 -0
- package/dist/lib/bitcore/block/index.d.ts.map +1 -0
- package/dist/lib/bitcore/block/index.js +2 -0
- package/dist/lib/bitcore/chunk.d.ts +22 -0
- package/dist/lib/bitcore/chunk.d.ts.map +1 -0
- package/dist/lib/bitcore/chunk.js +46 -0
- package/dist/lib/bitcore/crypto/bn.d.ts +53 -0
- package/dist/lib/bitcore/crypto/bn.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/bn.js +238 -0
- package/dist/lib/bitcore/crypto/ecdsa.d.ts +46 -0
- package/dist/lib/bitcore/crypto/ecdsa.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/ecdsa.js +247 -0
- package/dist/lib/bitcore/crypto/hash.d.ts +16 -0
- package/dist/lib/bitcore/crypto/hash.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/hash.js +87 -0
- package/dist/lib/bitcore/crypto/index.d.ts +9 -0
- package/dist/lib/bitcore/crypto/index.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/index.js +8 -0
- package/dist/lib/bitcore/crypto/musig2.d.ts +40 -0
- package/dist/lib/bitcore/crypto/musig2.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/musig2.js +236 -0
- package/dist/lib/bitcore/crypto/point.d.ts +20 -0
- package/dist/lib/bitcore/crypto/point.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/point.js +133 -0
- package/dist/lib/bitcore/crypto/random.d.ts +7 -0
- package/dist/lib/bitcore/crypto/random.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/random.js +30 -0
- package/dist/lib/bitcore/crypto/schnorr.d.ts +40 -0
- package/dist/lib/bitcore/crypto/schnorr.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/schnorr.js +185 -0
- package/dist/lib/bitcore/crypto/signature.d.ts +53 -0
- package/dist/lib/bitcore/crypto/signature.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/signature.js +300 -0
- package/dist/lib/bitcore/crypto/sigtype.d.ts +5 -0
- package/dist/lib/bitcore/crypto/sigtype.d.ts.map +1 -0
- package/dist/lib/bitcore/crypto/sigtype.js +18 -0
- package/dist/lib/bitcore/encoding/base58.d.ts +16 -0
- package/dist/lib/bitcore/encoding/base58.d.ts.map +1 -0
- package/dist/lib/bitcore/encoding/base58.js +55 -0
- package/dist/lib/bitcore/encoding/base58check.d.ts +9 -0
- package/dist/lib/bitcore/encoding/base58check.d.ts.map +1 -0
- package/dist/lib/bitcore/encoding/base58check.js +82 -0
- package/dist/lib/bitcore/encoding/bufferreader.d.ts +34 -0
- package/dist/lib/bitcore/encoding/bufferreader.d.ts.map +1 -0
- package/dist/lib/bitcore/encoding/bufferreader.js +198 -0
- package/dist/lib/bitcore/encoding/bufferwriter.d.ts +36 -0
- package/dist/lib/bitcore/encoding/bufferwriter.d.ts.map +1 -0
- package/dist/lib/bitcore/encoding/bufferwriter.js +189 -0
- package/dist/lib/bitcore/encoding/varint.d.ts +20 -0
- package/dist/lib/bitcore/encoding/varint.d.ts.map +1 -0
- package/dist/lib/bitcore/encoding/varint.js +61 -0
- package/dist/lib/bitcore/errors.d.ts +28 -0
- package/dist/lib/bitcore/errors.d.ts.map +1 -0
- package/dist/lib/bitcore/errors.js +325 -0
- package/dist/lib/bitcore/hdprivatekey.d.ts +78 -0
- package/dist/lib/bitcore/hdprivatekey.d.ts.map +1 -0
- package/dist/lib/bitcore/hdprivatekey.js +381 -0
- package/dist/lib/bitcore/hdpublickey.d.ts +98 -0
- package/dist/lib/bitcore/hdpublickey.d.ts.map +1 -0
- package/dist/lib/bitcore/hdpublickey.js +416 -0
- package/dist/lib/bitcore/index.d.ts +60 -0
- package/dist/lib/bitcore/index.d.ts.map +1 -0
- package/dist/lib/bitcore/index.js +44 -0
- package/dist/lib/bitcore/message.d.ts +23 -0
- package/dist/lib/bitcore/message.d.ts.map +1 -0
- package/dist/lib/bitcore/message.js +112 -0
- package/dist/lib/bitcore/mnemonic/errors.d.ts +7 -0
- package/dist/lib/bitcore/mnemonic/errors.d.ts.map +1 -0
- package/dist/lib/bitcore/mnemonic/errors.js +20 -0
- package/dist/lib/bitcore/mnemonic/index.d.ts +5 -0
- package/dist/lib/bitcore/mnemonic/index.d.ts.map +1 -0
- package/dist/lib/bitcore/mnemonic/index.js +4 -0
- package/dist/lib/bitcore/mnemonic/mnemonic.d.ts +23 -0
- package/dist/lib/bitcore/mnemonic/mnemonic.d.ts.map +1 -0
- package/dist/lib/bitcore/mnemonic/mnemonic.js +164 -0
- package/dist/lib/bitcore/mnemonic/pbkdf2.d.ts +2 -0
- package/dist/lib/bitcore/mnemonic/pbkdf2.d.ts.map +1 -0
- package/dist/lib/bitcore/mnemonic/pbkdf2.js +25 -0
- package/dist/lib/bitcore/mnemonic/words/english.d.ts +2 -0
- package/dist/lib/bitcore/mnemonic/words/english.d.ts.map +1 -0
- package/dist/lib/bitcore/mnemonic/words/english.js +2050 -0
- package/dist/lib/bitcore/mnemonic/words/index.d.ts +4 -0
- package/dist/lib/bitcore/mnemonic/words/index.d.ts.map +1 -0
- package/dist/lib/bitcore/mnemonic/words/index.js +4 -0
- package/dist/lib/bitcore/musig2/index.d.ts +3 -0
- package/dist/lib/bitcore/musig2/index.d.ts.map +1 -0
- package/dist/lib/bitcore/musig2/index.js +2 -0
- package/dist/lib/bitcore/musig2/session.d.ts +79 -0
- package/dist/lib/bitcore/musig2/session.d.ts.map +1 -0
- package/dist/lib/bitcore/musig2/session.js +346 -0
- package/dist/lib/bitcore/musig2/signer.d.ts +61 -0
- package/dist/lib/bitcore/musig2/signer.d.ts.map +1 -0
- package/dist/lib/bitcore/musig2/signer.js +146 -0
- package/dist/lib/bitcore/networks.d.ts +53 -0
- package/dist/lib/bitcore/networks.d.ts.map +1 -0
- package/dist/lib/bitcore/networks.js +150 -0
- package/dist/lib/bitcore/opcode.d.ts +250 -0
- package/dist/lib/bitcore/opcode.d.ts.map +1 -0
- package/dist/lib/bitcore/opcode.js +270 -0
- package/dist/lib/bitcore/privatekey.d.ts +56 -0
- package/dist/lib/bitcore/privatekey.d.ts.map +1 -0
- package/dist/lib/bitcore/privatekey.js +237 -0
- package/dist/lib/bitcore/publickey.d.ts +59 -0
- package/dist/lib/bitcore/publickey.d.ts.map +1 -0
- package/dist/lib/bitcore/publickey.js +263 -0
- package/dist/lib/bitcore/script/interpreter.d.ts +98 -0
- package/dist/lib/bitcore/script/interpreter.d.ts.map +1 -0
- package/dist/lib/bitcore/script/interpreter.js +1704 -0
- package/dist/lib/bitcore/script.d.ts +111 -0
- package/dist/lib/bitcore/script.d.ts.map +1 -0
- package/dist/lib/bitcore/script.js +1112 -0
- package/dist/lib/bitcore/taproot/musig2.d.ts +29 -0
- package/dist/lib/bitcore/taproot/musig2.d.ts.map +1 -0
- package/dist/lib/bitcore/taproot/musig2.js +104 -0
- package/dist/lib/bitcore/taproot/nft.d.ts +164 -0
- package/dist/lib/bitcore/taproot/nft.d.ts.map +1 -0
- package/dist/lib/bitcore/taproot/nft.js +407 -0
- package/dist/lib/bitcore/taproot.d.ts +65 -0
- package/dist/lib/bitcore/taproot.d.ts.map +1 -0
- package/dist/lib/bitcore/taproot.js +288 -0
- package/dist/lib/bitcore/transaction/index.d.ts +12 -0
- package/dist/lib/bitcore/transaction/index.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/index.js +6 -0
- package/dist/lib/bitcore/transaction/input.d.ts +202 -0
- package/dist/lib/bitcore/transaction/input.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/input.js +911 -0
- package/dist/lib/bitcore/transaction/output.d.ts +48 -0
- package/dist/lib/bitcore/transaction/output.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/output.js +231 -0
- package/dist/lib/bitcore/transaction/sighash.d.ts +32 -0
- package/dist/lib/bitcore/transaction/sighash.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/sighash.js +335 -0
- package/dist/lib/bitcore/transaction/signature.d.ts +36 -0
- package/dist/lib/bitcore/transaction/signature.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/signature.js +130 -0
- package/dist/lib/bitcore/transaction/transaction.d.ts +164 -0
- package/dist/lib/bitcore/transaction/transaction.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/transaction.js +1016 -0
- package/dist/lib/bitcore/transaction/unspentoutput.d.ts +58 -0
- package/dist/lib/bitcore/transaction/unspentoutput.d.ts.map +1 -0
- package/dist/lib/bitcore/transaction/unspentoutput.js +167 -0
- package/dist/lib/bitcore/unit.d.ts +44 -0
- package/dist/lib/bitcore/unit.d.ts.map +1 -0
- package/dist/lib/bitcore/unit.js +106 -0
- package/dist/lib/bitcore/uri.d.ts +29 -0
- package/dist/lib/bitcore/uri.d.ts.map +1 -0
- package/dist/lib/bitcore/uri.js +163 -0
- package/dist/lib/bitcore/util/base32.d.ts +5 -0
- package/dist/lib/bitcore/util/base32.d.ts.map +1 -0
- package/dist/lib/bitcore/util/base32.js +58 -0
- package/dist/lib/bitcore/util/buffer.d.ts +18 -0
- package/dist/lib/bitcore/util/buffer.d.ts.map +1 -0
- package/dist/lib/bitcore/util/buffer.js +76 -0
- package/dist/lib/bitcore/util/convertBits.d.ts +2 -0
- package/dist/lib/bitcore/util/convertBits.d.ts.map +1 -0
- package/dist/lib/bitcore/util/convertBits.js +26 -0
- package/dist/lib/bitcore/util/js.d.ts +9 -0
- package/dist/lib/bitcore/util/js.d.ts.map +1 -0
- package/dist/lib/bitcore/util/js.js +45 -0
- package/dist/lib/bitcore/util/preconditions.d.ts +6 -0
- package/dist/lib/bitcore/util/preconditions.d.ts.map +1 -0
- package/dist/lib/bitcore/util/preconditions.js +31 -0
- package/dist/lib/bitcore/util.d.ts +14 -0
- package/dist/lib/bitcore/util.d.ts.map +1 -0
- package/dist/lib/bitcore/util.js +13 -0
- package/dist/lib/bitcore/xaddress.d.ts +45 -0
- package/dist/lib/bitcore/xaddress.d.ts.map +1 -0
- package/dist/lib/bitcore/xaddress.js +279 -0
- package/dist/lib/rank/api.d.ts +75 -0
- package/dist/lib/rank/api.d.ts.map +1 -0
- package/dist/lib/rank/api.js +4 -0
- package/dist/lib/rank/index.d.ts +127 -0
- package/dist/lib/rank/index.d.ts.map +1 -0
- package/dist/lib/rank/index.js +421 -0
- package/dist/lib/rank/opcode.d.ts +23 -0
- package/dist/lib/rank/opcode.d.ts.map +1 -0
- package/dist/lib/rank/opcode.js +23 -0
- package/dist/lib/rank/script.d.ts +2 -0
- package/dist/lib/rank/script.d.ts.map +1 -0
- package/dist/lib/rank/script.js +7 -0
- package/dist/lib/rank/transaction.d.ts +3 -0
- package/dist/lib/rank/transaction.d.ts.map +1 -0
- package/dist/lib/rank/transaction.js +12 -0
- package/dist/lib/rpc.d.ts +136 -0
- package/dist/lib/rpc.d.ts.map +1 -0
- package/dist/lib/rpc.js +62 -0
- package/dist/utils/constants.d.ts +18 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +20 -0
- package/dist/utils/env.d.ts +3 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +8 -0
- package/dist/utils/string.d.ts +11 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +47 -0
- package/dist/utils/types.d.ts +2 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +1 -0
- package/dist/utils/wallet.d.ts +12 -0
- package/dist/utils/wallet.d.ts.map +1 -0
- package/dist/utils/wallet.js +28 -0
- 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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"}
|