@opcat-labs/opcat 1.0.0 → 1.0.2
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/.cjs2esm.json +18 -0
- package/.mocharc.yaml +1 -1
- package/CHANGELOG.md +13 -0
- package/README.md +6 -0
- package/{lib/address.js → cjs/address.cjs} +77 -72
- package/cjs/block/block.cjs +332 -0
- package/{lib/block/blockheader.js → cjs/block/blockheader.cjs} +8 -7
- package/cjs/block/index.cjs +2 -0
- package/{lib/block/merkleblock.js → cjs/block/merkleblock.cjs} +23 -15
- package/cjs/bn.cjs +3411 -0
- package/{lib/crypto/bn.js → cjs/crypto/bn.cjs} +3 -3
- package/{lib/crypto/ecdsa.js → cjs/crypto/ecdsa.cjs} +150 -14
- package/{lib/crypto/hash.node.js → cjs/crypto/hash.cjs} +13 -2
- package/cjs/crypto/index.cjs +16 -0
- package/{lib/crypto/point.js → cjs/crypto/point.cjs} +11 -4
- package/cjs/crypto/random.cjs +18 -0
- package/{lib/crypto/signature.js → cjs/crypto/signature.cjs} +158 -8
- package/{lib/encoding/base58.js → cjs/encoding/base58.cjs} +58 -2
- package/cjs/encoding/base58check.cjs +192 -0
- package/cjs/encoding/bufferreader.cjs +333 -0
- package/cjs/encoding/bufferwriter.cjs +244 -0
- package/{lib/encoding/decode-asm.js → cjs/encoding/decode-asm.cjs} +4 -4
- package/{lib/encoding/decode-hex.js → cjs/encoding/decode-hex.cjs} +1 -1
- package/cjs/encoding/index.cjs +14 -0
- package/cjs/encoding/varint.cjs +116 -0
- package/{lib/errors/index.js → cjs/errors/index.cjs} +9 -9
- package/{lib/errors/spec.js → cjs/errors/spec.cjs} +2 -2
- package/cjs/hash-cache.cjs +98 -0
- package/{lib/hdprivatekey.js → cjs/hdprivatekey.cjs} +232 -140
- package/{lib/hdpublickey.js → cjs/hdpublickey.cjs} +120 -93
- package/cjs/index.cjs +94 -0
- package/cjs/interpreter/index.cjs +2 -0
- package/cjs/interpreter/interpreter.cjs +1988 -0
- package/{lib/script/stack.js → cjs/interpreter/stack.cjs} +9 -2
- package/{lib/message/message.js → cjs/message/message.cjs} +62 -25
- package/cjs/mnemonic/index.cjs +3 -0
- package/{lib/mnemonic/mnemonic.js → cjs/mnemonic/mnemonic.cjs} +44 -13
- package/{lib/mnemonic/pbkdf2.node.js → cjs/mnemonic/pbkdf2.cjs} +9 -2
- package/cjs/mnemonic/words/index.cjs +66 -0
- package/cjs/network.cjs +13 -0
- package/cjs/networks.cjs +321 -0
- package/{lib/opcode.js → cjs/opcode.cjs} +69 -5
- package/cjs/privatekey.cjs +422 -0
- package/{lib/publickey.js → cjs/publickey.cjs} +14 -16
- package/cjs/script/index.cjs +2 -0
- package/{lib/script/script.js → cjs/script/script.cjs} +322 -67
- package/cjs/transaction/index.cjs +5 -0
- package/cjs/transaction/input/index.cjs +34 -0
- package/cjs/transaction/input/input.cjs +396 -0
- package/{lib/transaction/input/multisig.js → cjs/transaction/input/multisig.cjs} +112 -18
- package/{lib/transaction/input/publickey.js → cjs/transaction/input/publickey.cjs} +29 -19
- package/{lib/transaction/input/publickeyhash.js → cjs/transaction/input/publickeyhash.cjs} +25 -17
- package/{lib/transaction/output.js → cjs/transaction/output.cjs} +100 -15
- package/cjs/transaction/sighash.cjs +187 -0
- package/{lib/transaction/signature.js → cjs/transaction/signature.cjs} +30 -6
- package/cjs/transaction/transaction.cjs +2000 -0
- package/{lib/transaction/unspentoutput.js → cjs/transaction/unspentoutput.cjs} +5 -5
- package/cjs/util/derivation.cjs +53 -0
- package/cjs/util/index.cjs +11 -0
- package/cjs/util/js.cjs +95 -0
- package/{lib/util/preconditions.js → cjs/util/preconditions.cjs} +2 -2
- package/esm/address.js +483 -0
- package/{lib → esm}/block/block.js +82 -27
- package/esm/block/blockheader.js +296 -0
- package/esm/block/index.js +2 -0
- package/esm/block/merkleblock.js +331 -0
- package/esm/bn.js +3411 -0
- package/esm/crypto/bn.js +278 -0
- package/esm/crypto/ecdsa.js +475 -0
- package/{lib/crypto/hash.browser.js → esm/crypto/hash.js} +18 -7
- package/esm/crypto/index.js +16 -0
- package/esm/crypto/point.js +228 -0
- package/esm/crypto/random.js +18 -0
- package/esm/crypto/signature.js +475 -0
- package/esm/encoding/base58.js +167 -0
- package/esm/encoding/base58check.js +192 -0
- package/esm/encoding/bufferreader.js +333 -0
- package/esm/encoding/bufferwriter.js +243 -0
- package/esm/encoding/decode-asm.js +24 -0
- package/esm/encoding/decode-hex.js +32 -0
- package/esm/encoding/decode-script-chunks.js +43 -0
- package/esm/encoding/encode-hex.js +284 -0
- package/esm/encoding/index.js +14 -0
- package/esm/encoding/is-hex.js +7 -0
- package/esm/encoding/varint.js +116 -0
- package/esm/errors/index.js +54 -0
- package/esm/errors/spec.js +314 -0
- package/esm/hash-cache.js +98 -0
- package/esm/hdprivatekey.js +768 -0
- package/esm/hdpublickey.js +549 -0
- package/esm/index.js +66 -0
- package/esm/interpreter/index.js +2 -0
- package/{lib/script → esm/interpreter}/interpreter.js +219 -66
- package/esm/interpreter/stack.js +116 -0
- package/esm/message/message.js +228 -0
- package/esm/mnemonic/index.js +3 -0
- package/esm/mnemonic/mnemonic.js +332 -0
- package/{lib/mnemonic/pbkdf2.browser.js → esm/mnemonic/pbkdf2.js} +13 -6
- package/esm/mnemonic/words/chinese.js +2054 -0
- package/esm/mnemonic/words/english.js +2054 -0
- package/esm/mnemonic/words/french.js +2054 -0
- package/esm/mnemonic/words/index.js +66 -0
- package/esm/mnemonic/words/italian.js +2054 -0
- package/esm/mnemonic/words/japanese.js +2054 -0
- package/esm/mnemonic/words/spanish.js +2054 -0
- package/esm/network.js +13 -0
- package/{lib → esm}/networks.js +61 -120
- package/esm/opcode.js +319 -0
- package/{lib → esm}/privatekey.js +76 -28
- package/esm/publickey.js +384 -0
- package/esm/script/index.js +2 -0
- package/esm/script/script.js +1329 -0
- package/esm/script/write-i32-le.js +17 -0
- package/esm/script/write-push-data.js +35 -0
- package/esm/script/write-u16-le.js +12 -0
- package/esm/script/write-u32-le.js +16 -0
- package/esm/script/write-u64-le.js +24 -0
- package/esm/script/write-u8-le.js +8 -0
- package/esm/script/write-varint.js +46 -0
- package/esm/transaction/index.js +5 -0
- package/esm/transaction/input/index.js +33 -0
- package/{lib → esm}/transaction/input/input.js +132 -90
- package/esm/transaction/input/multisig.js +335 -0
- package/esm/transaction/input/publickey.js +108 -0
- package/esm/transaction/input/publickeyhash.js +124 -0
- package/esm/transaction/output.js +316 -0
- package/{lib → esm}/transaction/sighash.js +42 -22
- package/esm/transaction/signature.js +120 -0
- package/{lib → esm}/transaction/transaction.js +522 -163
- package/esm/transaction/unspentoutput.js +112 -0
- package/esm/util/_.js +47 -0
- package/esm/util/derivation.js +53 -0
- package/esm/util/index.js +12 -0
- package/esm/util/js.js +95 -0
- package/esm/util/preconditions.js +33 -0
- package/fixup.cjs +17 -0
- package/package.json +40 -26
- package/test/{address.js → address.cjs} +14 -43
- package/test/block/{block.js → block.cjs} +3 -5
- package/test/block/{blockheader.js → blockheader.cjs} +2 -2
- package/test/block/{merklebloack.js → merklebloack.cjs} +2 -2
- package/test/crypto/{ecdsa.js → ecdsa.cjs} +9 -9
- package/test/crypto/{hash.browser.js → hash.browser.cjs} +2 -1
- package/test/crypto/{signature.js → signature.cjs} +2 -2
- package/test/data/bitcoind/script_tests.json +5 -5
- package/test/{hashCache.js → hashCache.cjs} +2 -1
- package/test/{hdkeys.js → hdkeys.cjs} +4 -2
- package/test/{hdprivatekey.js → hdprivatekey.cjs} +7 -6
- package/test/{hdpublickey.js → hdpublickey.cjs} +2 -7
- package/test/mnemonic/{pbkdf2.test.js → pbkdf2.test.cjs} +2 -2
- package/test/{networks.js → networks.cjs} +12 -31
- package/test/{publickey.js → publickey.cjs} +2 -2
- package/test/script/{interpreter.js → interpreter.cjs} +5 -5
- package/test/script/{script.js → script.cjs} +8 -2
- package/test/transaction/{deserialize.js → deserialize.cjs} +2 -2
- package/test/transaction/input/{input.js → input.cjs} +1 -1
- package/test/transaction/input/{multisig.js → multisig.cjs} +2 -1
- package/test/transaction/input/{publickeyhash.js → publickeyhash.cjs} +1 -1
- package/test/transaction/{sighash.js → sighash.cjs} +1 -1
- package/test/transaction/{transaction.js → transaction.cjs} +2 -2
- package/tsconfig.json +13 -0
- package/types/address.d.cts +252 -0
- package/types/block/block.d.cts +139 -0
- package/types/block/blockheader.d.cts +125 -0
- package/types/block/index.d.cts +2 -0
- package/types/block/merkleblock.d.cts +95 -0
- package/types/bn.d.cts +202 -0
- package/types/crypto/bn.d.cts +2 -0
- package/types/crypto/ecdsa.d.cts +187 -0
- package/types/crypto/hash.d.cts +118 -0
- package/types/crypto/index.d.cts +7 -0
- package/types/crypto/point.d.cts +134 -0
- package/types/crypto/random.d.cts +13 -0
- package/types/crypto/signature.d.cts +160 -0
- package/types/encoding/base58.d.cts +106 -0
- package/types/encoding/base58check.d.cts +107 -0
- package/types/encoding/bufferreader.d.cts +164 -0
- package/types/encoding/bufferwriter.d.cts +126 -0
- package/types/encoding/decode-asm.d.cts +2 -0
- package/types/encoding/decode-hex.d.cts +2 -0
- package/types/encoding/decode-script-chunks.d.cts +14 -0
- package/types/encoding/encode-hex.d.cts +2 -0
- package/types/encoding/index.d.cts +6 -0
- package/types/encoding/is-hex.d.cts +2 -0
- package/types/encoding/varint.d.cts +66 -0
- package/types/errors/index.d.cts +4 -0
- package/types/errors/spec.d.cts +22 -0
- package/types/hash-cache.d.cts +65 -0
- package/types/hdprivatekey.d.cts +281 -0
- package/types/hdpublickey.d.cts +240 -0
- package/types/index.d.cts +26 -0
- package/types/interpreter/index.d.cts +2 -0
- package/types/interpreter/interpreter.d.cts +228 -0
- package/types/interpreter/stack.d.cts +35 -0
- package/types/message/message.d.cts +110 -0
- package/types/mnemonic/index.d.cts +2 -0
- package/types/mnemonic/mnemonic.d.cts +171 -0
- package/types/mnemonic/pbkdf2.d.cts +14 -0
- package/types/mnemonic/words/chinese.d.cts +2 -0
- package/types/mnemonic/words/english.d.cts +2 -0
- package/types/mnemonic/words/french.d.cts +2 -0
- package/types/mnemonic/words/index.d.cts +22 -0
- package/types/mnemonic/words/italian.d.cts +2 -0
- package/types/mnemonic/words/japanese.d.cts +2 -0
- package/types/mnemonic/words/spanish.d.cts +2 -0
- package/types/network.d.cts +11 -0
- package/types/networks.d.cts +76 -0
- package/types/opcode.d.cts +93 -0
- package/types/privatekey.d.cts +169 -0
- package/types/publickey.d.cts +202 -0
- package/types/script/index.d.cts +2 -0
- package/types/script/script.d.cts +449 -0
- package/types/script/write-i32-le.d.cts +2 -0
- package/types/script/write-push-data.d.cts +2 -0
- package/types/script/write-u16-le.d.cts +2 -0
- package/types/script/write-u32-le.d.cts +2 -0
- package/types/script/write-u64-le.d.cts +2 -0
- package/types/script/write-u8-le.d.cts +2 -0
- package/types/script/write-varint.d.cts +2 -0
- package/types/transaction/index.d.cts +2 -0
- package/types/transaction/input/index.d.cts +2 -0
- package/types/transaction/input/input.d.cts +178 -0
- package/types/transaction/input/multisig.d.cts +127 -0
- package/types/transaction/input/publickey.d.cts +44 -0
- package/types/transaction/input/publickeyhash.d.cts +45 -0
- package/types/transaction/output.d.cts +118 -0
- package/types/transaction/sighash.d.cts +61 -0
- package/types/transaction/signature.d.cts +43 -0
- package/types/transaction/transaction.d.cts +716 -0
- package/types/transaction/unspentoutput.d.cts +83 -0
- package/types/util/_.d.cts +26 -0
- package/types/util/derivation.d.cts +21 -0
- package/types/util/index.d.cts +5 -0
- package/types/util/js.d.cts +50 -0
- package/types/util/preconditions.d.cts +3 -0
- package/index.d.ts +0 -1541
- package/index.js +0 -74
- package/lib/block/index.js +0 -4
- package/lib/bn.js +0 -3423
- package/lib/crypto/hash.js +0 -2
- package/lib/crypto/random.browser.js +0 -28
- package/lib/crypto/random.js +0 -2
- package/lib/crypto/random.node.js +0 -11
- package/lib/encoding/base58check.js +0 -121
- package/lib/encoding/bufferreader.js +0 -212
- package/lib/encoding/bufferwriter.js +0 -140
- package/lib/encoding/varint.js +0 -75
- package/lib/hash-cache.js +0 -50
- package/lib/mnemonic/pbkdf2.js +0 -2
- package/lib/mnemonic/words/index.js +0 -8
- package/lib/script/index.js +0 -5
- package/lib/transaction/index.js +0 -7
- package/lib/transaction/input/index.js +0 -5
- package/lib/util/js.js +0 -90
- /package/{lib/encoding/decode-script-chunks.js → cjs/encoding/decode-script-chunks.cjs} +0 -0
- /package/{lib/encoding/encode-hex.js → cjs/encoding/encode-hex.cjs} +0 -0
- /package/{lib/encoding/is-hex.js → cjs/encoding/is-hex.cjs} +0 -0
- /package/{lib/mnemonic/words/chinese.js → cjs/mnemonic/words/chinese.cjs} +0 -0
- /package/{lib/mnemonic/words/english.js → cjs/mnemonic/words/english.cjs} +0 -0
- /package/{lib/mnemonic/words/french.js → cjs/mnemonic/words/french.cjs} +0 -0
- /package/{lib/mnemonic/words/italian.js → cjs/mnemonic/words/italian.cjs} +0 -0
- /package/{lib/mnemonic/words/japanese.js → cjs/mnemonic/words/japanese.cjs} +0 -0
- /package/{lib/mnemonic/words/spanish.js → cjs/mnemonic/words/spanish.cjs} +0 -0
- /package/{lib/script/write-i32-le.js → cjs/script/write-i32-le.cjs} +0 -0
- /package/{lib/script/write-push-data.js → cjs/script/write-push-data.cjs} +0 -0
- /package/{lib/script/write-u16-le.js → cjs/script/write-u16-le.cjs} +0 -0
- /package/{lib/script/write-u32-le.js → cjs/script/write-u32-le.cjs} +0 -0
- /package/{lib/script/write-u64-le.js → cjs/script/write-u64-le.cjs} +0 -0
- /package/{lib/script/write-u8-le.js → cjs/script/write-u8-le.cjs} +0 -0
- /package/{lib/script/write-varint.js → cjs/script/write-varint.cjs} +0 -0
- /package/{lib/util/_.js → cjs/util/_.cjs} +0 -0
- /package/test/crypto/{bn.js → bn.cjs} +0 -0
- /package/test/crypto/{hash.js → hash.cjs} +0 -0
- /package/test/crypto/{point.js → point.cjs} +0 -0
- /package/test/crypto/{random.js → random.cjs} +0 -0
- /package/test/data/{blk86756-testnet.js → blk86756-testnet.cjs} +0 -0
- /package/test/data/{merkleblocks.js → merkleblocks.cjs} +0 -0
- /package/test/encoding/{base58.js → base58.cjs} +0 -0
- /package/test/encoding/{base58check.js → base58check.cjs} +0 -0
- /package/test/encoding/{bufferreader.js → bufferreader.cjs} +0 -0
- /package/test/encoding/{bufferwriter.js → bufferwriter.cjs} +0 -0
- /package/test/encoding/{varint.js → varint.cjs} +0 -0
- /package/test/{index.js → index.cjs} +0 -0
- /package/test/message/{message.js → message.cjs} +0 -0
- /package/test/mnemonic/{mnemonic.js → mnemonic.cjs} +0 -0
- /package/test/{opcode.js → opcode.cjs} +0 -0
- /package/test/{privatekey.js → privatekey.cjs} +0 -0
- /package/test/transaction/input/{publickey.js → publickey.cjs} +0 -0
- /package/test/transaction/{output.js → output.cjs} +0 -0
- /package/test/transaction/{signature.js → signature.cjs} +0 -0
- /package/test/transaction/{unspentoutput.js → unspentoutput.cjs} +0 -0
- /package/test/util/{js.js → js.cjs} +0 -0
- /package/test/util/{preconditions.js → preconditions.cjs} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export = Networks;
|
|
2
|
+
/**
|
|
3
|
+
* A tool class for managing all supported networks
|
|
4
|
+
* @constructor
|
|
5
|
+
*/
|
|
6
|
+
declare function Networks(): void;
|
|
7
|
+
declare namespace Networks {
|
|
8
|
+
/**
|
|
9
|
+
* @function
|
|
10
|
+
* @member Networks#get
|
|
11
|
+
* Retrieves the network associated with a magic number or string.
|
|
12
|
+
* @param {string|number|Network} arg
|
|
13
|
+
* @param {string|Array} keys - if set, only check if the magic number associated with this name matches
|
|
14
|
+
* @return Network
|
|
15
|
+
*/
|
|
16
|
+
export function get(arg: string | number | Network, keys: string | any[]): any;
|
|
17
|
+
/**
|
|
18
|
+
* @function
|
|
19
|
+
* @member Networks#add
|
|
20
|
+
* Will add a custom Network
|
|
21
|
+
* @param {Object} data
|
|
22
|
+
* @param {string} data.name - The name of the network
|
|
23
|
+
* @param {string} data.alias - The aliased name of the network
|
|
24
|
+
* @param {Number} data.pubkeyhash - The publickey hash cashAddrPrefix
|
|
25
|
+
* @param {Number} data.privatekey - The privatekey cashAddrPrefix
|
|
26
|
+
* @param {Number} data.scripthash - The scripthash cashAddrPrefix
|
|
27
|
+
* @param {Number} data.xpubkey - The extended public key magic
|
|
28
|
+
* @param {Number} data.xprivkey - The extended private key magic
|
|
29
|
+
* @param {Number} data.networkMagic - The network magic number
|
|
30
|
+
* @param {Number} data.port - The network port
|
|
31
|
+
* @param {Array} data.dnsSeeds - An array of dns seeds
|
|
32
|
+
* @return Network
|
|
33
|
+
*/
|
|
34
|
+
export function add(data: {
|
|
35
|
+
name: string;
|
|
36
|
+
alias: string;
|
|
37
|
+
pubkeyhash: number;
|
|
38
|
+
privatekey: number;
|
|
39
|
+
scripthash: number;
|
|
40
|
+
xpubkey: number;
|
|
41
|
+
xprivkey: number;
|
|
42
|
+
networkMagic: number;
|
|
43
|
+
port: number;
|
|
44
|
+
dnsSeeds: any[];
|
|
45
|
+
}): Network;
|
|
46
|
+
/**
|
|
47
|
+
* @function
|
|
48
|
+
* @member Networks#remove
|
|
49
|
+
* Will remove a custom network
|
|
50
|
+
* @param {Network} network
|
|
51
|
+
*/
|
|
52
|
+
export function remove(network: Network): void;
|
|
53
|
+
export { livenet };
|
|
54
|
+
export { regtest };
|
|
55
|
+
export { testnet };
|
|
56
|
+
export { livenet as defaultNetwork };
|
|
57
|
+
/**
|
|
58
|
+
* Enables regtest network mode for testing purposes.
|
|
59
|
+
* @member Networks#enableRegtest
|
|
60
|
+
* @function
|
|
61
|
+
*/
|
|
62
|
+
export function enableRegtest(): void;
|
|
63
|
+
/**
|
|
64
|
+
* @function
|
|
65
|
+
* @member Networks#disableRegtest
|
|
66
|
+
* Disables the regtest network configuration.
|
|
67
|
+
* This sets the `regtestEnabled` flag to false in the testnet configuration.
|
|
68
|
+
*/
|
|
69
|
+
export function disableRegtest(): void;
|
|
70
|
+
}
|
|
71
|
+
declare class Networks {
|
|
72
|
+
}
|
|
73
|
+
import Network = require("./network.cjs");
|
|
74
|
+
declare var livenet: any;
|
|
75
|
+
declare var regtest: any;
|
|
76
|
+
declare var testnet: any;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export = Opcode;
|
|
2
|
+
/**
|
|
3
|
+
* Creates an Opcode instance from a number or string representation.
|
|
4
|
+
* @constructor
|
|
5
|
+
* @param {number|string} num - The numeric value or string name of the opcode
|
|
6
|
+
* @throws {TypeError} If the input type is not recognized
|
|
7
|
+
* @returns {Opcode} A new Opcode instance
|
|
8
|
+
*/
|
|
9
|
+
declare function Opcode(num: number | string): Opcode;
|
|
10
|
+
declare class Opcode {
|
|
11
|
+
/**
|
|
12
|
+
* Creates an Opcode instance from a number or string representation.
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {number|string} num - The numeric value or string name of the opcode
|
|
15
|
+
* @throws {TypeError} If the input type is not recognized
|
|
16
|
+
* @returns {Opcode} A new Opcode instance
|
|
17
|
+
*/
|
|
18
|
+
constructor(num: number | string);
|
|
19
|
+
/**
|
|
20
|
+
* Converts the opcode number to its hexadecimal string representation.
|
|
21
|
+
* @returns {string} Hexadecimal string of the opcode number.
|
|
22
|
+
*/
|
|
23
|
+
toHex(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Converts the opcode to a Buffer by first converting it to a hex string.
|
|
26
|
+
* @returns {Buffer} The opcode represented as a Buffer.
|
|
27
|
+
*/
|
|
28
|
+
toBuffer(): Buffer;
|
|
29
|
+
/**
|
|
30
|
+
* Gets the numeric value of the opcode.
|
|
31
|
+
* @returns {number} The numeric representation of the opcode.
|
|
32
|
+
*/
|
|
33
|
+
toNumber(): number;
|
|
34
|
+
/**
|
|
35
|
+
* Converts the opcode number to its string representation.
|
|
36
|
+
* @throws {Error} If the opcode number has no corresponding string mapping.
|
|
37
|
+
* @returns {string} The string representation of the opcode.
|
|
38
|
+
*/
|
|
39
|
+
toString(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Converts the opcode to a human-readable string representation.
|
|
42
|
+
* If the opcode has a known mnemonic, returns that string.
|
|
43
|
+
* Otherwise, returns the hexadecimal representation of the opcode.
|
|
44
|
+
* @returns {string} The safe string representation of the opcode.
|
|
45
|
+
*/
|
|
46
|
+
toSafeString(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Will return a string formatted for the console
|
|
49
|
+
*
|
|
50
|
+
* @returns {string} Script opcode
|
|
51
|
+
*/
|
|
52
|
+
inspect(): string;
|
|
53
|
+
}
|
|
54
|
+
declare namespace Opcode {
|
|
55
|
+
/**
|
|
56
|
+
* Creates an Opcode instance from a Buffer.
|
|
57
|
+
* @param {Buffer} buf - The buffer containing the opcode data.
|
|
58
|
+
* @returns {Opcode} The constructed Opcode instance.
|
|
59
|
+
* @throws {Error} If the input is not a Buffer.
|
|
60
|
+
*/
|
|
61
|
+
function fromBuffer(buf: Buffer): Opcode;
|
|
62
|
+
/**
|
|
63
|
+
* Creates an Opcode instance from a number.
|
|
64
|
+
* @param {number} num - The numeric value to convert to an Opcode.
|
|
65
|
+
* @returns {Opcode} A new Opcode instance.
|
|
66
|
+
* @throws {Error} If the input is not a number.
|
|
67
|
+
*/
|
|
68
|
+
function fromNumber(num: number): Opcode;
|
|
69
|
+
/**
|
|
70
|
+
* Creates an Opcode instance from a string representation.
|
|
71
|
+
* @param {string} str - The string representation of the opcode.
|
|
72
|
+
* @returns {Opcode} A new Opcode instance corresponding to the input string.
|
|
73
|
+
* @throws {TypeError} If the input string is not a valid opcode representation.
|
|
74
|
+
*/
|
|
75
|
+
function fromString(str: string): Opcode;
|
|
76
|
+
/**
|
|
77
|
+
* Converts a small integer (0-16) to its corresponding opcode.
|
|
78
|
+
* @param {number} n - The integer to convert (must be between 0 and 16)
|
|
79
|
+
* @returns {Opcode} The corresponding opcode (OP_0 for 0, OP_1+n-1 for 1-16)
|
|
80
|
+
* @throws {Error} If n is not a number or outside valid range
|
|
81
|
+
*/
|
|
82
|
+
function smallInt(n: number): Opcode;
|
|
83
|
+
let map: {
|
|
84
|
+
[x: string]: number;
|
|
85
|
+
};
|
|
86
|
+
let reverseMap: any[];
|
|
87
|
+
/**
|
|
88
|
+
* Checks if the given opcode is a small integer opcode (OP_0 to OP_16).
|
|
89
|
+
* @param {number|Opcode} opcode - The opcode to check, either as a number or Opcode instance.
|
|
90
|
+
* @returns {boolean} True if the opcode is a small integer opcode, false otherwise.
|
|
91
|
+
*/
|
|
92
|
+
function isSmallIntOp(opcode: number | Opcode): boolean;
|
|
93
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
export = PrivateKey;
|
|
2
|
+
/**
|
|
3
|
+
* Instantiate a PrivateKey from a BN, Buffer or WIF string.
|
|
4
|
+
*
|
|
5
|
+
* @param {string|BN|Buffer|Object} data - The encoded data in various formats
|
|
6
|
+
* @param {Network|string} [network] - a {@link Network} object, or a string with the network name
|
|
7
|
+
* @returns {PrivateKey} A new valid instance of an PrivateKey
|
|
8
|
+
* @constructor
|
|
9
|
+
*/
|
|
10
|
+
declare function PrivateKey(data: string | BN | Buffer | any, network?: Network | string): PrivateKey;
|
|
11
|
+
declare class PrivateKey {
|
|
12
|
+
/**
|
|
13
|
+
* Instantiate a PrivateKey from a BN, Buffer or WIF string.
|
|
14
|
+
*
|
|
15
|
+
* @param {string|BN|Buffer|Object} data - The encoded data in various formats
|
|
16
|
+
* @param {Network|string} [network] - a {@link Network} object, or a string with the network name
|
|
17
|
+
* @returns {PrivateKey} A new valid instance of an PrivateKey
|
|
18
|
+
* @constructor
|
|
19
|
+
*/
|
|
20
|
+
constructor(data: string | BN | Buffer | any, network?: Network | string);
|
|
21
|
+
get publicKey(): PublicKey;
|
|
22
|
+
get network(): any;
|
|
23
|
+
get compressed(): any;
|
|
24
|
+
private _classifyArguments;
|
|
25
|
+
/**
|
|
26
|
+
* Will output the PrivateKey in WIF
|
|
27
|
+
*
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
toString(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Will output the PrivateKey to a WIF string
|
|
33
|
+
*
|
|
34
|
+
* @returns {string} A WIP representation of the private key
|
|
35
|
+
*/
|
|
36
|
+
toWIF(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Will return the private key as a BN instance
|
|
39
|
+
*
|
|
40
|
+
* @returns {BN} A BN instance of the private key
|
|
41
|
+
*/
|
|
42
|
+
toBigNumber(): BN;
|
|
43
|
+
/**
|
|
44
|
+
* Will return the private key as a BN buffer
|
|
45
|
+
*
|
|
46
|
+
* @returns {Buffer} A buffer of the private key
|
|
47
|
+
*/
|
|
48
|
+
toBuffer(): Buffer;
|
|
49
|
+
/**
|
|
50
|
+
* Converts the private key to a hexadecimal string representation.
|
|
51
|
+
* @returns {string} Hexadecimal string of the private key.
|
|
52
|
+
*/
|
|
53
|
+
toHex(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Will return the corresponding public key
|
|
56
|
+
*
|
|
57
|
+
* @returns {PublicKey} A public key generated from the private key
|
|
58
|
+
*/
|
|
59
|
+
toPublicKey(): PublicKey;
|
|
60
|
+
_pubkey: PublicKey;
|
|
61
|
+
/**
|
|
62
|
+
* Will return an address for the private key
|
|
63
|
+
* @param {Network|string} [network] - optional parameter specifying
|
|
64
|
+
* the desired network for the address
|
|
65
|
+
*
|
|
66
|
+
* @returns {Address} An address generated from the private key
|
|
67
|
+
*/
|
|
68
|
+
toAddress(network?: Network | string): Address;
|
|
69
|
+
/**
|
|
70
|
+
* @returns {Object} A plain object representation
|
|
71
|
+
*/
|
|
72
|
+
toObject: () => any;
|
|
73
|
+
toJSON(): any;
|
|
74
|
+
/**
|
|
75
|
+
* Will return a string formatted for the console
|
|
76
|
+
*
|
|
77
|
+
* @returns {string} Private key
|
|
78
|
+
*/
|
|
79
|
+
inspect(): string;
|
|
80
|
+
}
|
|
81
|
+
declare namespace PrivateKey {
|
|
82
|
+
/**
|
|
83
|
+
* Internal function to get a random Big Number (BN)
|
|
84
|
+
*
|
|
85
|
+
* @returns {BN} A new randomly generated BN
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
function _getRandomBN(): BN;
|
|
89
|
+
/**
|
|
90
|
+
* Internal function to transform a WIF Buffer into a private key
|
|
91
|
+
*
|
|
92
|
+
* @param {Buffer} buf - An WIF string
|
|
93
|
+
* @param {Network|string} [network] - a {@link Network} object, or a string with the network name
|
|
94
|
+
* @returns {Object} An object with keys: bn, network and compressed
|
|
95
|
+
* @private
|
|
96
|
+
*/
|
|
97
|
+
function _transformBuffer(buf: Buffer, network?: any): any;
|
|
98
|
+
/**
|
|
99
|
+
* Internal function to transform a BN buffer into a private key
|
|
100
|
+
*
|
|
101
|
+
* @param {Buffer} buf
|
|
102
|
+
* @param {Network|string=} network - a {@link Network} object, or a string with the network name
|
|
103
|
+
* @returns {object} an Object with keys: bn, network, and compressed
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
function _transformBNBuffer(buf: Buffer, network?: any): any;
|
|
107
|
+
/**
|
|
108
|
+
* Internal function to transform a WIF string into a private key
|
|
109
|
+
*
|
|
110
|
+
* @param {string} buf - An WIF string
|
|
111
|
+
* @returns {Object} An object with keys: bn, network and compressed
|
|
112
|
+
* @private
|
|
113
|
+
*/
|
|
114
|
+
function _transformWIF(str: any, network: any): any;
|
|
115
|
+
/**
|
|
116
|
+
* Instantiate a PrivateKey from a Buffer with the DER or WIF representation
|
|
117
|
+
*
|
|
118
|
+
* @param {Buffer} buf
|
|
119
|
+
* @param {Network} network
|
|
120
|
+
* @return {PrivateKey}
|
|
121
|
+
*/
|
|
122
|
+
function fromBuffer(buf: Buffer, network: Network): PrivateKey;
|
|
123
|
+
/**
|
|
124
|
+
* Creates a PrivateKey instance from a hexadecimal string.
|
|
125
|
+
* @param {string} hex - The hexadecimal string representation of the private key.
|
|
126
|
+
* @param {Network} network - The network associated with the private key.
|
|
127
|
+
* @returns {PrivateKey} A PrivateKey instance.
|
|
128
|
+
*/
|
|
129
|
+
function fromHex(hex: string, network: Network): PrivateKey;
|
|
130
|
+
/**
|
|
131
|
+
* Internal function to transform a JSON string on plain object into a private key
|
|
132
|
+
* return this.
|
|
133
|
+
*
|
|
134
|
+
* @param {string} json - A JSON string or plain object
|
|
135
|
+
* @returns {Object} An object with keys: bn, network and compressed
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
function _transformObject(json: string): any;
|
|
139
|
+
function fromString(str: string): PrivateKey;
|
|
140
|
+
function fromWIF(str: string): PrivateKey;
|
|
141
|
+
function fromObject(obj: any): PrivateKey;
|
|
142
|
+
function fromJSON(obj: any): PrivateKey;
|
|
143
|
+
/**
|
|
144
|
+
* Instantiate a PrivateKey from random bytes
|
|
145
|
+
*
|
|
146
|
+
* @param {string|Network} [network] - Either "livenet" or "testnet"
|
|
147
|
+
* @returns {PrivateKey} A new valid instance of PrivateKey
|
|
148
|
+
*/
|
|
149
|
+
function fromRandom(network?: any): PrivateKey;
|
|
150
|
+
/**
|
|
151
|
+
* Check if there would be any errors when initializing a PrivateKey
|
|
152
|
+
*
|
|
153
|
+
* @param {string} data - The encoded data in various formats
|
|
154
|
+
* @param {string|Network} [network] - Either "livenet" or "testnet"
|
|
155
|
+
* @returns {null|Error} An error if exists
|
|
156
|
+
*/
|
|
157
|
+
function getValidationError(data: string, network?: any): Error;
|
|
158
|
+
/**
|
|
159
|
+
* Check if the parameters are valid
|
|
160
|
+
*
|
|
161
|
+
* @param {string} data - The encoded data in various formats
|
|
162
|
+
* @param {string|Network} [network] - Either "livenet" or "testnet"
|
|
163
|
+
* @returns {Boolean} If the private key is would be valid
|
|
164
|
+
*/
|
|
165
|
+
function isValid(data: string, network?: any): boolean;
|
|
166
|
+
}
|
|
167
|
+
import BN = require("./bn.cjs");
|
|
168
|
+
import PublicKey = require("./publickey.cjs");
|
|
169
|
+
import Address = require("./address.cjs");
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
export = PublicKey;
|
|
2
|
+
/**
|
|
3
|
+
* Instantiate a PublicKey from a {@link PrivateKey}, {@link Point}, `string`, or `Buffer`.
|
|
4
|
+
*
|
|
5
|
+
* There are two internal properties, `network` and `compressed`, that deal with importing
|
|
6
|
+
* a PublicKey from a PrivateKey in WIF format. More details described on {@link PrivateKey}
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```javascript
|
|
10
|
+
* // instantiate from a private key
|
|
11
|
+
* var key = PublicKey(privateKey, true);
|
|
12
|
+
*
|
|
13
|
+
* // export to as a DER hex encoded string
|
|
14
|
+
* var exported = key.toString();
|
|
15
|
+
*
|
|
16
|
+
* // import the public key
|
|
17
|
+
* var imported = PublicKey.fromString(exported);
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @param {string} data - The encoded data in various formats
|
|
21
|
+
* @param {Object} extra - additional options
|
|
22
|
+
* @param {Network} extra.network - Which network should the address for this public key be for
|
|
23
|
+
* @param {String=} extra.compressed - If the public key is compressed
|
|
24
|
+
* @returns {PublicKey} A new valid instance of an PublicKey
|
|
25
|
+
* @constructor
|
|
26
|
+
*/
|
|
27
|
+
declare function PublicKey(data: string, extra: {
|
|
28
|
+
network: Network;
|
|
29
|
+
compressed?: string | undefined;
|
|
30
|
+
}): PublicKey;
|
|
31
|
+
declare class PublicKey {
|
|
32
|
+
/**
|
|
33
|
+
* Instantiate a PublicKey from a {@link PrivateKey}, {@link Point}, `string`, or `Buffer`.
|
|
34
|
+
*
|
|
35
|
+
* There are two internal properties, `network` and `compressed`, that deal with importing
|
|
36
|
+
* a PublicKey from a PrivateKey in WIF format. More details described on {@link PrivateKey}
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```javascript
|
|
40
|
+
* // instantiate from a private key
|
|
41
|
+
* var key = PublicKey(privateKey, true);
|
|
42
|
+
*
|
|
43
|
+
* // export to as a DER hex encoded string
|
|
44
|
+
* var exported = key.toString();
|
|
45
|
+
*
|
|
46
|
+
* // import the public key
|
|
47
|
+
* var imported = PublicKey.fromString(exported);
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @param {string} data - The encoded data in various formats
|
|
51
|
+
* @param {Object} extra - additional options
|
|
52
|
+
* @param {Network} extra.network - Which network should the address for this public key be for
|
|
53
|
+
* @param {String=} extra.compressed - If the public key is compressed
|
|
54
|
+
* @returns {PublicKey} A new valid instance of an PublicKey
|
|
55
|
+
* @constructor
|
|
56
|
+
*/
|
|
57
|
+
constructor(data: string, extra: {
|
|
58
|
+
network: Network;
|
|
59
|
+
compressed?: string | undefined;
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* Internal function to differentiate between arguments passed to the constructor
|
|
63
|
+
* @param {*} data
|
|
64
|
+
* @param {Object} extra
|
|
65
|
+
*/
|
|
66
|
+
_classifyArgs(data: any, extra: any): {
|
|
67
|
+
compressed: any;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @returns {Object} A plain object of the PublicKey
|
|
71
|
+
*/
|
|
72
|
+
toObject: () => any;
|
|
73
|
+
toJSON(): any;
|
|
74
|
+
/**
|
|
75
|
+
* Will output the PublicKey to a DER Buffer
|
|
76
|
+
*
|
|
77
|
+
* @returns {Buffer} A DER hex encoded buffer
|
|
78
|
+
*/
|
|
79
|
+
toBuffer: () => Buffer;
|
|
80
|
+
toDER(): Buffer;
|
|
81
|
+
/**
|
|
82
|
+
* Will return a sha256 + ripemd160 hash of the serialized public key
|
|
83
|
+
* @see https://github.com/bitcoin/bitcoin/blob/master/src/pubkey.h#L141
|
|
84
|
+
* @returns {Buffer}
|
|
85
|
+
*/
|
|
86
|
+
_getID(): Buffer;
|
|
87
|
+
/**
|
|
88
|
+
* Will return an address for the public key
|
|
89
|
+
*
|
|
90
|
+
* @param {string|Network} [network] - Which network should the address be for
|
|
91
|
+
* @returns {Address} An address generated from the public key
|
|
92
|
+
*/
|
|
93
|
+
toAddress(network?: string | Network): Address;
|
|
94
|
+
/**
|
|
95
|
+
* Will output the PublicKey to a DER encoded hex string
|
|
96
|
+
*
|
|
97
|
+
* @returns {string} A DER hex encoded string
|
|
98
|
+
*/
|
|
99
|
+
toString: () => string;
|
|
100
|
+
toHex(): string;
|
|
101
|
+
/**
|
|
102
|
+
* Will return a string formatted for the console
|
|
103
|
+
*
|
|
104
|
+
* @returns {string} Public key
|
|
105
|
+
*/
|
|
106
|
+
inspect(): string;
|
|
107
|
+
}
|
|
108
|
+
declare namespace PublicKey {
|
|
109
|
+
/**
|
|
110
|
+
* Internal function to detect if an object is a {@link PrivateKey}
|
|
111
|
+
*
|
|
112
|
+
* @param {*} param - object to test
|
|
113
|
+
* @returns {boolean}
|
|
114
|
+
* @private
|
|
115
|
+
*/
|
|
116
|
+
function _isPrivateKey(param: any): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Internal function to detect if an object is a Buffer
|
|
119
|
+
*
|
|
120
|
+
* @param {*} param - object to test
|
|
121
|
+
* @returns {boolean}
|
|
122
|
+
* @private
|
|
123
|
+
*/
|
|
124
|
+
function _isBuffer(param: any): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Internal function to transform a private key into a public key point
|
|
127
|
+
*
|
|
128
|
+
* @param {PrivateKey} privkey - An instance of PrivateKey
|
|
129
|
+
* @returns {Object} An object with keys: point and compressed
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
function _transformPrivateKey(privkey: PrivateKey): any;
|
|
133
|
+
/**
|
|
134
|
+
* Internal function to transform DER into a public key point
|
|
135
|
+
*
|
|
136
|
+
* @param {Buffer} buf - An DER buffer
|
|
137
|
+
* @param {bool=} strict - if set to false, will loosen some conditions
|
|
138
|
+
* @returns {Object} An object with keys: point and compressed
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
function _transformDER(buf: Buffer, strict?: bool): any;
|
|
142
|
+
/**
|
|
143
|
+
* Internal function to transform X into a public key point
|
|
144
|
+
*
|
|
145
|
+
* @param {Boolean} odd - If the point is above or below the x axis
|
|
146
|
+
* @param {Point} x - The x point
|
|
147
|
+
* @returns {Object} An object with keys: point and compressed
|
|
148
|
+
* @private
|
|
149
|
+
*/
|
|
150
|
+
function _transformX(odd: boolean, x: Point): any;
|
|
151
|
+
/**
|
|
152
|
+
* Internal function to transform a JSON into a public key point
|
|
153
|
+
*
|
|
154
|
+
* @param {String|Object} json - a JSON string or plain object
|
|
155
|
+
* @returns {Object} An object with keys: point and compressed
|
|
156
|
+
* @private
|
|
157
|
+
*/
|
|
158
|
+
function _transformObject(json: any): any;
|
|
159
|
+
/**
|
|
160
|
+
* Instantiate a PublicKey from a PrivateKey
|
|
161
|
+
*
|
|
162
|
+
* @param {PrivateKey} privkey - An instance of PrivateKey
|
|
163
|
+
* @returns {PublicKey} A new valid instance of PublicKey
|
|
164
|
+
*/
|
|
165
|
+
function fromPrivateKey(privkey: PrivateKey): PublicKey;
|
|
166
|
+
function fromDER(buf: Buffer, strict?: bool): PublicKey;
|
|
167
|
+
function fromBuffer(buf: Buffer, strict?: bool): PublicKey;
|
|
168
|
+
/**
|
|
169
|
+
* Instantiate a PublicKey from a Point
|
|
170
|
+
*
|
|
171
|
+
* @param {Point} point - A Point instance
|
|
172
|
+
* @param {boolean=} compressed - whether to store this public key as compressed format
|
|
173
|
+
* @returns {PublicKey} A new valid instance of PublicKey
|
|
174
|
+
*/
|
|
175
|
+
function fromPoint(point: Point, compressed?: boolean): PublicKey;
|
|
176
|
+
function fromHex(str: string, encoding?: string): PublicKey;
|
|
177
|
+
function fromString(str: string, encoding?: string): PublicKey;
|
|
178
|
+
/**
|
|
179
|
+
* Instantiate a PublicKey from an X Point
|
|
180
|
+
*
|
|
181
|
+
* @param {Boolean} odd - If the point is above or below the x axis
|
|
182
|
+
* @param {Point} x - The x point
|
|
183
|
+
* @returns {PublicKey} A new valid instance of PublicKey
|
|
184
|
+
*/
|
|
185
|
+
function fromX(odd: boolean, x: Point): PublicKey;
|
|
186
|
+
/**
|
|
187
|
+
* Check if there would be any errors when initializing a PublicKey
|
|
188
|
+
*
|
|
189
|
+
* @param {string} data - The encoded data in various formats
|
|
190
|
+
* @returns {null|Error} An error if exists
|
|
191
|
+
*/
|
|
192
|
+
function getValidationError(data: string): Error;
|
|
193
|
+
/**
|
|
194
|
+
* Check if the parameters are valid
|
|
195
|
+
*
|
|
196
|
+
* @param {string} data - The encoded data in various formats
|
|
197
|
+
* @returns {Boolean} If the public key would be valid
|
|
198
|
+
*/
|
|
199
|
+
function isValid(data: string): boolean;
|
|
200
|
+
}
|
|
201
|
+
import Address = require("./address.cjs");
|
|
202
|
+
import Point = require("./crypto/point.cjs");
|