Feature/rust rewarding (#750)

* Calculating gas fees

* Ability to set custom fees

* Added extra test

* Removed commented code

* Moved all msg types to common contract crate

* Temporarily disabling get_tx method

* Finishing up nymd client API

* Comment fix

* Remaining fee values

* Some cleanup

* Removed needless borrow

* Fixed imports in contract tests

* Moved error types around

* New ValidatorClient

* Experiment with new type of defaults

* Removed dead module

* Dealt with unwrap

* Migrated mixnode to use new validator client

* Migrated gateway to use new validator client

* Mixnode and gateway adjustments

* More exported defaults

* Clients using new validator client

* Fixed mixnode upgrade

* Moved default values to a new crate

* Changed behaviour of validator client features

* Migrated basic functions of validator api

* Updated config + fixed startup

* Fixed wasm client build

* Integration with the explorer api

* Removed tokio dev dependency

* Needless borrow

* Fixex wasm client build

* Fixed tauri client build

* Needless borrows

* New tables for rewarding

* Updated cosmos-sdk version

* Removed reward-specific node status routes

* New rewarding-specific config entries

* Additional network defaults

* Initial periodic rewards from validator api

* Replaced print with log

* Filtering nodes with uptime > 0

* Additional failure logging statements

* Fixed operation ordering

* Adjusted next rewarding epoch determination

* Modified rewarding behaviour to keep track of rewarding in progress

* Improved error message on config load failure

* Additional log statement

* Adjusted rewarding gas limit calculation

* Made naming slightly more consistent

* Fixed incorrect parentheses placement

* Fixed fee calculation

* Cargo fmt

* Removed failed merge artifacts

* Introduced comment for any future reward modification

* typos

* Helper functions for the future

* Making @mfahampshire 's life easier

* Redesigned epoch + rewarding skipped epochs (if possible)

* Removed old merge artifacts

* Naming consistency

* Constraining arguments

* Removed unnecessary if branch

* Ignore monitor check for current epoch

* Additional checks for current epoch data

* Monitor threshold check

* cargo fmt

* Fixed post-merge issues in transactions.rs
This commit is contained in:
Jędrzej Stuczyński
2021-09-24 15:49:21 +01:00
committed by GitHub
parent 5dfaff6296
commit 020cad897d
30 changed files with 2578 additions and 334 deletions
+18 -18
View File
@@ -7,17 +7,17 @@ use rocket::http::{ContentType, Status};
use rocket::response::{self, Responder, Response};
use rocket::Request;
use serde::{Deserialize, Serialize};
use sqlx::types::time::OffsetDateTime;
use std::convert::TryFrom;
use std::fmt::{self, Display, Formatter};
use std::io::Cursor;
use time::OffsetDateTime;
// todo: put into some error enum
#[derive(Debug)]
pub struct InvalidUptime;
// value in range 0-100
#[derive(Clone, Serialize, Deserialize, Debug)]
#[derive(Clone, Copy, Serialize, Deserialize, Debug)]
pub struct Uptime(u8);
impl Uptime {
@@ -76,17 +76,17 @@ impl TryFrom<i64> for Uptime {
#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct MixnodeStatusReport {
identity: String,
owner: String,
pub(crate) identity: String,
pub(crate) owner: String,
most_recent_ipv4: bool,
most_recent_ipv6: bool,
pub(crate) most_recent_ipv4: bool,
pub(crate) most_recent_ipv6: bool,
last_hour_ipv4: Uptime,
last_hour_ipv6: Uptime,
pub(crate) last_hour_ipv4: Uptime,
pub(crate) last_hour_ipv6: Uptime,
last_day_ipv4: Uptime,
last_day_ipv6: Uptime,
pub(crate) last_day_ipv4: Uptime,
pub(crate) last_day_ipv6: Uptime,
}
impl MixnodeStatusReport {
@@ -122,17 +122,17 @@ impl MixnodeStatusReport {
#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct GatewayStatusReport {
identity: String,
owner: String,
pub(crate) identity: String,
pub(crate) owner: String,
most_recent_ipv4: bool,
most_recent_ipv6: bool,
pub(crate) most_recent_ipv4: bool,
pub(crate) most_recent_ipv6: bool,
last_hour_ipv4: Uptime,
last_hour_ipv6: Uptime,
pub(crate) last_hour_ipv4: Uptime,
pub(crate) last_hour_ipv6: Uptime,
last_day_ipv4: Uptime,
last_day_ipv6: Uptime,
pub(crate) last_day_ipv4: Uptime,
pub(crate) last_day_ipv6: Uptime,
}
impl GatewayStatusReport {