Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Freeze Assets and Asset Metadata #7346

Merged
merged 77 commits into from
Jan 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
944c129
Features needed for reserve-backed stablecoins
gavofyork Sep 20, 2020
911795a
Builds & tests.
gavofyork Sep 20, 2020
ddf83eb
Double map for an efficient destroy.
gavofyork Sep 20, 2020
9c79b6d
Update frame/assets/src/lib.rs
gavofyork Sep 21, 2020
b8ef2fb
ED/zombie-count/refs
gavofyork Sep 21, 2020
1888155
Merge remote-tracking branch 'origin/gav-assets-extra' into gav-asset…
gavofyork Sep 21, 2020
8bae97f
Merge remote-tracking branch 'origin/master' into gav-assets-extra
gavofyork Sep 25, 2020
4df1054
Update frame/assets/src/lib.rs
gavofyork Sep 25, 2020
aef1d0c
Update frame/assets/Cargo.toml
gavofyork Sep 25, 2020
e302a0e
Merge remote-tracking branch 'origin/master' into gav-assets-extra
gavofyork Oct 1, 2020
b173c37
Docs
gavofyork Oct 2, 2020
6263beb
Merge remote-tracking branch 'origin/master' into gav-assets-extra
gavofyork Oct 2, 2020
fd75591
Some tests
gavofyork Oct 5, 2020
3d03358
More tests
gavofyork Oct 5, 2020
8aa7cc5
Allow for max_zombies to be adjusted
gavofyork Oct 5, 2020
347f2db
Test for set_max_zombies
gavofyork Oct 5, 2020
2d5f752
Tests and a couple of fixes
gavofyork Oct 5, 2020
760ba44
First few benchmarks
gavofyork Oct 8, 2020
b630906
Benchmarks.
gavofyork Oct 8, 2020
39a54ea
Merge remote-tracking branch 'origin/master' into gav-assets-extra
Oct 15, 2020
4d173bc
Merge branch 'gav-assets-extra' of github.com:paritytech/substrate in…
gavofyork Oct 15, 2020
4664812
Fix error message in test
gavofyork Oct 15, 2020
8954764
Fixes
gavofyork Oct 15, 2020
87f311e
Fixes
gavofyork Oct 15, 2020
d12fe90
Fixes
gavofyork Oct 15, 2020
e29b3fa
cargo run --release --features runtime-benchmarks --manifest-path bin…
Oct 15, 2020
85443d2
Update frame/assets/src/lib.rs
gavofyork Oct 16, 2020
b53c1ba
Fixes
gavofyork Oct 16, 2020
6de272f
Merge branch 'gav-assets-extra' of github.com:paritytech/substrate in…
gavofyork Oct 16, 2020
27353a7
Fixes
gavofyork Oct 16, 2020
bbdce2e
Merge remote-tracking branch 'origin/master' into gav-assets-extra
Oct 16, 2020
0b5fa74
Fixes
gavofyork Oct 16, 2020
89cbf7e
Merge branch 'gav-assets-extra' of gthub.com:paritytech/substrate int…
gavofyork Oct 16, 2020
1eff995
cargo run --release --features runtime-benchmarks --manifest-path bin…
Oct 16, 2020
1fe69b1
Fixes
gavofyork Oct 16, 2020
76f2e40
Merge branch 'gav-assets-extra' of github.com:paritytech/substrate in…
gavofyork Oct 16, 2020
a452393
Update default weight
shawntabrizi Oct 17, 2020
402835d
Merge branch 'master' into gav-assets-extra
shawntabrizi Oct 17, 2020
373f4d7
Add proper verification to benchmarks
shawntabrizi Oct 18, 2020
d8b840a
minor improvements to tests
shawntabrizi Oct 18, 2020
44e2e65
Add `freeze_asset` and `thaw_asset`
shawntabrizi Oct 18, 2020
ef29ba3
Add metadata
shawntabrizi Oct 18, 2020
f45dbcb
fix build
shawntabrizi Oct 18, 2020
7e5a910
Update benchmarks
shawntabrizi Oct 18, 2020
309c257
fix line width
shawntabrizi Oct 18, 2020
7762828
cargo run --release --features runtime-benchmarks --manifest-path bin…
Oct 18, 2020
39dada7
update default weights
shawntabrizi Oct 18, 2020
783cd63
destroy cleans up metadata
shawntabrizi Oct 18, 2020
a3174d6
more comprehensive lifecycle test
shawntabrizi Oct 18, 2020
c577327
update docs
shawntabrizi Oct 20, 2020
13a0cc0
Merge branch 'gav-assets-extra' of github.com:paritytech/substrate in…
gavofyork Nov 9, 2020
e65a75c
Merge remote-tracking branch 'origin/master' into gav-assets-extra
gavofyork Nov 9, 2020
dc0839d
Update frame/assets/src/benchmarking.rs
gavofyork Nov 9, 2020
d0f1829
Fix
gavofyork Nov 9, 2020
45f3c04
Merge branch 'gav-assets-extra' of github.com:paritytech/substrate in…
gavofyork Nov 9, 2020
0286497
Merge remote-tracking branch 'origin/master' into gav-assets-extra
gavofyork Dec 2, 2020
927bcc6
New weights system
gavofyork Dec 2, 2020
a1c43f9
fix compile
shawntabrizi Dec 3, 2020
82bbd66
cargo run --release --features=runtime-benchmarks --manifest-path=bin…
Dec 3, 2020
670c830
Merge branch 'gav-assets-extra' into shawntabrizi-assets-extra-extra
shawntabrizi Dec 3, 2020
4f799a3
fix compile
shawntabrizi Dec 3, 2020
bae8bdf
fix up
shawntabrizi Dec 3, 2020
3180550
cargo run --release --features=runtime-benchmarks --manifest-path=bin…
Dec 3, 2020
015fbdb
Merge branch 'gav-assets-extra' into shawntabrizi-assets-extra-extra
shawntabrizi Dec 3, 2020
ab3a265
Merge branch 'master' into shawntabrizi-assets-extra-extra
shawntabrizi Dec 17, 2020
ec86468
fixes to pallet compile
shawntabrizi Dec 17, 2020
652d30a
fix node build
shawntabrizi Dec 17, 2020
ae555f4
remote diff artifacts
shawntabrizi Dec 17, 2020
89492b7
less diff
shawntabrizi Dec 17, 2020
c4af32d
Merge remote-tracking branch 'origin/master' into shawntabrizi-assets…
Dec 17, 2020
1e8babc
cargo run --release --features=runtime-benchmarks --manifest-path=bin…
Dec 17, 2020
c2b25d3
Update frame/assets/src/lib.rs
gavofyork Jan 17, 2021
642d306
Update frame/assets/src/lib.rs
gavofyork Jan 17, 2021
5bfae09
Merge branch 'master' into shawntabrizi-assets-extra-extra
shawntabrizi Jan 18, 2021
17c3e48
usize to u32
shawntabrizi Jan 18, 2021
1727b59
missed some usize
shawntabrizi Jan 18, 2021
17cda62
cargo run --release --features=runtime-benchmarks --manifest-path=bin…
Jan 18, 2021
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
6 changes: 6 additions & 0 deletions bin/node/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -979,6 +979,9 @@ impl pallet_lottery::Config for Runtime {
parameter_types! {
pub const AssetDepositBase: Balance = 100 * DOLLARS;
pub const AssetDepositPerZombie: Balance = 1 * DOLLARS;
pub const StringLimit: u32 = 50;
pub const MetadataDepositBase: Balance = 10 * DOLLARS;
pub const MetadataDepositPerByte: Balance = 1 * DOLLARS;
}

impl pallet_assets::Config for Runtime {
Expand All @@ -989,6 +992,9 @@ impl pallet_assets::Config for Runtime {
type ForceOrigin = EnsureRoot<AccountId>;
type AssetDepositBase = AssetDepositBase;
type AssetDepositPerZombie = AssetDepositPerZombie;
type StringLimit = StringLimit;
type MetadataDepositBase = MetadataDepositBase;
type MetadataDepositPerByte = MetadataDepositPerByte;
type WeightInfo = pallet_assets::weights::SubstrateWeight<Runtime>;
}

Expand Down
61 changes: 57 additions & 4 deletions frame/assets/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
//! Assets pallet benchmarking.

use super::*;
use sp_std::prelude::*;
use sp_runtime::traits::Bounded;
use frame_system::RawOrigin as SystemOrigin;
use frame_benchmarking::{benchmarks, account, whitelisted_caller};
Expand Down Expand Up @@ -154,16 +153,34 @@ benchmarks! {

thaw {
let (caller, caller_lookup) = create_default_minted_asset::<T>(10, 100u32.into());
assert!(Assets::<T>::freeze(
Assets::<T>::freeze(
SystemOrigin::Signed(caller.clone()).into(),
Default::default(),
caller_lookup.clone()
).is_ok());
caller_lookup.clone(),
)?;
}: _(SystemOrigin::Signed(caller.clone()), Default::default(), caller_lookup)
verify {
assert_last_event::<T>(RawEvent::Thawed(Default::default(), caller).into());
}

freeze_asset {
let (caller, caller_lookup) = create_default_minted_asset::<T>(10, 100u32.into());
}: _(SystemOrigin::Signed(caller.clone()), Default::default())
verify {
assert_last_event::<T>(RawEvent::AssetFrozen(Default::default()).into());
}

thaw_asset {
let (caller, caller_lookup) = create_default_minted_asset::<T>(10, 100u32.into());
Assets::<T>::freeze_asset(
SystemOrigin::Signed(caller.clone()).into(),
Default::default(),
)?;
}: _(SystemOrigin::Signed(caller.clone()), Default::default())
verify {
assert_last_event::<T>(RawEvent::AssetThawed(Default::default()).into());
}

transfer_ownership {
let (caller, _) = create_default_asset::<T>(10);
let target: T::AccountId = account("target", 0, SEED);
Expand Down Expand Up @@ -196,6 +213,21 @@ benchmarks! {
verify {
assert_last_event::<T>(RawEvent::MaxZombiesChanged(Default::default(), max_zombies).into());
}

set_metadata {
let n in 0 .. T::StringLimit::get();
let s in 0 .. T::StringLimit::get();

let name = vec![0u8; n as usize];
let symbol = vec![0u8; s as usize];
let decimals = 12;

let (caller, _) = create_default_asset::<T>(10);
T::Currency::make_free_balance_be(&caller, BalanceOf::<T>::max_value());
}: _(SystemOrigin::Signed(caller), Default::default(), name.clone(), symbol.clone(), decimals)
verify {
assert_last_event::<T>(RawEvent::MetadataSet(Default::default(), name, symbol, decimals).into());
}
}

#[cfg(test)]
Expand Down Expand Up @@ -273,6 +305,20 @@ mod tests {
});
}

#[test]
fn freeze_asset() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_freeze_asset::<Test>().is_ok());
});
}

#[test]
fn thaw_asset() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_thaw_asset::<Test>().is_ok());
});
}

#[test]
fn transfer_ownership() {
new_test_ext().execute_with(|| {
Expand All @@ -293,4 +339,11 @@ mod tests {
assert!(test_benchmark_set_max_zombies::<Test>().is_ok());
});
}

#[test]
fn set_metadata() {
new_test_ext().execute_with(|| {
assert!(test_benchmark_set_metadata::<Test>().is_ok());
});
}
}
Loading