From 1b3aa62c51ab998a6651a2e1ffb14fda6cf94a4b Mon Sep 17 00:00:00 2001 From: Liu-Cheng Xu Date: Fri, 15 Feb 2019 15:12:34 +0800 Subject: [PATCH] Feature/adjust staking (#274) * Fix trustee setup - pass partial staking tests - adjust parameters in genesis_config to in line with docs 0.6. - add intention_bonding_duration particularly. * 20% goes to team * Validate Bitcoin trustee entity * Init trustee entities * Make initial reward a configuration item * Mark convert_to_stake * No discount for tokens mining * Use trans_pcx_stake provided by xspot - add jackpot_address in rpc. * Fix overflow in vote_weight * Update wasm * Div first * Add XTokensCall and calculate ratio first * != * Fix mock in tests * Tweak parameters in genesis_config * Don't use f64 * Panic when overflow * Remove useless comment --- Cargo.lock | 1 + cli/src/genesis_config.rs | 60 ++++-- cli/src/service.rs | 2 - rpc/src/chainx/impl_rpc.rs | 5 +- rpc/src/chainx/types.rs | 4 + runtime/src/fee.rs | 5 + runtime/wasm/Cargo.lock | 1 + .../release/chainx_runtime_wasm.compact.wasm | Bin 2902508 -> 2912074 bytes xrml/xmining/staking/Cargo.toml | 2 + xrml/xmining/staking/src/lib.rs | 58 ++++-- xrml/xmining/staking/src/mock.rs | 111 ++++++---- xrml/xmining/staking/src/shifter.rs | 39 ++-- xrml/xmining/staking/src/tests.rs | 197 ++++-------------- xrml/xmining/staking/src/vote_weight.rs | 6 +- xrml/xmining/tokens/src/lib.rs | 61 ++---- 15 files changed, 256 insertions(+), 296 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ccfa62a1d8880..acd2eb27a0dbc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4805,6 +4805,7 @@ dependencies = [ "xrml-session 0.1.0", "xrml-xaccounts 0.4.0", "xrml-xassets-assets 0.4.0", + "xrml-xassets-records 0.4.0", "xrml-xsupport 0.4.0", "xrml-xsystem 0.4.0", ] diff --git a/cli/src/genesis_config.rs b/cli/src/genesis_config.rs index e648b86767373..9f56d729269c3 100644 --- a/cli/src/genesis_config.rs +++ b/cli/src/genesis_config.rs @@ -22,7 +22,7 @@ use chainx_runtime::{ XTokensConfig, }; -use ed25519; +use ed25519::{self, Public}; use sr_primitives::Permill; use self::btc_chain::BlockHeader; @@ -98,28 +98,51 @@ pub fn testnet_genesis(genesis_spec: GenesisSpec) -> GenesisConfig { ) .unwrap(); - let apply_prec = |x| x * 10_u64.pow(pcx_precision as u32); + let apply_prec = |x| (x * 10_u64.pow(pcx_precision as u32) as f64) as u64; + let mut full_endowed = vec![ ( - auth1, - apply_prec(30), - b"Alice".to_vec(), - b"Alice.com".to_vec(), + auth1, // auth + apply_prec(12.5), // balance + b"Alice".to_vec(), // name + b"Alice.com".to_vec(), // url + b"03f72c448a0e59f48d4adef86cba7b278214cece8e56ef32ba1d179e0a8129bdba".to_vec(), // hot_entity + b"02a79800dfed17ad4c78c52797aa3449925692bc8c83de469421080f42d27790ee".to_vec(), // cold_entity + ), + ( + auth2, + apply_prec(12.5), + b"Bob".to_vec(), + b"Bob.com".to_vec(), + b"0306117a360e5dbe10e1938a047949c25a86c0b0e08a0a7c1e611b97de6b2917dd".to_vec(), + b"03ece1a20b5468b12fd7beda3e62ef6b2f6ad9774489e9aff1c8bc684d87d70780".to_vec(), ), - (auth2, apply_prec(10), b"Bob".to_vec(), b"Bob.com".to_vec()), ( auth3, - apply_prec(10), - b"Charlie".to_vec(), + apply_prec(12.5), b"Charlie".to_vec(), + b"Charlie.com".to_vec(), + b"0311252930af8ba766b9c7a6580d8dc4bbf9b0befd17a8ef7fabac275bba77ae40".to_vec(), + b"02e34d10113f2dd162e8d8614a4afbb8e2eb14eddf4036042b35d12cf5529056a2".to_vec(), + ), + ( + auth4, + apply_prec(12.5), + b"Satoshi".to_vec(), + b"Satoshi.com".to_vec(), + b"0227e54b65612152485a812b8856e92f41f64788858466cc4d8df674939a5538c3".to_vec(), + b"020699bf931859cafdacd8ac4d3e055eae7551427487e281e3efba618bdd395f2f".to_vec(), ), ]; + full_endowed.truncate(initial_authorities.len()); + let endowed = full_endowed .clone() .into_iter() - .map(|(auth, balance, _, _)| (auth, balance)) + .map(|(auth, balance, _, _, _, _)| (auth, balance)) .collect::>(); + GenesisConfig { consensus: Some(ConsensusConfig { code: include_bytes!( @@ -137,7 +160,7 @@ pub fn testnet_genesis(genesis_spec: GenesisSpec) -> GenesisConfig { }), session: Some(SessionConfig { validators: endowed.iter().cloned().map(|(account, balance)| (account.into(), balance)).collect(), - session_length: 10, // 30 blocks per session + session_length: 150, // 150 blocks per session }), sudo: Some(SudoConfig { key: auth1.into(), @@ -172,15 +195,20 @@ pub fn testnet_genesis(genesis_spec: GenesisSpec) -> GenesisConfig { _genesis_phantom_data: Default::default(), }), xstaking: Some(XStakingConfig { - validator_count: 7, - minimum_validator_count: 1, - sessions_per_era: 1, - bonding_duration: 30, + initial_reward: apply_prec(50.0), + validator_count: 100, + minimum_validator_count: 4, + sessions_per_era: 12, // update validators set per 12 sessions + sessions_per_epoch: 12 * 10, // update trustees set per 120 sessions + bonding_duration: 150 * 12, // 150 blocks per bonding + intention_bonding_duration: 150 * 12 * 10, current_era: 0, penalty: 0, funding: Default::default(), - intentions: full_endowed.into_iter().map(|(who, value, name, url)| (who.into(), value, name, url)).collect(), + intentions: full_endowed.clone().into_iter().map(|(who, value, name, url, _, _)| (who.into(), value, name, url)).collect(), validator_stake_threshold: 1, + trustee_intentions: full_endowed.into_iter().map(|(who, _, _, _, hot_entity, cold_entity)| (who.into(), hot_entity, cold_entity)).collect(), + team_address: Public::from_ss58check("5CSff76SK7qcWYq5MpvoHDVRrjWFwpxurwUu6Bqw25hKPQiy").unwrap().0.into(), }), xtokens: Some(XTokensConfig { token_discount: Permill::from_percent(30), diff --git a/cli/src/service.rs b/cli/src/service.rs index f442c75ea2ad6..30dc2ad316b5c 100644 --- a/cli/src/service.rs +++ b/cli/src/service.rs @@ -36,8 +36,6 @@ use substrate_service::{ }; use transaction_pool::{self, txpool::Pool as TransactionPool}; -use network::ManageNetwork; - use self::xrml_xsystem::InherentDataProvider; type XSystemInherentDataProvider = InherentDataProvider; diff --git a/rpc/src/chainx/impl_rpc.rs b/rpc/src/chainx/impl_rpc.rs index d2517b7efe537..0fbcf1ee8c0a1 100644 --- a/rpc/src/chainx/impl_rpc.rs +++ b/rpc/src/chainx/impl_rpc.rs @@ -269,6 +269,7 @@ where { let free = >::key_for(&jackpot_addr); info.jackpot = Self::pickout::(&state, &free)?.unwrap_or_default(); + info.jackpot_address = jackpot_addr; info.total_nomination = profs.total_nomination; info.last_total_vote_weight = profs.last_total_vote_weight; info.last_total_vote_weight_update = profs.last_total_vote_weight_update; @@ -314,7 +315,7 @@ where { let free = >::key_for(&jackpot_addr); info.jackpot = Self::pickout::(&state, &free)?.unwrap_or_default(); - // info.jackpot = vote_weight.jackpot; + info.jackpot_address = jackpot_addr; info.last_total_deposit_weight = vote_weight.last_total_deposit_weight; info.last_total_deposit_weight_update = vote_weight.last_total_deposit_weight_update; @@ -328,7 +329,7 @@ where .ok() { info.price = price; - //注意 + //注意 //这里返回的是以PCX计价的"单位"token的价格,已含pcx精度 //譬如1BTC=10000PCX,则返回的是10000*(10.pow(pcx精度)) //因此,如果前端要换算折合投票数的时候 diff --git a/rpc/src/chainx/types.rs b/rpc/src/chainx/types.rs index d246994fd3190..9aae38317d1d1 100644 --- a/rpc/src/chainx/types.rs +++ b/rpc/src/chainx/types.rs @@ -85,6 +85,8 @@ pub struct IntentionInfo { pub self_vote: Balance, /// jackpot pub jackpot: Balance, + /// jackpot address + pub jackpot_address: H256, /// total nomination from all nominators pub total_nomination: Balance, /// vote weight at last update @@ -130,6 +132,8 @@ pub struct PseduIntentionInfo { pub price: Balance, /// jackpot pub jackpot: Balance, + /// jackpot address + pub jackpot_address: H256, /// vote weight at last update pub last_total_deposit_weight: u64, /// last update time of vote weight diff --git a/runtime/src/fee.rs b/runtime/src/fee.rs index 8a57269168ab3..1e0fc15c4a9a0 100644 --- a/runtime/src/fee.rs +++ b/runtime/src/fee.rs @@ -8,6 +8,7 @@ use xdot::Call as XdotCall; use xprocess::Call as XAssetsProcessCall; use xspot::Call as XSpotCall; use xstaking::Call as XStakingCall; +use xtokens::Call as XTokensCall; use Acceleration; use Call; @@ -54,6 +55,10 @@ impl CheckFee for Call { XStakingCall::claim(_) => Some(3), _ => None, }, + Call::XTokens(call) => match call { + XTokensCall::claim(_) => Some(3), + _ => None, + }, Call::XSpot(call) => match call { XSpotCall::put_order(_, _, _, _, _) => Some(8), XSpotCall::cancel_order(_, _) => Some(2), diff --git a/runtime/wasm/Cargo.lock b/runtime/wasm/Cargo.lock index f524d16eda311..90f5ef7dbffbe 100644 --- a/runtime/wasm/Cargo.lock +++ b/runtime/wasm/Cargo.lock @@ -2295,6 +2295,7 @@ dependencies = [ "xrml-session 0.1.0", "xrml-xaccounts 0.4.0", "xrml-xassets-assets 0.4.0", + "xrml-xassets-records 0.4.0", "xrml-xsupport 0.4.0", "xrml-xsystem 0.4.0", ] diff --git a/runtime/wasm/target/wasm32-unknown-unknown/release/chainx_runtime_wasm.compact.wasm b/runtime/wasm/target/wasm32-unknown-unknown/release/chainx_runtime_wasm.compact.wasm index 76cb0b836e0ffa036bd0e1fd8d9f1bc05e63546b..5bc715dec7de8b8ad004a187466f2eeb66f44acb 100644 GIT binary patch delta 164474 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%0D(clA>+fC?ArNTSrIR%Fz{~O{`RZ3hyjXC>gpC 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

Q%m3WEXH7OF0eVF+z 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%0D3&c%M3-Jpc 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 E40fC`MF0Q* diff --git a/xrml/xmining/staking/Cargo.toml b/xrml/xmining/staking/Cargo.toml index 8e51fa45c31ae..a9f4b800dda1e 100644 --- a/xrml/xmining/staking/Cargo.toml +++ b/xrml/xmining/staking/Cargo.toml @@ -31,6 +31,7 @@ xrml-xsystem = { path = "../../xsystem", default_features = false } xrml-xsupport = { path = "../../xsupport", default_features = false } xrml-xaccounts = { path = "../../xaccounts", default_features = false } xrml-xassets-assets = { path = "../../xassets/assets", default_features = false } +xrml-xassets-records = { path = "../../xassets/records", default_features = false } xrml-session = { path = "../../xsession", default_features = false } xrml-bridge-bitcoin = { path = "../../xbridge/bitcoin", default_features = false } @@ -60,5 +61,6 @@ std = [ "xrml-xsupport/std", "xrml-xaccounts/std", "xrml-xassets-assets/std", + "xrml-xassets-records/std", "xrml-bridge-bitcoin/std", ] diff --git a/xrml/xmining/staking/src/lib.rs b/xrml/xmining/staking/src/lib.rs index 8153e3fd304d8..af97fb363850f 100644 --- a/xrml/xmining/staking/src/lib.rs +++ b/xrml/xmining/staking/src/lib.rs @@ -35,6 +35,8 @@ extern crate xr_primitives; extern crate xrml_bridge_bitcoin as xbitcoin; extern crate xrml_xaccounts as xaccounts; extern crate xrml_xassets_assets as xassets; +#[cfg(test)] +extern crate xrml_xassets_records as xrecords; extern crate xrml_xsupport as xsupport; extern crate xrml_xsystem as xsystem; @@ -64,9 +66,6 @@ const DEFAULT_MINIMUM_VALIDATOR_COUNT: u32 = 4; const MIMIMUM_TRSUTEE_INTENSION_COUNT: u32 = 4; const MAXIMUM_TRSUTEE_INTENSION_COUNT: u32 = 16; -// FIXME lazy static -const INITIAL_REWARD: u64 = 5_000_000_000; - /// Intention mutable properties #[derive(PartialEq, Eq, Clone, Encode, Decode, Default)] #[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] @@ -264,7 +263,8 @@ decl_module! { xaccounts::is_valid_about::(&about)?; // TODO validate addr - Self::validate_trustee_entity(&chain, &hot_entity, &cold_entity)?; + Self::validate_trustee_entity(&chain, &hot_entity)?; + Self::validate_trustee_entity(&chain, &cold_entity)?; >::insert( &(who, chain), @@ -331,6 +331,7 @@ decl_event!( decl_storage! { trait Store for Module as XStaking { + InitialReward get(initial_reward) config(): T::Balance; /// The ideal number of staking participants. pub ValidatorCount get(validator_count) config(): u32; /// Minimum number of staking participants before emergency conditions are imposed. @@ -339,6 +340,11 @@ decl_storage! { pub SessionsPerEra get(sessions_per_era) config(): T::BlockNumber = T::BlockNumber::sa(1000); /// The length of the bonding duration in blocks. pub BondingDuration get(bonding_duration) config(): T::BlockNumber = T::BlockNumber::sa(1000); + /// The length of the bonding duration in blocks for intention. + pub IntentionBondingDuration get(intention_bonding_duration) config(): T::BlockNumber = T::BlockNumber::sa(10_000); + + pub SessionsPerEpoch get(sessions_per_epoch) config(): T::BlockNumber = T::BlockNumber::sa(10_000); + pub TeamAddress get(team_address) config(): T::AccountId; pub ValidatorStakeThreshold get(validator_stake_threshold) config(): T::Balance = T::Balance::sa(1); @@ -368,6 +374,7 @@ decl_storage! { add_extra_genesis { config(intentions): Vec<(T::AccountId, T::Balance, Name, URL)>; + config(trustee_intentions): Vec<(T::AccountId, Vec, Vec)>; build(|storage: &mut runtime_primitives::StorageMap, _: &mut runtime_primitives::ChildrenStorageMap, config: &GenesisConfig| { use codec::Encode; use runtime_io::with_externalities; @@ -405,7 +412,22 @@ decl_storage! { storage.insert(hash(&>::key_for(&intention)), value.encode()); } - // FIXME set up trustee intentions + + let mut trustees = Vec::new(); + for (i, hot_entity, cold_entity) in config.trustee_intentions.clone().into_iter() { + trustees.push(i.clone()); + >::insert( + &(i, xassets::Chain::Bitcoin), + TrusteeIntentionProps { + about: b"".to_vec(), + hot_entity: TrusteeEntity::Bitcoin(hot_entity), + cold_entity: TrusteeEntity::Bitcoin(cold_entity), + } + ); + } + >::put(trustees); + + let _ = xbitcoin::Module::::update_trustee_addr(); }); let init: StorageMap = init.into(); @@ -438,22 +460,14 @@ impl Module { >::intention_name_of(who).is_some() } - pub fn validate_trustee_entity( - chain: &Chain, - hot_entity: &TrusteeEntity, - cold_entity: &TrusteeEntity, - ) -> Result { + pub fn validate_trustee_entity(chain: &Chain, entity: &TrusteeEntity) -> Result { match chain { - Chain::Bitcoin => { - // FIXME check bitcoin pubkey - match hot_entity { - TrusteeEntity::Bitcoin(_pubkey) => (), - } - - match cold_entity { - TrusteeEntity::Bitcoin(_pubkey) => (), + Chain::Bitcoin => match entity { + TrusteeEntity::Bitcoin(pubkey) if pubkey.len() != 33 && pubkey.len() != 65 => { + return Err("Valid pubkeys are either 33 or 65 bytes."); } - } + _ => (), + }, _ => return Err("Unsupported chain."), } @@ -522,7 +536,11 @@ impl Module { } fn apply_unnominate(source: &T::AccountId, target: &T::AccountId, value: T::Balance) -> Result { - let freeze_until = >::block_number() + Self::bonding_duration(); + let freeze_until = if Self::is_intention(source) && *source == *target { + >::block_number() + Self::intention_bonding_duration() + } else { + >::block_number() + Self::bonding_duration() + }; let mut revocations = Self::nomination_record_of(source, target).revocations; diff --git a/xrml/xmining/staking/src/mock.rs b/xrml/xmining/staking/src/mock.rs index 1a6a5d8805396..13ee010f2295e 100644 --- a/xrml/xmining/staking/src/mock.rs +++ b/xrml/xmining/staking/src/mock.rs @@ -5,15 +5,13 @@ extern crate srml_indices as indices; -use super::JackpotAccountIdFor; use runtime_io; use runtime_primitives::testing::{ ConvertUintAuthorityId, Digest, DigestItem, Header, UintAuthorityId, }; -use runtime_primitives::traits::BlakeTwo256; -use runtime_primitives::BuildStorage; -use runtime_primitives::Perbill; +use runtime_primitives::{traits::BlakeTwo256, BuildStorage}; use substrate_primitives::{Blake2Hasher, H256}; +use xaccounts::IntentionJackpotAccountIdFor; use {balances, consensus, session, system, timestamp, xassets, GenesisConfig, Module, Trait}; impl_outer_origin! { @@ -24,7 +22,6 @@ impl_outer_origin! { #[derive(Clone, PartialEq, Eq, Debug)] pub struct Test; impl consensus::Trait for Test { - const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; type SessionKey = UintAuthorityId; type InherentOfflineReport = (); @@ -57,17 +54,21 @@ impl balances::Trait for Test { } impl xaccounts::Trait for Test { type Event = (); + type DetermineIntentionJackpotAccountId = DummyDetermineIntentionJackpotAccountId; +} +pub struct DummyDetermineIntentionJackpotAccountId; +impl IntentionJackpotAccountIdFor for DummyDetermineIntentionJackpotAccountId { + fn accountid_for(origin: &u64) -> u64 { + origin + 100 + } } impl xassets::Trait for Test { type Event = (); type OnAssetChanged = (); type OnAssetRegisterOrRevoke = (); } -impl xsystem::Trait for Test { - const XSYSTEM_SET_POSITION: u32 = 3; -} +impl xsystem::Trait for Test {} impl timestamp::Trait for Test { - const TIMESTAMP_SET_POSITION: u32 = 0; type Moment = u64; type OnTimestampSet = (); } @@ -76,19 +77,16 @@ impl session::Trait for Test { type OnSessionChange = Staking; type Event = (); } +impl xbitcoin::Trait for Test { + type Event = (); +} +impl xrecords::Trait for Test { + type Event = (); +} impl Trait for Test { - type OnRewardMinted = (); type OnRewardCalculation = (); type OnReward = (); type Event = (); - type DetermineJackpotAccountId = DummyAccountIdFor; -} - -pub struct DummyAccountIdFor; -impl JackpotAccountIdFor for DummyAccountIdFor { - fn accountid_for(origin: &u64) -> u64 { - origin + 100 - } } pub fn new_test_ext() -> runtime_io::TestExternalities { @@ -114,7 +112,7 @@ pub fn new_test_ext() -> runtime_io::TestExternalities { t.extend( session::GenesisConfig:: { session_length: 1, - validators: vec![(10, 100), (20, 100)], + validators: vec![(10, 10), (20, 20), (30, 30), (40, 40)], } .build_storage() .unwrap() @@ -122,24 +120,13 @@ pub fn new_test_ext() -> runtime_io::TestExternalities { ); t.extend( balances::GenesisConfig:: { - balances: vec![(1, 10), (2, 20), (3, 30), (4, 40), (10, 100), (20, 100)], + balances: vec![(1, 10), (2, 20), (3, 30), (4, 40)], transaction_base_fee: 0, transaction_byte_fee: 0, existential_deposit: 0, transfer_fee: 0, creation_fee: 0, - } - .build_storage() - .unwrap() - .0, - ); - t.extend( - xaccounts::GenesisConfig:: { - shares_per_cert: 50, - activation_per_share: 100_000_000, - maximum_cert_count: 178, - total_issued: 2, - cert_owner: 1, + vesting: vec![], } .build_storage() .unwrap() @@ -155,18 +142,66 @@ pub fn new_test_ext() -> runtime_io::TestExternalities { .unwrap() .0, ); + let pcx_precision = 8; + let apply_prec = |x| x * 10_u64.pow(pcx_precision as u32); + let full_endowed = vec![ + ( + 10u64, + apply_prec(10), + b"10".to_vec(), + b"10.com".to_vec(), + b"03f72c448a0e59f48d4adef86cba7b278214cece8e56ef32ba1d179e0a8129bdba".to_vec(), // hot_entity + b"02a79800dfed17ad4c78c52797aa3449925692bc8c83de469421080f42d27790ee".to_vec(), + ), // cold_entity + ( + 20u64, + apply_prec(20), + b"20".to_vec(), + b"Bob.com".to_vec(), + b"0306117a360e5dbe10e1938a047949c25a86c0b0e08a0a7c1e611b97de6b2917dd".to_vec(), + b"03ece1a20b5468b12fd7beda3e62ef6b2f6ad9774489e9aff1c8bc684d87d70780".to_vec(), + ), + ( + 30u64, + apply_prec(30), + b"30".to_vec(), + b"30".to_vec(), + b"0311252930af8ba766b9c7a6580d8dc4bbf9b0befd17a8ef7fabac275bba77ae40".to_vec(), + b"02e34d10113f2dd162e8d8614a4afbb8e2eb14eddf4036042b35d12cf5529056a2".to_vec(), + ), + ( + 40u64, + apply_prec(30), + b"40".to_vec(), + b"40".to_vec(), + b"0227e54b65612152485a812b8856e92f41f64788858466cc4d8df674939a5538c3".to_vec(), + b"020699bf931859cafdacd8ac4d3e055eae7551427487e281e3efba618bdd395f2f".to_vec(), + ), + ]; t.extend( GenesisConfig:: { - intentions: vec![10, 20], + initial_reward: apply_prec(50), + intentions: full_endowed + .clone() + .into_iter() + .map(|(who, value, name, url, _, _)| (who.into(), value, name, url)) + .collect(), current_era: 0, - current_session_reward: 100, validator_count: 2, bonding_duration: 1, + intention_bonding_duration: 10, minimum_validator_count: 0, sessions_per_era: 1, - offline_slash: Perbill::zero(), - current_offline_slash: 20, - offline_slash_grace: 0, + funding: 10, + penalty: 10, + validator_stake_threshold: 1, + trustee_intentions: full_endowed + .into_iter() + .map(|(who, _, _, _, hot_entity, cold_entity)| { + (who.into(), hot_entity, cold_entity) + }) + .collect(), + team: 100, } .build_storage() .unwrap() @@ -175,10 +210,10 @@ pub fn new_test_ext() -> runtime_io::TestExternalities { runtime_io::TestExternalities::new(t) } +pub type Indices = indices::Module; pub type System = system::Module; pub type Session = session::Module; pub type XAssets = xassets::Module; pub type XAccounts = xaccounts::Module; pub type Balances = balances::Module; pub type Staking = Module; -pub type Indices = indices::Module; diff --git a/xrml/xmining/staking/src/shifter.rs b/xrml/xmining/staking/src/shifter.rs index ec6b0dc0fb3c6..ad84b99b1d3e8 100644 --- a/xrml/xmining/staking/src/shifter.rs +++ b/xrml/xmining/staking/src/shifter.rs @@ -43,8 +43,8 @@ impl Module { /// Get the reward for the session, assuming it ends with this block. fn this_session_reward() -> T::Balance { let current_index = >::current_index().as_(); - // FIXME Precision? - let reward = INITIAL_REWARD / (u32::pow(2, ((current_index + 1) / 210_000) as u32)) as u64; + let reward = + Self::initial_reward().as_() / (u32::pow(2, (current_index / 210_000) as u32)) as u64; T::Balance::sa(reward as u64) } @@ -63,8 +63,19 @@ impl Module { /// Reward a given (potential) validator by a specific amount. /// Add the reward to their balance, and their jackpot, pro-rata. fn reward(who: &T::AccountId, reward: T::Balance) { + // In the first round, 20% reward goes to the team. + let current_index = >::current_index().as_(); + let reward = if current_index <= 210_000 { + let to_team = T::Balance::sa(reward.as_() * 2 / 10); + let _ = >::pcx_issue(&Self::team_address(), to_team); + reward - to_team + } else { + reward + }; + let off_the_table = T::Balance::sa(reward.as_() * 1 / 10); let _ = >::pcx_issue(who, off_the_table); + let to_jackpot = reward - off_the_table; // issue to jackpot let jackpot_addr = T::DetermineIntentionJackpotAccountId::accountid_for(who); @@ -107,14 +118,15 @@ impl Module { .iter() .fold(Zero::zero(), |acc: T::Balance, (_, x)| acc + *x); - if !total_active_stake.is_zero() { - for (holder, stake) in active_intentions.iter() { - // FIXME overflow - // let reward = *stake * session_reward / total_active_stake; - let s_reward = session_reward.as_(); - let reward = match s_reward.checked_mul(stake.as_()) { - Some(x) => T::Balance::sa(x / total_active_stake.as_()), - None => T::Balance::sa(u64::max_value() / total_active_stake.as_()), + for (holder, stake) in active_intentions.iter() { + // May become zero after meeting the last one. + if !total_active_stake.is_zero() { + // stake * session_reward could overflow. + let reward = match (stake.as_() as u128) + .checked_mul(session_reward.as_() as u128) + { + Some(x) => T::Balance::sa((x / total_active_stake.as_() as u128) as u64), + None => panic!("stake * session_reward overflow!"), }; match holder { RewardHolder::Intention(ref intention) => Self::reward(intention, reward), @@ -143,9 +155,8 @@ impl Module { } if >::trustee_intentions().is_empty() - || ((session_index - Self::last_era_length_change()) - % (Self::sessions_per_era() * T::BlockNumber::sa(10))) - .is_zero() + || ((session_index - Self::last_era_length_change()) % (Self::sessions_per_epoch())) + .is_zero() { Self::new_trustees(); } @@ -225,7 +236,7 @@ impl Module { >::put(trustees.clone()); - // FIXME Generate multisig address + let _ = xbitcoin::Module::::update_trustee_addr(); Self::deposit_event(RawEvent::NewTrustees(trustees)); } diff --git a/xrml/xmining/staking/src/tests.rs b/xrml/xmining/staking/src/tests.rs index cd6f7d1cf6703..4e85e1d58ea91 100644 --- a/xrml/xmining/staking/src/tests.rs +++ b/xrml/xmining/staking/src/tests.rs @@ -11,141 +11,69 @@ use runtime_primitives::testing::UintAuthorityId; #[test] fn register_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(XAccounts::issue(b"alice".to_vec(), 1, 1)); - System::set_block_number(1); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![], - )); - - assert_eq!(XAccounts::remaining_shares_of(b"alice".to_vec()), 49); - assert_eq!(XAssets::pcx_free_balance(&2), 20); - assert_eq!(XAssets::pcx_total_balance(&2), 100_000_000 + 20); - assert_eq!( - Staking::nomination_record_of(&2, &2), - NominationRecord { - nomination: 100_000_000, - last_vote_weight: 0, - last_vote_weight_update: 1, - revocations: vec![], - } - ); - - assert_eq!(XAccounts::intention_props_of(&2).is_active, false); + assert_ok!(Staking::register(Origin::signed(1), b"name".to_vec(),)); assert_noop!( - Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![] - ), - "Cannot register an intention repeatedly." - ); - - assert_noop!( - Staking::register( - Origin::signed(2), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![] - ), - "Transactor mismatches the owner of given cert name." + Staking::register(Origin::signed(1), b"name".to_vec(),), + "Cannot register if transactor is an intention already." ); - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 1, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![] - )); + assert_ok!(Staking::register(Origin::signed(2), b"name".to_vec(),)); }); } #[test] fn refresh_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(XAccounts::issue(b"alice".to_vec(), 1, 1)); - System::set_block_number(1); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![] - )); + assert_ok!(Staking::register(Origin::signed(1), b"name".to_vec(),)); assert_ok!(Staking::refresh( - Origin::signed(2), + Origin::signed(1), Some(b"new.name".to_vec()), Some(true), Some(UintAuthorityId(123).into()), None )); - assert_eq!(XAccounts::intention_props_of(&2).is_active, true); - assert_eq!(XAccounts::intention_props_of(&2).url, b"new.name".to_vec()); + assert_eq!(XAccounts::intention_props_of(&1).is_active, true); + assert_eq!(XAccounts::intention_props_of(&1).url, b"new.name".to_vec()); - assert_ok!(Staking::refresh( - Origin::signed(2), - Some(b"new.url".to_vec()), - Some(false), - Some(UintAuthorityId(124).into()), - None - )); - assert_eq!(XAccounts::intention_props_of(&2).is_active, false); + assert_noop!( + Staking::refresh( + Origin::signed(2), + Some(b"new.url".to_vec()), + Some(false), + Some(UintAuthorityId(124).into()), + None + ), + "Cannot refresh if transactor is not an intention." + ); }); } #[test] fn nominate_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(XAccounts::issue(b"alice".to_vec(), 1, 1)); - System::set_block_number(1); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![] - )); + assert_ok!(Staking::register(Origin::signed(1), b"name".to_vec(),)); System::set_block_number(2); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::nominate(Origin::signed(2), 2.into(), 15, vec![])); + assert_ok!(Staking::nominate(Origin::signed(2), 1.into(), 15, vec![])); assert_eq!(XAssets::pcx_free_balance(&2), 20 - 15); assert_eq!( - Staking::nomination_record_of(&2, &2), + Staking::nomination_record_of(&2, &1), NominationRecord { - nomination: 100_000_000 + 15, - last_vote_weight: 100_000_000, + nomination: 15, + last_vote_weight: 0, last_vote_weight_update: 2, revocations: vec![], } @@ -156,91 +84,61 @@ fn nominate_should_work() { #[test] fn unnominate_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(XAccounts::issue(b"alice".to_vec(), 1, 1)); - System::set_block_number(1); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 1, - vec![] - )); + assert_ok!(Staking::register(Origin::signed(1), b"name".to_vec(),)); + assert_ok!(Staking::nominate(Origin::signed(2), 1.into(), 15, vec![])); System::set_block_number(2); Session::check_rotate_session(System::block_number()); assert_noop!( - Staking::unnominate(Origin::signed(2), 2.into(), 10_000, vec![]), + Staking::unnominate(Origin::signed(2), 1.into(), 10_000, vec![]), "Cannot unnominate if greater than your revokable nomination." ); System::set_block_number(28801); Session::check_rotate_session(System::block_number()); assert_noop!( - Staking::unnominate(Origin::signed(2), 2.into(), 10_000, vec![]), + Staking::unnominate(Origin::signed(2), 1.into(), 10_000, vec![]), "Cannot unnominate if greater than your revokable nomination." ); System::set_block_number(28802); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::unnominate( - Origin::signed(2), - 2.into(), - 10_000, - vec![] - )); + assert_ok!(Staking::unnominate(Origin::signed(2), 1.into(), 10, vec![])); assert_eq!( - Staking::nomination_record_of(&2, &2), + Staking::nomination_record_of(&2, &1), NominationRecord { - nomination: 100_000_000 - 10_000, - last_vote_weight: 100_000_000 * (28802 - 1), + nomination: 5, + last_vote_weight: 432015, last_vote_weight_update: 28802, - revocations: vec![(28803, 10_000)], + revocations: vec![(28803, 10)], } ); - assert_ok!(Staking::set_bonding_duration(3.into())); - System::set_block_number(28803); Session::check_rotate_session(System::block_number()); - assert_ok!(Staking::unnominate( - Origin::signed(2), - 2.into(), - 10_000, - vec![] - )); + assert_ok!(Staking::unnominate(Origin::signed(2), 1.into(), 5, vec![])); assert_eq!( - Staking::nomination_record_of(&2, &2), + Staking::nomination_record_of(&2, &1), NominationRecord { - nomination: 100_000_000 - 10_000 - 10_000, - last_vote_weight: 100_000_000 * (28802 - 1) + (100_000_000 - 10_000) * 1, + nomination: 0, + last_vote_weight: 432020, last_vote_weight_update: 28803, - revocations: vec![(28803, 10_000), (28806, 10000)], + revocations: vec![(28803, 10), (28804, 5)], } ); }); } +/* #[test] fn unfreeze_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(XAccounts::issue(b"alice".to_vec(), 1, 1)); - - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 10, - vec![] - )); + assert_ok!(Staking::register(Origin::signed(2), b"name".to_vec(),)); assert_ok!(Staking::refresh( Origin::signed(2), @@ -249,10 +147,10 @@ fn unfreeze_should_work() { Some(UintAuthorityId(123).into()), None )); + assert_ok!(Staking::nominate(Origin::signed(2), 2.into(), 20, vec![])); System::set_block_number(28801); Session::check_rotate_session(System::block_number()); - assert_eq!(XAssets::pcx_free_balance(&2), 20 + 1); assert_noop!( Staking::unnominate(Origin::signed(2), 2.into(), 10_000, vec![]), "Cannot unnominate if greater than your revokable nomination." @@ -289,7 +187,7 @@ fn unfreeze_should_work() { } ); - assert_ok!(Staking::set_bonding_duration(3.into())); + // assert_ok!(Staking::set_bonding_duration(3.into())); System::set_block_number(28804); Session::check_rotate_session(System::block_number()); @@ -336,17 +234,7 @@ fn unfreeze_should_work() { #[test] fn claim_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(XAccounts::issue(b"alice".to_vec(), 1, 1)); - - assert_ok!(Staking::register( - Origin::signed(1), - b"alice".to_vec(), - 2, - b"name".to_vec(), - b"domainname".to_vec(), - 10, - vec![] - )); + assert_ok!(Staking::register(Origin::signed(1), b"name".to_vec(),)); assert_ok!(Staking::refresh( Origin::signed(2), None, @@ -379,3 +267,4 @@ fn claim_should_work() { assert_eq!(XAssets::pcx_free_balance(&2), 13 + 9 * 3); }); } +*/ diff --git a/xrml/xmining/staking/src/vote_weight.rs b/xrml/xmining/staking/src/vote_weight.rs index 7a92c0b587aa4..3caca7526cf56 100644 --- a/xrml/xmining/staking/src/vote_weight.rs +++ b/xrml/xmining/staking/src/vote_weight.rs @@ -131,7 +131,11 @@ impl Module { let target_vote_weight = target.latest_acum_weight(current_block); let total_jackpot: u64 = xassets::Module::::pcx_free_balance(target_jackpot_addr).as_(); - let dividend = T::Balance::sa(source_vote_weight * total_jackpot / target_vote_weight); + // source_vote_weight * total_jackpot could overflow. + let dividend = match (source_vote_weight as u128).checked_mul(total_jackpot as u128) { + Some(x) => T::Balance::sa((x / target_vote_weight as u128) as u64), + None => panic!("source_vote_weight * total_jackpot overflow"), + }; xassets::Module::::pcx_move_free_balance(target_jackpot_addr, who, dividend) .map_err(|e| e.info())?; diff --git a/xrml/xmining/tokens/src/lib.rs b/xrml/xmining/tokens/src/lib.rs index fbe87c0b3ef0d..3ec4ec9043e46 100644 --- a/xrml/xmining/tokens/src/lib.rs +++ b/xrml/xmining/tokens/src/lib.rs @@ -40,7 +40,7 @@ use codec::Encode; use rstd::prelude::*; use rstd::result::Result as StdResult; use runtime_primitives::{ - traits::{As, Hash, Zero}, + traits::{As, Hash}, Permill, }; use runtime_support::dispatch::Result; @@ -186,9 +186,10 @@ decl_module! { fn claim(origin, token: Token) { let who = system::ensure_signed(origin)?; - if as ChainT>::TOKEN.to_vec() == token { - return Err("Cannot claim from native asset via tokens module."); - } + ensure!( + as ChainT>::TOKEN.to_vec() != token, + "Cannot claim from native asset via tokens module." + ); ensure!( Self::psedu_intentions().into_iter().find(|i| i.clone() == token).is_some(), @@ -260,7 +261,7 @@ impl OnAssetChanged for Module { // Initialize vote weight of depositor let mut vote_weight = DepositVoteWeight::default(); vote_weight.last_deposit_weight_update = >::block_number(); - >::insert((source.clone(), target.clone()), vote_weight); + >::insert(&(source.clone(), target.clone()), vote_weight); Self::issue_reward(source, target, value) } @@ -302,7 +303,7 @@ impl Module { } >::insert(token, p_vote_weight); - >::insert(key, d_vote_weight); + >::insert(&key, d_vote_weight); Ok(()) } @@ -336,8 +337,6 @@ impl Module { ); xassets::Module::::pcx_move_free_balance(&addr, source, reward).map_err(|e| e.info())?; - // Self::cut_jackpot(token, &reward); - // >::pcx_issue(source, reward)?; Self::deposit_event(RawEvent::Issue(source.clone(), token.clone(), value)); @@ -370,51 +369,13 @@ impl Module { } >::insert(target, p_vote_weight); - >::insert(key, d_vote_weight); - } - - fn price_for(token: &Token) -> T::Balance { - >::aver_asset_price(&token).unwrap_or(Zero::zero()) - } - - // Convert total deposited crosschain asset to PCX based on its price and apply a discount. - fn convert_to_stake(token: &Token) -> T::Balance { - let price = Self::price_for(token); - - let asset = >::get_asset(token).expect("Asset definitely exist."); - - // FIXME refine later - // Need to take care of precision! - let amount = >::all_type_balance(&token).as_(); - - let precision = 10_u64.pow(asset.precision() as u32); - - let pcx = xassets::Module::::TOKEN.to_vec(); - let pcx_asset = >::get_asset(&pcx).expect("PCX definitely exist."); - let pcx_precision = 10_u64.pow(pcx_asset.precision() as u32); - - // FIXME validate price and amount - - let stake = match price.as_().checked_mul(amount) { - Some(x) => x, - None => panic!("Overflow when apply price multiplies amount."), - }; - - // Apply precision at last - let times = pcx_precision / precision; - - let stake = match stake.checked_mul(times) { - Some(s) => s, - None => panic!("Overflow when apply stake times"), - }; - - T::Balance::sa(stake) + >::insert(&key, d_vote_weight); } } impl OnAssetRegisterOrRevoke for Module { fn on_register(token: &Token, is_psedu_intention: bool) -> Result { - if is_psedu_intention == false { + if !is_psedu_intention { return Ok(()); } @@ -453,9 +414,11 @@ impl OnRewardCalculation for Module { .into_iter() .filter(|token| >::aver_asset_price(token).is_some()) .map(|token| { - let stake = Self::convert_to_stake(&token); + let stake = >::trans_pcx_stake(&token); (RewardHolder::PseduIntention(token), stake) }) + .filter(|(_, stake)| stake.is_some()) + .map(|(holder, stake)| (holder, stake.unwrap())) .collect() } }