diff --git a/substrate/wasm-runtime/polkadot/src/runtime/staking.rs b/substrate/wasm-runtime/polkadot/src/runtime/staking.rs index 9ddd78b788..02644fc940 100644 --- a/substrate/wasm-runtime/polkadot/src/runtime/staking.rs +++ b/substrate/wasm-runtime/polkadot/src/runtime/staking.rs @@ -31,12 +31,12 @@ pub type Bondage = u64; /// The length of the bonding duration in eras. pub fn bonding_duration() -> BlockNumber { - storage::get_default(BONDING_DURATION) + storage::get_or_default(BONDING_DURATION) } /// The length of a staking era in sessions. pub fn validator_count() -> usize { - storage::get_default::(VALIDATOR_COUNT) as usize + storage::get_or_default::(VALIDATOR_COUNT) as usize } /// The length of a staking era in blocks. @@ -46,27 +46,27 @@ pub fn era_length() -> BlockNumber { /// The length of a staking era in sessions. pub fn sessions_per_era() -> BlockNumber { - storage::get_default(SESSIONS_PER_ERA) + storage::get_or_default(SESSIONS_PER_ERA) } /// The current era index. pub fn current_era() -> BlockNumber { - storage::get_default(CURRENT_ERA) + storage::get_or_default(CURRENT_ERA) } /// The block number at which the era length last changed. pub fn last_era_length_change() -> BlockNumber { - storage::get_default(LAST_ERA_LENGTH_CHANGE) + storage::get_or_default(LAST_ERA_LENGTH_CHANGE) } /// The balance of a given account. pub fn balance(who: &AccountID) -> Balance { - storage::get_default(&who.to_keyed_vec(BALANCE_OF)) + storage::get_or_default(&who.to_keyed_vec(BALANCE_OF)) } /// The liquidity-state of a given account. pub fn bondage(who: &AccountID) -> Bondage { - storage::get_default(&who.to_keyed_vec(BONDAGE_OF)) + storage::get_or_default(&who.to_keyed_vec(BONDAGE_OF)) } // Each identity's stake may be in one of three bondage states, given by an integer: @@ -81,10 +81,10 @@ pub mod public { /// Transfer some unlocked staking balance to another staker. pub fn transfer(transactor: &AccountID, dest: &AccountID, value: Balance) { let from_key = transactor.to_keyed_vec(BALANCE_OF); - let from_balance = storage::get_default::(&from_key); + let from_balance = storage::get_or_default::(&from_key); assert!(from_balance >= value); let to_key = dest.to_keyed_vec(BALANCE_OF); - let to_balance: Balance = storage::get_default(&to_key); + let to_balance: Balance = storage::get_or_default(&to_key); assert!(bondage(transactor) <= bondage(dest)); assert!(to_balance + value > to_balance); // no overflow storage::put(&from_key, &(from_balance - value)); @@ -176,7 +176,7 @@ fn new_era() { storage::put(CURRENT_ERA, &(current_era() + 1)); // Enact era length change. - let next_spe: u64 = storage::get_default(NEXT_SESSIONS_PER_ERA); + let next_spe: u64 = storage::get_or_default(NEXT_SESSIONS_PER_ERA); if next_spe > 0 && next_spe != sessions_per_era() { storage::put(SESSIONS_PER_ERA, &next_spe); storage::put(LAST_ERA_LENGTH_CHANGE, &system::block_number()); diff --git a/substrate/wasm-runtime/polkadot/src/runtime/system.rs b/substrate/wasm-runtime/polkadot/src/runtime/system.rs index 35a425f53f..2dcd41c503 100644 --- a/substrate/wasm-runtime/polkadot/src/runtime/system.rs +++ b/substrate/wasm-runtime/polkadot/src/runtime/system.rs @@ -31,7 +31,7 @@ pub fn block_number() -> BlockNumber { /// Get the block hash of a given block (uses storage). pub fn block_hash(number: BlockNumber) -> Hash { - storage::get_default(&number.to_keyed_vec(BLOCK_HASH_AT)) + storage::get_or_default(&number.to_keyed_vec(BLOCK_HASH_AT)) } pub mod privileged { @@ -102,7 +102,7 @@ pub mod internal { // check nonce let nonce_key = tx.signed.to_keyed_vec(b"sys:non:"); - let expected_nonce: TxOrder = storage::get_default(&nonce_key); + let expected_nonce: TxOrder = storage::get_or_default(&nonce_key); assert!(tx.nonce == expected_nonce, "All transactions should have the correct nonce"); // increment nonce in storage diff --git a/substrate/wasm-runtime/polkadot/src/runtime/timestamp.rs b/substrate/wasm-runtime/polkadot/src/runtime/timestamp.rs index e6ae82a97d..01df210c5f 100644 --- a/substrate/wasm-runtime/polkadot/src/runtime/timestamp.rs +++ b/substrate/wasm-runtime/polkadot/src/runtime/timestamp.rs @@ -23,7 +23,7 @@ pub type Timestamp = u64; /// Get the current time. pub fn get() -> Timestamp { - storage::get_default(CURRENT_TIMESTAMP) + storage::get_or_default(CURRENT_TIMESTAMP) } pub mod public { diff --git a/substrate/wasm-runtime/polkadot/src/support/storage.rs b/substrate/wasm-runtime/polkadot/src/support/storage.rs index 7dcbcaa5fd..8c9afa6279 100644 --- a/substrate/wasm-runtime/polkadot/src/support/storage.rs +++ b/substrate/wasm-runtime/polkadot/src/support/storage.rs @@ -31,7 +31,7 @@ pub fn get(key: &[u8]) -> Option { /// Return the value of the item in storage under `key`, or the type's default if there is no /// explicit entry. -pub fn get_default(key: &[u8]) -> T { +pub fn get_or_default(key: &[u8]) -> T { get(key).unwrap_or_else(Default::default) } @@ -129,7 +129,7 @@ pub trait StorageVec { } fn item(index: u32) -> Self::Item { - get_default(&index.to_keyed_vec(Self::PREFIX)) + get_or_default(&index.to_keyed_vec(Self::PREFIX)) } fn set_count(count: u32) { @@ -138,7 +138,7 @@ pub trait StorageVec { } fn count() -> u32 { - get_default(&b"len".to_keyed_vec(Self::PREFIX)) + get_or_default(&b"len".to_keyed_vec(Self::PREFIX)) } } diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm index cd50722141..c6ba80a016 100644 Binary files a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm and b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm differ diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.wasm index b893a62a1b..94c946efbf 100644 Binary files a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.wasm and b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.wasm differ