|
|
@ -1,4 +1,3 @@ |
|
|
|
// Copyright © 2019 The Hush developers
|
|
|
|
/******************************************************************************
|
|
|
|
* Copyright © 2014-2019 The SuperNET Developers. * |
|
|
|
* * |
|
|
@ -17,7 +16,7 @@ |
|
|
|
#ifndef KOMODO_DEFS_H |
|
|
|
#define KOMODO_DEFS_H |
|
|
|
#include "arith_uint256.h" |
|
|
|
|
|
|
|
#include "chain.h" |
|
|
|
#include "komodo_nk.h" |
|
|
|
|
|
|
|
#define KOMODO_EARLYTXID_HEIGHT 100 |
|
|
@ -34,6 +33,9 @@ |
|
|
|
#define KOMODO_FIRSTFUNGIBLEID 100 |
|
|
|
#define KOMODO_SAPLING_ACTIVATION 1544832000 // Dec 15th, 2018
|
|
|
|
#define KOMODO_SAPLING_DEADLINE 1550188800 // Feb 15th, 2019
|
|
|
|
#define ASSETCHAINS_STAKED_BLOCK_FUTURE_MAX 57 |
|
|
|
#define ASSETCHAINS_STAKED_BLOCK_FUTURE_HALF 27 |
|
|
|
#define ASSETCHAINS_STAKED_MIN_POW_DIFF 536900000 // 537000000 537300000
|
|
|
|
#define _COINBASE_MATURITY 100 |
|
|
|
|
|
|
|
// KMD Notary Seasons
|
|
|
@ -43,10 +45,15 @@ |
|
|
|
// 1751328000 = dummy timestamp, 1 July 2025!
|
|
|
|
// 7113400 = 5x current KMD blockheight.
|
|
|
|
// to add 4th season, change NUM_KMD_SEASONS to 4, and add timestamp and height of activation to these arrays.
|
|
|
|
#define NUM_KMD_SEASONS 3 |
|
|
|
|
|
|
|
#define NUM_KMD_SEASONS 4 |
|
|
|
#define NUM_KMD_NOTARIES 64 |
|
|
|
static const uint32_t KMD_SEASON_TIMESTAMPS[NUM_KMD_SEASONS] = {1525132800, 1563148800, 1751328000}; |
|
|
|
static const int32_t KMD_SEASON_HEIGHTS[NUM_KMD_SEASONS] = {814000, 1444000, 7113400}; |
|
|
|
|
|
|
|
extern const uint32_t nStakedDecemberHardforkTimestamp; //December 2019 hardfork
|
|
|
|
extern const int32_t nDecemberHardforkHeight; //December 2019 hardfork
|
|
|
|
|
|
|
|
static const uint32_t KMD_SEASON_TIMESTAMPS[NUM_KMD_SEASONS] = {1525132800, 1563148800, nStakedDecemberHardforkTimestamp, 1751328000}; |
|
|
|
static const int32_t KMD_SEASON_HEIGHTS[NUM_KMD_SEASONS] = {814000, 1444000, nDecemberHardforkHeight, 7113400}; |
|
|
|
|
|
|
|
// Era array of pubkeys. Add extra seasons to bottom as requried, after adding appropriate info above.
|
|
|
|
static const char *notaries_elected[NUM_KMD_SEASONS][NUM_KMD_NOTARIES][2] = |
|
|
@ -248,6 +255,73 @@ static const char *notaries_elected[NUM_KMD_SEASONS][NUM_KMD_NOTARIES][2] = |
|
|
|
{"gt_AR", "0348430538a4944d3162bb4749d8c5ed51299c2434f3ee69c11a1f7815b3f46135" }, |
|
|
|
{"patchkez_SH", "03f45e9beb5c4cd46525db8195eb05c1db84ae7ef3603566b3d775770eba3b96ee" }, |
|
|
|
{"decker_AR", "03ffdf1a116300a78729608d9930742cd349f11a9d64fcc336b8f18592dd9c91bc" }, // 63
|
|
|
|
}, |
|
|
|
{ |
|
|
|
// Season 3.5
|
|
|
|
{"madmax_NA", "0237e0d3268cebfa235958808db1efc20cc43b31100813b1f3e15cc5aa647ad2c3" }, // 0
|
|
|
|
{"alright_AR", "020566fe2fb3874258b2d3cf1809a5d650e0edc7ba746fa5eec72750c5188c9cc9" }, |
|
|
|
{"strob_NA", "0206f7a2e972d9dfef1c424c731503a0a27de1ba7a15a91a362dc7ec0d0fb47685" }, |
|
|
|
{"hunter_EU", "0378224b4e9d8a0083ce36f2963ec0a4e231ec06b0c780de108e37f41181a89f6a" }, // FIXME verify this, kolo. Change name if you want
|
|
|
|
{"phm87_SH", "021773a38db1bc3ede7f28142f901a161c7b7737875edbb40082a201c55dcf0add" }, |
|
|
|
{"chainmakers_NA", "02285d813c30c0bf7eefdab1ff0a8ad08a07a0d26d8b95b3943ce814ac8e24d885" }, |
|
|
|
{"indenodes_EU", "0221387ff95c44cb52b86552e3ec118a3c311ca65b75bf807c6c07eaeb1be8303c" }, |
|
|
|
{"blackjok3r_SH", "021eac26dbad256cbb6f74d41b10763183ee07fb609dbd03480dd50634170547cc" }, |
|
|
|
{"chainmakers_EU", "03fdf5a3fce8db7dee89724e706059c32e5aa3f233a6b6cc256fea337f05e3dbf7" }, |
|
|
|
{"titomane_AR", "023e3aa9834c46971ff3e7cb86a200ec9c8074a9566a3ea85d400d5739662ee989" }, |
|
|
|
{"fullmoon_SH", "023b7252968ea8a955cd63b9e57dee45a74f2d7ba23b4e0595572138ad1fb42d21" }, // 10
|
|
|
|
{"indenodes_NA", "02698c6f1c9e43b66e82dbb163e8df0e5a2f62f3a7a882ca387d82f86e0b3fa988" }, |
|
|
|
{"chmex_EU", "0281304ebbcc39e4f09fda85f4232dd8dacd668e20e5fc11fba6b985186c90086e" }, |
|
|
|
{"metaphilibert_SH", "0284af1a5ef01503e6316a2ca4abf8423a794e9fc17ac6846f042b6f4adedc3309" }, |
|
|
|
{"ca333_DEV", "02856843af2d9457b5b1c907068bef6077ea0904cc8bd4df1ced013f64bf267958" }, |
|
|
|
{"cipi_NA", "02858904a2a1a0b44df4c937b65ee1f5b66186ab87a751858cf270dee1d5031f18" }, |
|
|
|
{"pungocloud_SH", "024dfc76fa1f19b892be9d06e985d0c411e60dbbeb36bd100af9892a39555018f6" }, |
|
|
|
{"voskcoin_EU", "034190b1c062a04124ad15b0fa56dfdf34aa06c164c7163b6aec0d654e5f118afb" }, |
|
|
|
{"decker_DEV", "028eea44a09674dda00d88ffd199a09c9b75ba9782382cc8f1e97c0fd565fe5707" }, |
|
|
|
{"cryptoeconomy_EU", "0290ab4937e85246e048552df3e9a66cba2c1602db76e03763e16c671e750145d1" }, |
|
|
|
{"etszombi_EU", "0293ea48d8841af7a419a24d9da11c34b39127ef041f847651bae6ab14dcd1f6b4" }, // 20
|
|
|
|
{"karasugoi_NA", "02a348b03b9c1a8eac1b56f85c402b041c9bce918833f2ea16d13452309052a982" }, |
|
|
|
{"pirate_AR", "03e29c90354815a750db8ea9cb3c1b9550911bb205f83d0355a061ac47c4cf2fde" }, |
|
|
|
{"metaphilibert_AR", "02adad675fae12b25fdd0f57250b0caf7f795c43f346153a31fe3e72e7db1d6ac6" }, |
|
|
|
{"zatjum_SH", "02d6b0c89cacd58a0af038139a9a90c9e02cd1e33803a1f15fceabea1f7e9c263a" }, |
|
|
|
{"madmax_AR", "03c5941fe49d673c094bc8e9bb1a95766b4670c88be76d576e915daf2c30a454d3" }, |
|
|
|
{"lukechilds_NA", "03f1051e62c2d280212481c62fe52aab0a5b23c95de5b8e9ad5f80d8af4277a64b" }, |
|
|
|
{"cipi_AR", "02c4f89a5b382750836cb787880d30e23502265054e1c327a5bfce67116d757ce8" }, |
|
|
|
{"tonyl_AR", "02cc8bc862f2b65ad4f99d5f68d3011c138bf517acdc8d4261166b0be8f64189e1" }, |
|
|
|
{"infotech_DEV", "0345ad4ab5254782479f6322c369cec77a7535d2f2162d103d666917d5e4f30c4c" }, |
|
|
|
{"fullmoon_NA", "032c716701fe3a6a3f90a97b9d874a9d6eedb066419209eed7060b0cc6b710c60b" }, // 30
|
|
|
|
{"etszombi_AR", "02e55e104aa94f70cde68165d7df3e162d4410c76afd4643b161dea044aa6d06ce" }, |
|
|
|
{"node-9_EU", "0372e5b51e86e2392bb15039bac0c8f975b852b45028a5e43b324c294e9f12e411" }, |
|
|
|
{"phba2061_EU", "03f6bd15dba7e986f0c976ea19d8a9093cb7c989d499f1708a0386c5c5659e6c4e" }, |
|
|
|
{"indenodes_AR", "02ec0fa5a40f47fd4a38ea5c89e375ad0b6ddf4807c99733c9c3dc15fb978ee147" }, |
|
|
|
{"and1-89_EU", "02736cbf8d7b50835afd50a319f162dd4beffe65f2b1dc6b90e64b32c8e7849ddd" }, |
|
|
|
{"komodopioneers_SH", "032a238a5747777da7e819cfa3c859f3677a2daf14e4dce50916fc65d00ad9c52a" }, |
|
|
|
{"komodopioneers_EU", "036d02425916444fff8cc7203fcbfc155c956dda5ceb647505836bef59885b6866" }, |
|
|
|
{"d0ct0r_NA", "0303725d8525b6f969122faf04152653eb4bf34e10de92182263321769c334bf58" }, |
|
|
|
{"kolo_DEV", "02849e12199dcc27ba09c3902686d2ad0adcbfcee9d67520e9abbdda045ba83227" }, |
|
|
|
{"peer2cloud_AR", "02acc001fe1fe8fd68685ba26c0bc245924cb592e10cec71e9917df98b0e9d7c37" }, // 40
|
|
|
|
{"webworker01_SH", "031e50ba6de3c16f99d414bb89866e578d963a54bde7916c810608966fb5700776" }, |
|
|
|
{"webworker01_NA", "032735e9cad1bb00eaababfa6d27864fa4c1db0300c85e01e52176be2ca6a243ce" }, |
|
|
|
{"pbca26_NA", "03a97606153d52338bcffd1bf19bb69ef8ce5a7cbdc2dbc3ff4f89d91ea6bbb4dc" }, |
|
|
|
{"indenodes_SH", "0334e6e1ec8285c4b85bd6dae67e17d67d1f20e7328efad17ce6fd24ae97cdd65e" }, |
|
|
|
{"pirate_NA", "0255e32d8a56671dee8aa7f717debb00efa7f0086ee802de0692f2d67ee3ee06ee" }, |
|
|
|
{"lukechilds_AR", "025c6a73ff6d750b9ddf6755b390948cffdd00f344a639472d398dd5c6b4735d23" }, |
|
|
|
{"dragonhound_NA", "0224a9d951d3a06d8e941cc7362b788bb1237bb0d56cc313e797eb027f37c2d375" }, |
|
|
|
{"fullmoon_AR", "03da64dd7cd0db4c123c2f79d548a96095a5a103e5b9d956e9832865818ffa7872" }, |
|
|
|
{"chainzilla_SH", "0360804b8817fd25ded6e9c0b50e3b0782ac666545b5416644198e18bc3903d9f9" }, |
|
|
|
{"titomane_EU", "03772ac0aad6b0e9feec5e591bff5de6775d6132e888633e73d3ba896bdd8e0afb" }, // 50
|
|
|
|
{"jeezy_EU", "037f182facbad35684a6e960699f5da4ba89e99f0d0d62a87e8400dd086c8e5dd7" }, |
|
|
|
{"titomane_SH", "03850fdddf2413b51790daf51dd30823addb37313c8854b508ea6228205047ef9b" }, |
|
|
|
{"alien_AR", "03911a60395801082194b6834244fa78a3c30ff3e888667498e157b4aa80b0a65f" }, |
|
|
|
{"pirate_EU", "03fff24efd5648870a23badf46e26510e96d9e79ce281b27cfe963993039dd1351" }, |
|
|
|
{"thegaltmines_NA", "02db1a16c7043f45d6033ccfbd0a51c2d789b32db428902f98b9e155cf0d7910ed" }, |
|
|
|
{"computergenie_NA", "03a78ae070a5e9e935112cf7ea8293f18950f1011694ea0260799e8762c8a6f0a4" }, |
|
|
|
{"nutellalicka_SH", "02f7d90d0510c598ce45915e6372a9cd0ba72664cb65ce231f25d526fc3c5479fc" }, |
|
|
|
{"chainstrike_SH", "03b806be3bf7a1f2f6290ec5c1ea7d3ea57774dcfcf2129a82b2569e585100e1cb" }, |
|
|
|
{"hunter_SH", "02407db70ad30ce4dfaee8b4ae35fae88390cad2b0ba0373fdd6231967537ccfdf" }, // FIXME verify this, Decker. Change name if you want
|
|
|
|
{"alien_EU", "03bb749e337b9074465fa28e757b5aa92cb1f0fea1a39589bca91a602834d443cd" }, // 60
|
|
|
|
{"gt_AR", "0348430538a4944d3162bb4749d8c5ed51299c2434f3ee69c11a1f7815b3f46135" }, |
|
|
|
{"patchkez_SH", "03f45e9beb5c4cd46525db8195eb05c1db84ae7ef3603566b3d775770eba3b96ee" }, |
|
|
|
{"decker_AR", "03ffdf1a116300a78729608d9930742cd349f11a9d64fcc336b8f18592dd9c91bc" }, // 63
|
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
@ -271,23 +345,24 @@ int32_t MAX_BLOCK_SIZE(int32_t height); |
|
|
|
extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; |
|
|
|
extern uint16_t ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT; |
|
|
|
extern uint32_t ASSETCHAIN_INIT, ASSETCHAINS_MAGIC; |
|
|
|
extern int32_t ASSETCHAINS_LWMAPOS, ASSETCHAINS_SAPLING, ASSETCHAINS_OVERWINTER,ASSETCHAINS_BLOCKTIME; |
|
|
|
extern int32_t VERUS_BLOCK_POSUNITS, ASSETCHAINS_LWMAPOS, ASSETCHAINS_SAPLING, ASSETCHAINS_OVERWINTER,ASSETCHAINS_BLOCKTIME; |
|
|
|
extern uint64_t ASSETCHAINS_SUPPLY, ASSETCHAINS_FOUNDERS_REWARD; |
|
|
|
|
|
|
|
extern uint64_t ASSETCHAINS_TIMELOCKGTE; |
|
|
|
extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH,KOMODO_INITDONE; |
|
|
|
extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH,ASSETCHAINS_EQUIHASH,KOMODO_INITDONE; |
|
|
|
|
|
|
|
extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,KOMODO_ON_DEMAND,KOMODO_PASSPORT_INITDONE,ASSETCHAINS_STAKED,KOMODO_NSPV; |
|
|
|
extern uint64_t ASSETCHAINS_COMMISSION, ASSETCHAINS_LASTERA,ASSETCHAINS_CBOPRET; |
|
|
|
extern bool VERUS_MINTBLOCKS; |
|
|
|
extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS+1], ASSETCHAINS_NOTARY_PAY[ASSETCHAINS_MAX_ERAS+1], ASSETCHAINS_TIMELOCKGTE, ASSETCHAINS_NONCEMASK[],ASSETCHAINS_NK[2]; |
|
|
|
extern const char *ASSETCHAINS_ALGORITHMS[]; |
|
|
|
extern uint32_t ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; |
|
|
|
extern int32_t VERUS_MIN_STAKEAGE; |
|
|
|
extern uint32_t ASSETCHAINS_VERUSHASH, ASSETCHAINS_VERUSHASHV1_1, ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; |
|
|
|
extern std::string NOTARY_PUBKEY,ASSETCHAINS_OVERRIDE_PUBKEY,ASSETCHAINS_SCRIPTPUB; |
|
|
|
extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_MARMARA; |
|
|
|
extern std::vector<std::string> ASSETCHAINS_PRICES,ASSETCHAINS_STOCKS; |
|
|
|
|
|
|
|
extern int32_t KOMODO_BLOCK_POSUNITS, KOMODO_CONSECUTIVE_POS_THRESHOLD, KOMODO_NOPOS_THRESHHOLD; |
|
|
|
|
|
|
|
extern int32_t VERUS_BLOCK_POSUNITS, VERUS_CONSECUTIVE_POS_THRESHOLD, VERUS_NOPOS_THRESHHOLD; |
|
|
|
extern uint256 KOMODO_EARLYTXID; |
|
|
|
|
|
|
|
extern int32_t KOMODO_CONNECTING,KOMODO_CCACTIVATE,KOMODO_DEALERNODE; |
|
|
@ -296,20 +371,23 @@ extern std::string CCerror,ASSETCHAINS_CCLIB; |
|
|
|
extern uint8_t ASSETCHAINS_CCDISABLES[256]; |
|
|
|
|
|
|
|
extern int32_t USE_EXTERNAL_PUBKEY; |
|
|
|
extern std::string NOTARY_PUBKEY; |
|
|
|
extern std::string NOTARY_PUBKEY,NOTARY_ADDRESS; |
|
|
|
extern int32_t KOMODO_EXCHANGEWALLET; |
|
|
|
extern int32_t VERUS_MIN_STAKEAGE; |
|
|
|
extern std::string DONATION_PUBKEY; |
|
|
|
extern uint8_t ASSETCHAINS_PRIVATE; |
|
|
|
extern int32_t USE_EXTERNAL_PUBKEY; |
|
|
|
extern char NOTARYADDRS[64][64]; // should be depreciated later. Only affects labs.
|
|
|
|
extern char NOTARYADDRS[64][64]; |
|
|
|
extern char NOTARY_ADDRESSES[NUM_KMD_SEASONS][64][64]; |
|
|
|
extern int32_t KOMODO_TESTNODE, KOMODO_SNAPSHOT_INTERVAL; |
|
|
|
extern int32_t KOMODO_TESTNODE, KOMODO_SNAPSHOT_INTERVAL,IS_STAKED_NOTARY,STAKED_ERA; |
|
|
|
extern int32_t ASSETCHAINS_EARLYTXIDCONTRACT; |
|
|
|
extern int32_t ASSETCHAINS_STAKED_SPLIT_PERCENTAGE; |
|
|
|
int tx_height( const uint256 &hash ); |
|
|
|
extern std::vector<std::string> vWhiteListAddress; |
|
|
|
extern std::map <std::int8_t, int32_t> mapHeightEvalActivate; |
|
|
|
void komodo_netevent(std::vector<uint8_t> payload); |
|
|
|
int32_t getacseason(uint32_t timestamp); |
|
|
|
int32_t getkmdseason(int32_t height); |
|
|
|
|
|
|
|
#define IGUANA_MAXSCRIPTSIZE 10001 |
|
|
|
#define KOMODO_KVDURATION 1440 |
|
|
@ -341,8 +419,20 @@ uint64_t komodo_accrued_interest(int32_t *txheightp,uint32_t *locktimep,uint256 |
|
|
|
int32_t komodo_currentheight(); |
|
|
|
int32_t komodo_notarized_bracket(struct notarized_checkpoint *nps[2],int32_t height); |
|
|
|
arith_uint256 komodo_adaptivepow_target(int32_t height,arith_uint256 bnTarget,uint32_t nTime); |
|
|
|
bool komodo_hardfork_active(uint32_t time); |
|
|
|
int32_t komodo_newStakerActive(int32_t height, uint32_t timestamp); |
|
|
|
|
|
|
|
uint256 Parseuint256(const char *hexstr); |
|
|
|
void komodo_sendmessage(int32_t minpeers, int32_t maxpeers, const char *message, std::vector<uint8_t> payload); |
|
|
|
CBlockIndex *komodo_getblockindex(uint256 hash); |
|
|
|
int32_t komodo_nextheight(); |
|
|
|
CBlockIndex *komodo_blockindex(uint256 hash); |
|
|
|
CBlockIndex *komodo_chainactive(int32_t height); |
|
|
|
int32_t komodo_blockheight(uint256 hash); |
|
|
|
bool komodo_txnotarizedconfirmed(uint256 txid); |
|
|
|
int32_t komodo_blockload(CBlock& block, CBlockIndex *pindex); |
|
|
|
uint32_t komodo_chainactive_timestamp(); |
|
|
|
uint32_t GetLatestTimestamp(int32_t height); |
|
|
|
|
|
|
|
#ifndef KOMODO_NSPV_FULLNODE |
|
|
|
#define KOMODO_NSPV_FULLNODE (KOMODO_NSPV <= 0) |
|
|
|