Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'master' into aj-tests-use-construct-runtime
# Conflicts:
#	frame/contracts/src/exec.rs
#	frame/contracts/src/tests.rs
  • Loading branch information
ascjones committed Feb 4, 2021
commit a02ec4c6eb1149262f6066f34a7dc00b56d55788
1 change: 0 additions & 1 deletion frame/contracts/src/exec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -773,7 +773,6 @@ mod tests {
use super::*;
use crate::{
gas::GasMeter, tests::{ExtBuilder, Test, Event as MetaEvent},
exec::ExecReturnValue, CodeHash, ConfigCache,
gas::Gas,
storage::Storage,
tests::{
Expand Down
110 changes: 50 additions & 60 deletions frame/contracts/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -479,26 +479,26 @@ fn instantiate_and_call_and_deposit_event() {
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::CodeStored(code_hash.into())),
event: Event::frame_system(frame_system::Event::NewAccount(addr.clone())),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::frame_system(frame_system::Event::NewAccount(addr.clone())),
event: Event::pallet_balances(
pallet_balances::RawEvent::Endowed(addr.clone(), subsistence * 100)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_balances(
pallet_balances::RawEvent::Endowed(addr.clone(), subsistence * 3)
pallet_balances::RawEvent::Transfer(ALICE, addr.clone(), subsistence * 100)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_balances(
pallet_balances::RawEvent::Transfer(ALICE, addr.clone(), subsistence * 3)
),
event: Event::pallet_contracts(RawEvent::CodeStored(code_hash.into())),
topics: vec![],
},
EventRecord {
Expand Down Expand Up @@ -611,43 +611,6 @@ mod call {
pub fn null() -> Vec<u8> { 3u32.to_le_bytes().to_vec() }
}

/// Test correspondence of set_rent code and its hash.
/// Also test that encoded extrinsic in code correspond to the correct transfer
#[test]
fn test_set_rent_code_and_hash() {
let (wasm, code_hash) = compile_module::<Test>("set_rent").unwrap();

ExtBuilder::default()
.existential_deposit(50)
.build()
.execute_with(|| {
let _ = Balances::deposit_creating(&ALICE, 1_000_000);
assert_ok!(Contracts::put_code(Origin::signed(ALICE), wasm));

// If you ever need to update the wasm source this test will fail
// and will show you the actual hash.
assert_eq!(System::events(), vec![
EventRecord {
phase: Phase::Initialization,
event: Event::frame_system(frame_system::Event::NewAccount(ALICE)),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_balances(pallet_balances::RawEvent::Endowed(
ALICE, 1_000_000
)),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::CodeStored(code_hash.into())),
topics: vec![],
},
]);
});
}

#[test]
fn storage_size() {
let (wasm, code_hash) = compile_module::<Test>("set_rent").unwrap();
Expand Down Expand Up @@ -1238,12 +1201,28 @@ fn restoration(
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_balances(pallet_balances::RawEvent::Endowed(ALICE, 1_000_000)),
event: Event::pallet_balances(
pallet_balances::RawEvent::Endowed(ALICE, 1_000_000)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::frame_system(frame_system::Event::NewAccount(addr_bob.clone())),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_balances(
pallet_balances::RawEvent::Endowed(addr_bob.clone(), 30_000)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::CodeStored(restoration_code_hash.into())),
event: Event::pallet_balances(
pallet_balances::RawEvent::Transfer(ALICE, addr_bob.clone(), 30_000)
),
topics: vec![],
},
EventRecord {
Expand All @@ -1253,7 +1232,7 @@ fn restoration(
},
EventRecord {
phase: Phase::Initialization,
event: MetaEvent::contracts(RawEvent::Instantiated(ALICE, addr_bob.clone())),
event: Event::pallet_contracts(RawEvent::Instantiated(ALICE, addr_bob.clone())),
topics: vec![],
},
];
Expand All @@ -1274,26 +1253,26 @@ fn restoration(
events.extend([
EventRecord {
phase: Phase::Initialization,
event: MetaEvent::system(frame_system::Event::NewAccount(addr_dummy.clone())),
event: Event::frame_system(frame_system::Event::NewAccount(addr_dummy.clone())),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: MetaEvent::balances(
event: Event::pallet_balances(
pallet_balances::RawEvent::Endowed(addr_dummy.clone(), 20_000)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: MetaEvent::balances(
event: Event::pallet_balances(
pallet_balances::RawEvent::Transfer(ALICE, addr_dummy.clone(), 20_000)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: MetaEvent::contracts(RawEvent::Instantiated(ALICE, addr_dummy.clone())),
event: Event::pallet_contracts(RawEvent::Instantiated(ALICE, addr_dummy.clone())),
topics: vec![],
},
].iter().cloned());
Expand Down Expand Up @@ -1330,15 +1309,11 @@ fn restoration(
assert!(ContractInfoOf::<Test>::get(&addr_bob).unwrap().get_alive().is_some());
assert_ok!(Contracts::claim_surcharge(Origin::none(), addr_bob.clone(), Some(ALICE)));
assert!(ContractInfoOf::<Test>::get(&addr_bob).unwrap().get_tombstone().is_some());
assert_eq!(System::events(), vec![
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(
RawEvent::Evicted(addr_bob.clone())
),
topics: vec![],
},
]);
if test_code_evicted {
assert_refcount!(set_rent_code_hash, 0);
} else {
assert_refcount!(set_rent_code_hash, 1);
}

// Create another account with the address `DJANGO` with `CODE_RESTORATION`.
//
Expand Down Expand Up @@ -1453,6 +1428,11 @@ fn restoration(
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::CodeStored(restoration_code_hash)),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::Instantiated(CHARLIE, addr_django.clone())),
Expand Down Expand Up @@ -1485,6 +1465,11 @@ fn restoration(
assert!(ContractInfoOf::<Test>::get(&addr_django).is_none());
assert_matches!(Storage::<Test>::read(&django_trie_id, &delta_key), None);
assert_eq!(System::events(), vec![
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::CodeRemoved(restoration_code_hash)),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::frame_system(system::Event::KilledAccount(addr_django.clone())),
Expand Down Expand Up @@ -1726,10 +1711,15 @@ fn self_destruct_works() {
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_balances(
pallet_balances::RawEvent::Transfer(addr.clone(), DJANGO, 100_000)
pallet_balances::RawEvent::Transfer(addr.clone(), DJANGO, 93_654)
),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(RawEvent::CodeRemoved(code_hash)),
topics: vec![],
},
EventRecord {
phase: Phase::Initialization,
event: Event::pallet_contracts(
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.