Line data Source code
1 : // ignore_for_file: constant_identifier_names
2 :
3 : import 'dart:typed_data';
4 : import 'package:walletkit_dart/src/crypto/utxo/entities/op_codes.dart';
5 : import 'package:walletkit_dart/src/crypto/network_type.dart';
6 :
7 : const MAX_PUBKEYS_PER_MULTISIG = 20;
8 :
9 : const PUBKEY_SCRIPT_HASH_LENGTH_HEX = "14"; // 20 bytes
10 :
11 : const SIG_HASH_ALL = 0x01;
12 :
13 : const int EXTERNAL_CHAIN_INDEX = 0;
14 : const int INTERNAL_CHAIN_INDEX = 1;
15 :
16 : ///
17 : /// Public Key Prefixes & Suffixes
18 : ///
19 :
20 16 : final p2pkhPrefix =
21 8 : "${OPCODE.OP_DUP}${OPCODE.OP_HASH160}$PUBKEY_SCRIPT_HASH_LENGTH_HEX";
22 24 : final p2pkhPostfix = "${OPCODE.OP_EQUALVERIFY}${OPCODE.OP_CHECKSIG}";
23 12 : final p2wpkhPrefix = "${OPCODE.OP_0}$PUBKEY_SCRIPT_HASH_LENGTH_HEX";
24 12 : final p2shPrefix = "${OPCODE.OP_HASH160}$PUBKEY_SCRIPT_HASH_LENGTH_HEX";
25 12 : final p2shPostfix = "${OPCODE.OP_EQUAL}";
26 :
27 : ///
28 : /// Address Prefixes
29 : ///
30 : const String P2PKH_PREFIX = '1'; // Legacy
31 : const String P2PKH_PREFIX_LTC = 'L'; // Legacy Litecoin
32 : const String P2PKH_PREFIX_ZENIQ = 'm'; // Legacy ZENIQ prefix
33 : const String P2SH_PREFIX = '3'; // Compatibility Address
34 : const String P2SH_PREFIX_LTC = 'M'; // Compatibility Address Litecoin
35 : const String P2WPKH_PREFIX_BTC = 'bc1'; // Native SegWit Bitcoin
36 : const String P2WPKH_PREFIX_LTC = 'ltc1'; // Native SegWit Litecoin
37 : const List<String> P2WPKH_PREFIXES_BCH = [
38 : "1q",
39 : "qq"
40 : ]; // Native SegWit Bitcoin Cash
41 : const String P2PKH_PREFIX_EC8 = 'c';
42 :
43 : const BITCOIN_NETWORK_BIP = NetworkBIP(
44 : bip32XpubPrefix: 0x0488b21e,
45 : bip32XprivPrefix: 0x0488ade4,
46 : bip49XpubPrefix: 0x049d7cb2,
47 : bip49XprivPrefix: 0x049d7878,
48 : bip84XpubPrefix: 0x04b24746,
49 : bip84XprivPrefix: 0x04b2430c,
50 : wif: 0x80,
51 : );
52 :
53 : const BITCOIN_SIGHASH_INFO = SighashInfo(
54 : all: 0x01,
55 : none: 0x02,
56 : single: 0x03,
57 : allAnyoneCanPay: 0x81,
58 : noneAnyoneCanPay: 0x82,
59 : singleAnyoneCanPay: 0x83,
60 : );
61 :
62 : const BCH_SIGHASH_INFO = SighashInfo(
63 : all: 0x41,
64 : none: 0x42,
65 : single: 0x43,
66 : allAnyoneCanPay: 0xc1,
67 : noneAnyoneCanPay: 0xc2,
68 : singleAnyoneCanPay: 0xc3,
69 : );
70 :
71 : ///
72 : /// Needed for compatibility with old wallets
73 : ///
74 : const LITECOIN_NETWORK_BIP_WK_COMPATIBILITY = NetworkBIP(
75 : bip32XpubPrefix: 0x0488b21e,
76 : bip32XprivPrefix: 0x0488ade4,
77 : bip49XpubPrefix: 0x0488b21e,
78 : bip49XprivPrefix: 0x0488ade4,
79 : bip84XpubPrefix: 0x0488b21e,
80 : bip84XprivPrefix: 0x0488ade4,
81 : wif: 0xb0,
82 : );
83 :
84 : const LITECOIN_NETWORK_BIP = NetworkBIP(
85 : bip32XpubPrefix: 0x019da462,
86 : bip32XprivPrefix: 0x019d9cfe,
87 : bip49XpubPrefix: 0x01b26ef6,
88 : bip49XprivPrefix: 0x01b26792,
89 : bip84XpubPrefix: 0x01b26ef6,
90 : bip84XprivPrefix: 0x01b26792,
91 : wif: 0xb0,
92 : );
93 :
94 : ///
95 : /// DEV
96 : ///
97 :
98 : const publicTestMnemonicHello = // this mnemonic should be never used for real funds
99 : "hello upon mirror situate cradle execute cute negative sudden city mean square";
100 :
101 6 : Uint8List get helloSeed {
102 12 : return Uint8List.fromList([
103 : 93,
104 : 37,
105 : 243,
106 : 36,
107 : 240,
108 : 76,
109 : 115,
110 : 228,
111 : 64,
112 : 229,
113 : 10,
114 : 179,
115 : 172,
116 : 124,
117 : 11,
118 : 81,
119 : 118,
120 : 191,
121 : 159,
122 : 146,
123 : 181,
124 : 53,
125 : 122,
126 : 123,
127 : 79,
128 : 222,
129 : 13,
130 : 15,
131 : 123,
132 : 239,
133 : 231,
134 : 251,
135 : 113,
136 : 198,
137 : 32,
138 : 189,
139 : 145,
140 : 38,
141 : 116,
142 : 17,
143 : 138,
144 : 110,
145 : 174,
146 : 197,
147 : 113,
148 : 100,
149 : 145,
150 : 118,
151 : 205,
152 : 162,
153 : 109,
154 : 208,
155 : 161,
156 : 231,
157 : 52,
158 : 27,
159 : 203,
160 : 63,
161 : 140,
162 : 145,
163 : 228,
164 : 193,
165 : 46,
166 : 58
167 : ]);
168 : }
169 :
170 : const helloXpub =
171 : "xpub69BsBUCquKCgn1u6cum7syZewx5J2fyJE479qzDRJtB6hSHkhLsPZZW2SBfPfJaidDtE9g6wyH7ZFv8bWTkwuLeRJx3H2Kray9AsvY8EJAP";
172 :
173 : const rejectXpubBip44 =
174 : "xpub69QjKT4D1e69hjobnhYXrjDwcMfgdnt7CtuNKrUjsqpUZEy3zRYhKcHCtwo4csQxL9jua7M43xYYkt79PtVmwBhix2QNoofzqhLUWMEJNsN";
175 :
176 : const rejectXpub =
177 : "xpub69QjKT4D1e67mdLGJDUq45wYdQZrVL7DATQ98dPPHiKwkKsrM1uyhbG4UazWemQvmi8GBV5UCpLGrFe8zUebtkw7Ew3bEKzv8bDPA2Difc8";
178 :
179 : const rejectZpub =
180 : "zpub6o5FvnQ3K1B9A2sZqBtUQ1RJ1CL6Szw8SoT1p962NqZDuFCRAKqLk5Z2GRyC5vUUksiw81Ychf5mXoWGMgfELZRMxcMWvunpQdgvhxiATdL";
181 :
182 : const devLtub = "";
183 :
184 : const devMtub = "";
185 :
186 : const wkDebugXPUB =
187 : "xpub69QjKT4D1e67nyLRRcA76149aJASaFBr9UPJkAW5NVqwJNRmTuzB1t1rYjsKmsFgW5B3uLEcBYe92VJHqwDm2t7zXMsTCwcyrYUGgLGTxtV";
188 :
189 : const wkDebugXPUBHello =
190 : "xpub69BsBUCquKCgooMeNw2a3hW6NBZ9Kwn4kYUxYSjygK6YTa8PRqqAEyAKEwBsNH4GiPpb4BCXZ1QiHDeYCtPJtVJoBWNeF8QFRik7MyUstiZ";
191 :
192 : const rejectLTUB =
193 : "Ltub2Vqqn6GEu5Q81zcCthUpux3miCtRF7dMHjc7xi8VfDAeUhWf12QiXEkVqTWYKApBMvXqmcU23qyexM1FuNk3jgiXY4w3u1kxd5yj4XiYZH3";
194 :
195 : const rejectEVM = "0x05870f1507d820212E921e1f39f14660336231D1";
196 : const spoilEVM = "0x1464935f48CA992D1a0bEAA2358471D7Cb6374E5";
197 :
198 : ///
199 : /// EVM
200 : ///
201 : const etherscanBaseEndpoint = "https://api.etherscan.io/v2/api";
202 : const zeniqScanEnpoint = "https://zeniqscan.com/api";
203 : const zeniqSmartRPCEndpoint = "https://api.zeniq.network";
204 :
205 : ///
206 : /// Arbitrum
207 : ///
208 : const arbitrumTestWallet = "0xA7Fa4bB0bba164F999E8C7B83C9da96A3bE44616";
209 :
210 : ///
211 : /// Staking
212 : ///
213 : const mainnetStakingContract = "0x7561DEAf4ECf96dc9F0d50B4136046979ACdAD3e";
214 : const smartChainStakingContract = "0x97F51eCDeEdecdb740DD1ff6236D013aFff0417d";
215 : const testnetStakingContract = "0x7a74a51adabe43a987f7119036faea420fc470cf";
216 : const zenpassContract = "0x967ce6379d65DB5d5b7027bbCfDd6f03476011ea";
217 :
218 : enum GasLimits {
219 : toApprove(60000),
220 : nftSend(100000),
221 : ethSend(21000),
222 : erc20Send(70000),
223 : toStake(280000),
224 : ethzkSync(187734),
225 : ethArb(100000);
226 :
227 : final int value;
228 :
229 : const GasLimits(this.value);
230 :
231 0 : static BigInt toClaim(int numberOfNFTs) {
232 0 : var result = 150000 + (numberOfNFTs - 1) * 25000;
233 0 : return BigInt.from(result);
234 : }
235 :
236 0 : BigInt get asBigInt => BigInt.from(value);
237 : }
238 :
239 : const TRON_ADDRESS_PREFIX = 0x41; // Base58 address prefix for Tron = 'T'
240 :
241 : const nullAddress = "0x0000000000000000000000000000000000000000";
|