This commit is contained in:
Drazen Urch
2021-11-16 14:39:20 +01:00
parent 7301316f2c
commit 0ae4e7bdfb
5 changed files with 34 additions and 62 deletions
-11
View File
@@ -13,17 +13,6 @@ exclude = [
[lib]
crate-type = ["cdylib", "rlib"]
[profile.release]
opt-level = 3
debug = false
rpath = false
lto = true
debug-assertions = false
codegen-units = 1
panic = 'abort'
incremental = false
overflow-checks = true
[features]
# for more explicit tests, cargo test --features=backtraces
backtraces = ["cosmwasm-std/backtraces"]
+26 -47
View File
@@ -1,11 +1,11 @@
use crate::errors::ContractError;
use crate::messages::{ExecuteMsg, InitMsg, QueryMsg};
use crate::vesting::VestingPeriod;
use cosmwasm_std::{
entry_point, to_binary, Addr, Coin, Deps, DepsMut, Env, MessageInfo, QueryResponse,
Response, Timestamp
entry_point, to_binary, Addr, Coin, Deps, DepsMut, Env, MessageInfo, QueryResponse, Response,
Timestamp,
};
use mixnet_contract::IdentityKey;
use crate::vesting::VestingPeriod;
/// Instantiate the contract.
///
/// `deps` contains Storage, API and Querier
@@ -33,23 +33,15 @@ pub fn execute(
ExecuteMsg::DelegateToMixnode { mix_identity } => {
try_delegate_to_mixnode(mix_identity, env, deps)
}
ExecuteMsg::UndelegateFromMixnode {
mix_identity,
amount,
} => try_undelegate_from_mixnode(
mix_identity,
amount,
env,
deps,
),
ExecuteMsg::UndelegateFromMixnode { mix_identity } => {
try_undelegate_from_mixnode(mix_identity, env, deps)
}
ExecuteMsg::CreatePeriodicVestingAccount {
address,
coins,
start_time,
periods,
} => try_create_periodic_vesting_account(
address, coins, start_time, periods, env, deps,
),
} => try_create_periodic_vesting_account(address, coins, start_time, periods, env, deps),
}
}
@@ -63,7 +55,6 @@ fn try_delegate_to_mixnode(
fn try_undelegate_from_mixnode(
mix_identity: IdentityKey,
amount: Vec<Coin>,
env: Env,
deps: DepsMut,
) -> Result<Response, ContractError> {
@@ -80,22 +71,25 @@ fn try_create_periodic_vesting_account(
) -> Result<Response, ContractError> {
let start_time = start_time.unwrap_or_else(|| env.block.time.seconds());
let periods = periods.unwrap_or_else(|| vec![VestingPeriod::default(); 8]);
let account = crate::vesting::PeriodicVestingAccount::new(
address,
coins,
start_time,
periods,
);
let account = crate::vesting::PeriodicVestingAccount::new(address, coins, start_time, periods);
unimplemented!()
}
#[entry_point]
pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> Result<QueryResponse, ContractError> {
let query_res = match msg {
QueryMsg::LockedCoins{block_time } => to_binary(&try_get_locked_coins(block_time, env, deps)?),
QueryMsg::SpendableCoins { block_time } => to_binary(&try_get_spendable_coins(block_time, env, deps)?),
QueryMsg::GetVestedCoins { block_time } => to_binary(&try_get_vested_coins(block_time, env, deps)?),
QueryMsg::GetVestingCoins { block_time } => to_binary(&try_get_vesting_coins(block_time, env, deps)?),
QueryMsg::LockedCoins { block_time } => {
to_binary(&try_get_locked_coins(block_time, env, deps)?)
}
QueryMsg::SpendableCoins { block_time } => {
to_binary(&try_get_spendable_coins(block_time, env, deps)?)
}
QueryMsg::GetVestedCoins { block_time } => {
to_binary(&try_get_vested_coins(block_time, env, deps)?)
}
QueryMsg::GetVestingCoins { block_time } => {
to_binary(&try_get_vesting_coins(block_time, env, deps)?)
}
QueryMsg::GetStartTime {} => to_binary(&try_get_start_time(env, deps)?),
QueryMsg::GetEndTime {} => to_binary(&try_get_end_time(env, deps)?),
QueryMsg::GetOriginalVesting {} => to_binary(&try_get_original_vesting(env, deps)?),
@@ -143,37 +137,22 @@ fn try_get_vesting_coins(
unimplemented!()
}
fn try_get_start_time(
env: Env,
deps: Deps,
) -> Result<Option<Timestamp>, ContractError> {
fn try_get_start_time(env: Env, deps: Deps) -> Result<Option<Timestamp>, ContractError> {
unimplemented!()
}
fn try_get_end_time(
env: Env,
deps: Deps,
) -> Result<Option<Timestamp>, ContractError> {
fn try_get_end_time(env: Env, deps: Deps) -> Result<Option<Timestamp>, ContractError> {
unimplemented!()
}
fn try_get_original_vesting(
env: Env,
deps: Deps,
) -> Result<Vec<Coin>, ContractError> {
fn try_get_original_vesting(env: Env, deps: Deps) -> Result<Vec<Coin>, ContractError> {
unimplemented!()
}
fn try_get_delegated_free(
env: Env,
deps: Deps,
) -> Result<Vec<Coin>, ContractError> {
fn try_get_delegated_free(env: Env, deps: Deps) -> Result<Vec<Coin>, ContractError> {
unimplemented!()
}
fn try_get_delegated_vesting(
env: Env,
deps: Deps,
) -> Result<Vec<Coin>, ContractError> {
fn try_get_delegated_vesting(env: Env, deps: Deps) -> Result<Vec<Coin>, ContractError> {
unimplemented!()
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
use thiserror::Error;
use cosmwasm_std::StdError;
use thiserror::Error;
#[derive(Error, Debug, PartialEq)]
pub enum ContractError {
-1
View File
@@ -14,7 +14,6 @@ pub enum ExecuteMsg {
},
UndelegateFromMixnode {
mix_identity: IdentityKey,
amount: Vec<Coin>,
},
CreatePeriodicVestingAccount {
address: Addr,
+7 -2
View File
@@ -44,7 +44,7 @@ trait VestingAccount {
trait DelegationAccount {
fn try_delegate_to_mixnode(mix_identity: IdentityKey, amount: Vec<Coin>);
fn try_undelegate_from_mixnode(mix_identity: IdentityKey, amount: Vec<Coin>);
fn try_undelegate_from_mixnode(mix_identity: IdentityKey);
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
@@ -67,7 +67,12 @@ impl Default for VestingPeriod {
}
impl PeriodicVestingAccount {
pub fn new(address: Addr, coins: Vec<Coin>, start_time: u64, periods: Vec<VestingPeriod>) -> Self {
pub fn new(
address: Addr,
coins: Vec<Coin>,
start_time: u64,
periods: Vec<VestingPeriod>,
) -> Self {
unimplemented!()
}
}