mirror of
https://github.com/seigler/govobject-proposal
synced 2025-07-27 06:46:10 +00:00
adjust start_epoch and end_epoch calculation
This commit is contained in:
parent
6649870039
commit
643eba11c2
2 changed files with 25 additions and 19 deletions
18
index.html
18
index.html
|
@ -36,15 +36,17 @@
|
||||||
var socket;
|
var socket;
|
||||||
var paymentCycle;
|
var paymentCycle;
|
||||||
|
|
||||||
var mainnetProvider = 'https://dev-test.dash.org/';
|
var mainnetProvider = 'http://insight.dev.dash.org';
|
||||||
var testnetProvider = 'https://dev-test.dash.org/';
|
var mainnetPrefix = '/api';
|
||||||
|
|
||||||
var init = function(network, provider) {
|
var testnetProvider = 'http://test-insight.dev.dash.org';
|
||||||
|
var testnetPrefix = '/insight-api-dash';
|
||||||
|
|
||||||
|
var init = function(network, provider, prefix) {
|
||||||
var gov = new Bitcore.GovObject.Proposal();
|
var gov = new Bitcore.GovObject.Proposal();
|
||||||
gov.network = network || 'testnet';
|
gov.network = network || 'testnet';
|
||||||
|
|
||||||
paymentCycle = new PaymentCycle(gov, provider);
|
paymentCycle = new PaymentCycle(gov, provider, prefix);
|
||||||
paymentCycle.updateDropdowns();
|
|
||||||
|
|
||||||
socket = io(provider);
|
socket = io(provider);
|
||||||
|
|
||||||
|
@ -77,10 +79,10 @@
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
var gov = init('testnet', testnetProvider); // default network;
|
var gov = init('testnet', testnetProvider, testnetPrefix); // default network;
|
||||||
|
|
||||||
$('#mainnet').change(function() { gov = init('mainnet', mainnetProvider); });
|
$('#mainnet').change(function() { gov = init('mainnet', mainnetProvider, mainnetPrefix); });
|
||||||
$('#testnet').change(function() { gov = init('testnet', testnetProvider); });
|
$('#testnet').change(function() { gov = init('testnet', testnetProvider, testnetPrefix); });
|
||||||
|
|
||||||
$('#start_epoch').change(function() {
|
$('#start_epoch').change(function() {
|
||||||
paymentCycle.selectedStartIndex = $('#start_epoch').find(':selected').data('index');
|
paymentCycle.selectedStartIndex = $('#start_epoch').find(':selected').data('index');
|
||||||
|
|
|
@ -4,23 +4,24 @@
|
||||||
* @param gov
|
* @param gov
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function PaymentCycle(gov, provider) {
|
function PaymentCycle(gov, provider, prefix) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.network = gov.network;
|
this.network = gov.network;
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
|
this.prefix = prefix;
|
||||||
this.paymentCycle = 16616;
|
this.paymentCycle = 16616;
|
||||||
this.proposalMaturity = 1662 + 10; // ~(60*24*3)/2.6 = about three days
|
this.proposalMaturity = 1662; // ~(60*24*3)/2.6 = about three days
|
||||||
this.budgetCycles = 24;
|
this.budgetCycles = 24;
|
||||||
|
|
||||||
this.selectedStartIndex = 0;
|
this.selectedStartIndex = 0;
|
||||||
this.selectedPeriods = 1;
|
this.selectedPeriods = 1;
|
||||||
|
|
||||||
if (this.network == 'testnet') this.paymentCycle = 23;
|
if (this.network == 'testnet') this.paymentCycle = 23;
|
||||||
if (this.network == 'testnet') this.proposalMaturity = 24 + 1; // a little more than one hour
|
if (this.network == 'testnet') this.proposalMaturity = 24; // a little more than one hour
|
||||||
if (this.network == 'testnet') this.budgetCycles = 99;
|
if (this.network == 'testnet') this.budgetCycles = 99;
|
||||||
|
|
||||||
this.blockHeight = null;
|
this.blockHeight = 0;
|
||||||
|
|
||||||
this.startDate = [];
|
this.startDate = [];
|
||||||
this.endDate = [];
|
this.endDate = [];
|
||||||
|
@ -42,10 +43,11 @@ function PaymentCycle(gov, provider) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getInfo(function(err,res) {
|
this.getInfo(function(err, res) {
|
||||||
console.log("current blockheight: " + res.info.blocks);
|
|
||||||
|
|
||||||
self.blockHeight = res.info.blocks;
|
self.blockHeight = res.info.blocks;
|
||||||
|
console.log("current blockheight: " + self.blockHeight);
|
||||||
|
|
||||||
|
self.updateDropdowns();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,8 +107,10 @@ PaymentCycle.prototype.updateDropdowns = function() {
|
||||||
var superblock = this.getNextSuperblock(blockHeight);
|
var superblock = this.getNextSuperblock(blockHeight);
|
||||||
var timestamp = this.getBlockTimestamp(superblock);
|
var timestamp = this.getBlockTimestamp(superblock);
|
||||||
|
|
||||||
var before = this.getBlockTimestamp((superblock-this.proposalMaturity));
|
var before = this.getBlockTimestamp((superblock-(this.paymentCycle/2))); // set start_epoch to halfway before superblock
|
||||||
var after = this.getBlockTimestamp((superblock+(this.paymentCycle/2))); // set end_epoch to halfway after the last superblock
|
var after = this.getBlockTimestamp((superblock+(this.paymentCycle/2))); // set end_epoch to halfway after superblock
|
||||||
|
|
||||||
|
var votingDeadline = this.getBlockTimestamp((superblock-this.proposalMaturity)); // if superblock is within ~3 days skip to the next one
|
||||||
|
|
||||||
var label = new Date(timestamp).toLocaleDateString();
|
var label = new Date(timestamp).toLocaleDateString();
|
||||||
if (this.network == 'testnet') label += " @ " + new Date(timestamp).toLocaleTimeString();
|
if (this.network == 'testnet') label += " @ " + new Date(timestamp).toLocaleTimeString();
|
||||||
|
@ -120,7 +124,7 @@ PaymentCycle.prototype.updateDropdowns = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
// include superblock if proposal maturity date is later than now
|
// include superblock if proposal maturity date is later than now
|
||||||
if (superblockDate.before > now) {
|
if (votingDeadline > now) {
|
||||||
this.startDate.push(superblockDate);
|
this.startDate.push(superblockDate);
|
||||||
this.endDate.push(superblockDate);
|
this.endDate.push(superblockDate);
|
||||||
}
|
}
|
||||||
|
@ -189,7 +193,7 @@ PaymentCycle.prototype.updateEndEpoch = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
PaymentCycle.prototype.getInfo = function(cb) {
|
PaymentCycle.prototype.getInfo = function(cb) {
|
||||||
$.getJSON(this.provider + "insight-api-dash/status?q=getinfo", function( data ) {
|
$.getJSON(this.provider + this.prefix + "/status?q=getinfo", function( data ) {
|
||||||
cb(null, data);
|
cb(null, data);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue