-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathconstants.js
121 lines (109 loc) · 5.54 KB
/
constants.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
"use strict";
module.exports = function (S) {
var BF = S.Buffer.from;
var INT_BASE32_MAP = {};
var BASE32_INT_MAP = {};
var BASE32CHARSET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
var BASE32CHARSET_UPCASE = "QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L";
for (var i = 0; i < BASE32CHARSET.length; i++) {
INT_BASE32_MAP[BASE32CHARSET[i]] = i;
BASE32_INT_MAP[i] = BASE32CHARSET.charCodeAt(i);
}
for (var _i = 0; _i < BASE32CHARSET_UPCASE.length; _i++) {
INT_BASE32_MAP[BASE32CHARSET_UPCASE[_i]] = _i;
}
var MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX = '5';
var MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX = 'K';
var MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX_2 = 'L';
var TESTNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX = '9';
var TESTNET_PRIVATE_KEY_COMPRESSED_PREFIX = 'c';
var MAINNET_ADDRESS_PREFIX = '1';
var TESTNET_ADDRESS_PREFIX = 'm';
var TESTNET_ADDRESS_PREFIX_2 = 'n';
var MAINNET_SCRIPT_ADDRESS_PREFIX = '3';
var TESTNET_SCRIPT_ADDRESS_PREFIX = '2';
S.BASE32CHARSET = BASE32CHARSET;
S.BASE32CHARSET_UPCASE = BASE32CHARSET_UPCASE;
S.INT_BASE32_MAP = INT_BASE32_MAP;
S.BASE32_INT_MAP = BASE32_INT_MAP;
S.MAINNET_ADDRESS_PREFIX = MAINNET_ADDRESS_PREFIX;
S.TESTNET_ADDRESS_PREFIX = TESTNET_ADDRESS_PREFIX;
S.TESTNET_ADDRESS_PREFIX_2 = TESTNET_ADDRESS_PREFIX_2;
S.MAINNET_SCRIPT_ADDRESS_PREFIX = MAINNET_SCRIPT_ADDRESS_PREFIX;
S.TESTNET_SCRIPT_ADDRESS_PREFIX = TESTNET_SCRIPT_ADDRESS_PREFIX;
S.MAINNET_SEGWIT_ADDRESS_PREFIX = 'bgl';
S.TESTNET_SEGWIT_ADDRESS_PREFIX = 'tbgl';
S.MAINNET_ADDRESS_BYTE_PREFIX = [0];
S.TESTNET_ADDRESS_BYTE_PREFIX = [111];
S.MAINNET_SCRIPT_ADDRESS_BYTE_PREFIX = [5];
S.TESTNET_SCRIPT_ADDRESS_BYTE_PREFIX = [196];
S.MAINNET_SEGWIT_ADDRESS_BYTE_PREFIX = [3, 3, 3, 0, 2, 7, 12];
S.TESTNET_SEGWIT_ADDRESS_BYTE_PREFIX = [3, 3, 0, 20, 2];
S.TESTNET_PRIVATE_KEY_BYTE_PREFIX = [0xef];
S.MAINNET_PRIVATE_KEY_BYTE_PREFIX = [0x80];
S.MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX = MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX;
S.MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX = MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX;
S.MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX_2 = MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX_2;
S.TESTNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX = TESTNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX;
S.TESTNET_PRIVATE_KEY_COMPRESSED_PREFIX = TESTNET_PRIVATE_KEY_COMPRESSED_PREFIX;
S.ADDRESS_PREFIX_LIST = [MAINNET_ADDRESS_PREFIX, TESTNET_ADDRESS_PREFIX, TESTNET_ADDRESS_PREFIX_2, MAINNET_SCRIPT_ADDRESS_PREFIX, TESTNET_SCRIPT_ADDRESS_PREFIX];
S.PRIVATE_KEY_PREFIX_LIST = [MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX, MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX, MAINNET_PRIVATE_KEY_COMPRESSED_PREFIX_2, TESTNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX, TESTNET_PRIVATE_KEY_COMPRESSED_PREFIX];
S.SCRIPT_TYPES = {
"P2PKH": 0,
"P2SH": 1,
"PUBKEY": 2,
"NULL_DATA": 3,
"MULTISIG": 4,
"P2WPKH": 5,
"P2WSH": 6,
"NON_STANDARD": 7,
"NULL_DATA_NON_STANDARD": 8
};
S.SCRIPT_N_TYPES = {
0: "P2PKH",
1: "P2SH",
2: "PUBKEY",
3: "NULL_DATA",
4: "MULTISIG",
5: "P2WPKH",
6: "P2WSH",
7: "NON_STANDARD",
8: "NULL_DATA_NON_STANDARD"
};
S.GAMMA_NUM_LN = 607 / 128;
S.GAMMA_TABLE_LN = [0.99999999999999709182, 57.156235665862923517, -59.597960355475491248, 14.136097974741747174, -0.49191381609762019978, 0.33994649984811888699e-4, 0.46523628927048575665e-4, -0.98374475304879564677e-4, 0.15808870322491248884e-3, -0.21026444172410488319e-3, 0.21743961811521264320e-3, -0.16431810653676389022e-3, 0.84418223983852743293e-4, -0.26190838401581408670e-4, 0.36899182659531622704e-5];
S.MACHEP = 1.11022302462515654042E-16;
S.MAXLOG = 7.09782712893383996732E2;
S.ECDSA_SEC256K1_ORDER = new S.BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 16);
S.SECP256K1_CONTEXT_VERIFY = 1 << 0 | 1 << 8;
S.SECP256K1_CONTEXT_SIGN = 1 << 0 | 1 << 9;
S.SECP256K1_CONTEXT_NONE = 1 << 0;
S.SECP256K1_EC_COMPRESSED = 1 << 1 | 1 << 8;
S.SECP256K1_EC_UNCOMPRESSED = 1 << 1;
S.MAX_AMOUNT = 2100000000000000;
S.SIGHASH_ALL = 0x00000001;
S.SIGHASH_NONE = 0x00000002;
S.SIGHASH_SINGLE = 0x00000003;
S.SIGHASH_ANYONECANPAY = 0x00000080;
S.HARDENED_KEY = 0x80000000;
S.FIRST_HARDENED_CHILD = 0x80000000;
S.PATH_LEVEL_BIP0044 = [0x8000002C, 0x80000000, 0x80000000, 0, 0];
S.TESTNET_PATH_LEVEL_BIP0044 = [0x8000002C, 0x80000001, 0x80000000, 0, 0]; // CONSTANTS hierarchical deterministic wallets (HD Wallets)
// m/44'/0' P2PKH
S.MAINNET_XPRIVATE_KEY_PREFIX = BF([0x04, 0x88, 0xad, 0xe4]);
S.MAINNET_XPUBLIC_KEY_PREFIX = BF([0x04, 0x88, 0xb2, 0x1e]); // m/44'/1' P2PKH
S.TESTNET_XPRIVATE_KEY_PREFIX = BF([0x04, 0x35, 0x83, 0x94]);
S.TESTNET_XPUBLIC_KEY_PREFIX = BF([0x04, 0x35, 0x87, 0xcf]); // m/44'/0' P2PKH
S.MAINNET_M44_XPRIVATE_KEY_PREFIX = BF([0x04, 0x88, 0xad, 0xe4]);
S.MAINNET_M44_XPUBLIC_KEY_PREFIX = BF([0x04, 0x88, 0xb2, 0x1e]); // m/44'/1' P2PKH
S.TESTNET_M44_XPRIVATE_KEY_PREFIX = BF([0x04, 0x35, 0x83, 0x94]);
S.TESTNET_M44_XPUBLIC_KEY_PREFIX = BF([0x04, 0x35, 0x87, 0xcf]); // m/49'/0' P2WPKH in P2SH
S.MAINNET_M49_XPRIVATE_KEY_PREFIX = BF([0x04, 0x9d, 0x78, 0x78]);
S.MAINNET_M49_XPUBLIC_KEY_PREFIX = BF([0x04, 0x9d, 0x7c, 0xb2]); // m/49'/1' P2WPKH in P2SH
S.TESTNET_M49_XPRIVATE_KEY_PREFIX = BF([0x04, 0x4a, 0x4e, 0x28]);
S.TESTNET_M49_XPUBLIC_KEY_PREFIX = BF([0x04, 0x4a, 0x52, 0x62]); // m/84'/0' P2WPKH
S.MAINNET_M84_XPRIVATE_KEY_PREFIX = BF([0x04, 0xb2, 0x43, 0x0c]);
S.MAINNET_M84_XPUBLIC_KEY_PREFIX = BF([0x04, 0xb2, 0x47, 0x46]); // m/84'/1' P2WPKH
S.TESTNET_M84_XPRIVATE_KEY_PREFIX = BF([0x04, 0x5f, 0x18, 0xbc]);
S.TESTNET_M84_XPUBLIC_KEY_PREFIX = BF([0x04, 0x5f, 0x1c, 0xf6]);
};