mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 13:31:10 +00:00
Split Indices module from Balances (#1404)
* Indices module * Remove indices stuff from balances * Rejob node, move Lookup into system. * Fix up some modules. * Fix democracy tests * Fix staking tests * Fix more tests * Final test fixes * Bump runtime versions * Assets uses compact dispatchers * Contracts module uses indexed addressing * Democracy has more compact encoding * Example now demonstrates compact eencoding * Sudo uses indexed address * Upgrade key also uses indexed lookups * Assets more compact types. * Fix test * Rebuild runtime, whitespace * Remove TOODs * Remove TODOs * Add a couple of tests back to balances. * Update lib.rs * Update lib.rs
This commit is contained in:
@@ -45,14 +45,12 @@ extern crate sr_io as runtime_io;
|
||||
#[cfg(test)]
|
||||
extern crate srml_timestamp as timestamp;
|
||||
|
||||
use rstd::prelude::*;
|
||||
use rstd::cmp;
|
||||
use rstd::{prelude::*, cmp};
|
||||
use codec::{HasCompact, Compact};
|
||||
use runtime_support::{Parameter, StorageValue, StorageMap};
|
||||
use runtime_support::dispatch::Result;
|
||||
use runtime_support::{Parameter, StorageValue, StorageMap, dispatch::Result};
|
||||
use session::OnSessionChange;
|
||||
use primitives::{Perbill, traits::{Zero, One, Bounded, As}};
|
||||
use balances::{address::Address, OnDilution};
|
||||
use primitives::{Perbill, traits::{Zero, One, Bounded, As, StaticLookup}};
|
||||
use balances::OnDilution;
|
||||
use system::ensure_signed;
|
||||
|
||||
mod mock;
|
||||
@@ -130,9 +128,9 @@ decl_module! {
|
||||
Self::apply_unstake(&who, intentions_index as usize)
|
||||
}
|
||||
|
||||
fn nominate(origin, target: Address<T::AccountId, T::AccountIndex>) {
|
||||
fn nominate(origin, target: <T::Lookup as StaticLookup>::Source) {
|
||||
let who = ensure_signed(origin)?;
|
||||
let target = <balances::Module<T>>::lookup(target)?;
|
||||
let target = T::Lookup::lookup(target)?;
|
||||
|
||||
ensure!(Self::nominating(&who).is_none(), "Cannot nominate if already nominating.");
|
||||
ensure!(Self::intentions().iter().find(|&t| t == &who).is_none(), "Cannot nominate if already staked.");
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
|
||||
#![cfg(test)]
|
||||
|
||||
use primitives::BuildStorage;
|
||||
use primitives::Perbill;
|
||||
use primitives::{traits::IdentityLookup, BuildStorage, Perbill};
|
||||
use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId};
|
||||
use substrate_primitives::{H256, Blake2Hasher};
|
||||
use runtime_io;
|
||||
@@ -46,14 +45,15 @@ impl system::Trait for Test {
|
||||
type Hashing = ::primitives::traits::BlakeTwo256;
|
||||
type Digest = Digest;
|
||||
type AccountId = u64;
|
||||
type Lookup = IdentityLookup<u64>;
|
||||
type Header = Header;
|
||||
type Event = ();
|
||||
type Log = DigestItem;
|
||||
}
|
||||
impl balances::Trait for Test {
|
||||
type Balance = u64;
|
||||
type AccountIndex = u64;
|
||||
type OnFreeBalanceZero = Staking;
|
||||
type OnNewAccount = ();
|
||||
type EnsureAccountLiquid = Staking;
|
||||
type Event = ();
|
||||
}
|
||||
@@ -109,7 +109,6 @@ pub fn new_test_ext(
|
||||
existential_deposit: ext_deposit,
|
||||
transfer_fee: 0,
|
||||
creation_fee: 0,
|
||||
reclaim_rebate: 0,
|
||||
}.build_storage().unwrap().0);
|
||||
t.extend(GenesisConfig::<Test>{
|
||||
sessions_per_era,
|
||||
|
||||
@@ -38,7 +38,7 @@ fn note_null_offline_should_work() {
|
||||
#[test]
|
||||
fn invulnerability_should_work() {
|
||||
with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || {
|
||||
Staking::set_invulnerables(vec![10]);
|
||||
assert_ok!(Staking::set_invulnerables(vec![10]));
|
||||
Balances::set_free_balance(&10, 70);
|
||||
assert_eq!(Staking::offline_slash_grace(), 0);
|
||||
assert_eq!(Staking::slash_count(&10), 0);
|
||||
@@ -284,7 +284,7 @@ fn staking_should_work() {
|
||||
|
||||
// Block 5: Transfer stake from highest to lowest. No change yet.
|
||||
System::set_block_number(5);
|
||||
assert_ok!(Balances::transfer(Origin::signed(4), 1.into(), 40.into()));
|
||||
assert_ok!(Balances::transfer(Origin::signed(4), 1, 40.into()));
|
||||
Session::check_rotate_session(System::block_number());
|
||||
|
||||
// Block 6: Lowest now validator.
|
||||
@@ -317,7 +317,7 @@ fn nominating_and_rewards_should_work() {
|
||||
assert_ok!(Staking::stake(Origin::signed(1)));
|
||||
assert_ok!(Staking::stake(Origin::signed(2)));
|
||||
assert_ok!(Staking::stake(Origin::signed(3)));
|
||||
assert_ok!(Staking::nominate(Origin::signed(4), 1.into()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(4), 1));
|
||||
Session::check_rotate_session(System::block_number());
|
||||
assert_eq!(Staking::current_era(), 1);
|
||||
assert_eq!(Session::validators(), vec![1, 3]); // 4 + 1, 3
|
||||
@@ -339,7 +339,7 @@ fn nominating_and_rewards_should_work() {
|
||||
System::set_block_number(3);
|
||||
assert_ok!(Staking::stake(Origin::signed(4)));
|
||||
assert_ok!(Staking::unstake(Origin::signed(3), (Staking::intentions().iter().position(|&x| x == 3).unwrap() as u32).into()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(3), 1.into()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(3), 1));
|
||||
Session::check_rotate_session(System::block_number());
|
||||
assert_eq!(Session::validators(), vec![1, 4]);
|
||||
assert_eq!(Balances::total_balance(&1), 16);
|
||||
@@ -361,7 +361,7 @@ fn rewards_with_off_the_table_should_work() {
|
||||
with_externalities(&mut new_test_ext(0, 1, 1, 0, true, 10), || {
|
||||
System::set_block_number(1);
|
||||
assert_ok!(Staking::stake(Origin::signed(1)));
|
||||
assert_ok!(Staking::nominate(Origin::signed(2), 1.into()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(2), 1));
|
||||
assert_ok!(Staking::stake(Origin::signed(3)));
|
||||
Session::check_rotate_session(System::block_number());
|
||||
assert_eq!(Session::validators(), vec![1, 3]); // 1 + 2, 3
|
||||
@@ -397,8 +397,8 @@ fn nominating_slashes_should_work() {
|
||||
System::set_block_number(4);
|
||||
assert_ok!(Staking::stake(Origin::signed(1)));
|
||||
assert_ok!(Staking::stake(Origin::signed(3)));
|
||||
assert_ok!(Staking::nominate(Origin::signed(2), 3.into()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(4), 1.into()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(2), 3));
|
||||
assert_ok!(Staking::nominate(Origin::signed(4), 1));
|
||||
Session::check_rotate_session(System::block_number());
|
||||
|
||||
assert_eq!(Staking::current_era(), 1);
|
||||
@@ -426,10 +426,10 @@ fn double_staking_should_fail() {
|
||||
System::set_block_number(1);
|
||||
assert_ok!(Staking::stake(Origin::signed(1)));
|
||||
assert_noop!(Staking::stake(Origin::signed(1)), "Cannot stake if already staked.");
|
||||
assert_noop!(Staking::nominate(Origin::signed(1), 1.into()), "Cannot nominate if already staked.");
|
||||
assert_ok!(Staking::nominate(Origin::signed(2), 1.into()));
|
||||
assert_noop!(Staking::nominate(Origin::signed(1), 1), "Cannot nominate if already staked.");
|
||||
assert_ok!(Staking::nominate(Origin::signed(2), 1));
|
||||
assert_noop!(Staking::stake(Origin::signed(2)), "Cannot stake if already nominating.");
|
||||
assert_noop!(Staking::nominate(Origin::signed(2), 1.into()), "Cannot nominate if already nominating.");
|
||||
assert_noop!(Staking::nominate(Origin::signed(2), 1), "Cannot nominate if already nominating.");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -506,7 +506,7 @@ fn staking_balance_transfer_when_bonded_should_not_work() {
|
||||
with_externalities(&mut new_test_ext(0, 1, 3, 1, false, 0), || {
|
||||
Balances::set_free_balance(&1, 111);
|
||||
assert_ok!(Staking::stake(Origin::signed(1)));
|
||||
assert_noop!(Balances::transfer(Origin::signed(1), 2.into(), 69.into()), "cannot transfer illiquid funds");
|
||||
assert_noop!(Balances::transfer(Origin::signed(1), 2, 69.into()), "cannot transfer illiquid funds");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user