Allow ExistentialDeposit = 0 (#6185)

* Allow ExistentialDeposit = 0

* there are better ways to check is an account exists

* fix StorageMapShim

* test account events and fix some bugs
This commit is contained in:
Xiliang Chen
2020-06-03 03:22:21 +12:00
committed by GitHub
parent 7b9add7a71
commit 6547d7a09a
6 changed files with 186 additions and 42 deletions
+7 -4
View File
@@ -105,20 +105,23 @@ impl<
fn get(k: &K) -> T { S::get(k) }
fn is_explicit(k: &K) -> bool { S::contains_key(k) }
fn insert(k: &K, t: T) {
let existed = S::contains_key(&k);
S::insert(k, t);
if !S::contains_key(&k) {
if !existed {
Created::happened(k);
}
}
fn remove(k: &K) {
if S::contains_key(&k) {
let existed = S::contains_key(&k);
S::remove(k);
if existed {
Removed::happened(&k);
}
S::remove(k);
}
fn mutate<R>(k: &K, f: impl FnOnce(&mut T) -> R) -> R {
let existed = S::contains_key(&k);
let r = S::mutate(k, f);
if !S::contains_key(&k) {
if !existed {
Created::happened(k);
}
r