diff options
| author | mmbyday <mmbyday@protonmail.com> | 2018-12-14 17:28:07 -0800 |
|---|---|---|
| committer | dsc <xmrdsc@protonmail.com> | 2019-02-22 03:05:29 +0100 |
| commit | c6107d8376244560068184cbfafd38d3b2f536b8 (patch) | |
| tree | d7ba6e21f470a56d88fbe9be9ed8a7d068910c59 /js/Wizard.js | |
| parent | f329a710295deed3c15f2acff9a519c0a70e98e1 (diff) | |
| download | monzero-gui-c6107d8376244560068184cbfafd38d3b2f536b8.tar.gz monzero-gui-c6107d8376244560068184cbfafd38d3b2f536b8.tar.xz monzero-gui-c6107d8376244560068184cbfafd38d3b2f536b8.zip | |
wizard: allow calendar date for restoration height
Diffstat (limited to 'js/Wizard.js')
| -rw-r--r-- | js/Wizard.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/js/Wizard.js b/js/Wizard.js index ccef1ba6..6f0633c7 100644 --- a/js/Wizard.js +++ b/js/Wizard.js @@ -177,3 +177,46 @@ function restoreWalletCheckViewSpendAddress(walletmanager, nettype, viewkey, spe return addressOK && viewKeyOK && spendKeyOK } + +//usage: getApproximateBlockchainHeight("March 18 2016") or getApproximateBlockchainHeight("2016-11-11") +//returns estimated block height with 1 month buffer prior to requested date. +function getApproximateBlockchainHeight(_date){ + // time of monero birth 2014-04-18 10:49:53 (1397818193) + var moneroBirthTime = 1397818193; + // avg seconds per block in v1 + var secondsPerBlockV1 = 60; + // time of v2 fork 2016-03-23 15:57:38 (1458748658) + var forkTime = 1458748658; + // v2 fork block + var forkBlock = 1009827; + // avg seconds per block in V2 + var secondsPerBlockV2 = 120; + // time in UTC + var requestedTime = Math.floor(new Date(_date) / 1000); + var approxBlockchainHeight; + var secondsPerBlock; + // before monero's birth + if (requestedTime < moneroBirthTime){ + console.log("Calculated blockchain height: 0, requestedTime < moneroBirthTime " ); + return 0; + } + // time between during v1 + if (requestedTime > moneroBirthTime && requestedTime < forkTime){ + approxBlockchainHeight = Math.floor((requestedTime - moneroBirthTime)/secondsPerBlockV1); + console.log("Calculated blockchain height: " + approxBlockchainHeight ); + secondsPerBlock = secondsPerBlockV1; + } + // time is during V2 + else{ + approxBlockchainHeight = Math.floor(forkBlock + (requestedTime - forkTime)/secondsPerBlockV2); + console.log("Calculated blockchain height: " + approxBlockchainHeight ); + secondsPerBlock = secondsPerBlockV2; + } + var blocksPerMonth = 60*60*24*30/secondsPerBlock; + if(approxBlockchainHeight - blocksPerMonth > 0){ + return approxBlockchainHeight - blocksPerMonth; + } + else{ + return 0; + } +}
\ No newline at end of file |
