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

pallet-bounties | Sub-bounties Extn #7965

Closed
wants to merge 137 commits into from
Closed
Show file tree
Hide file tree
Changes from 52 commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
ee5f624
wk2103 | tst integration | p2
shamb0 Jan 21, 2021
c3bde71
Merge branch 'subbounty-local-dev' into subbounty-local-dev2
shamb0 Jan 21, 2021
f6a78bd
wk2104 | api template
shamb0 Jan 24, 2021
b5f8095
Merge branch 'subbounty-local-dev2' into subbounty-proto-ver1
shamb0 Jan 24, 2021
aad854a
wk2104 | api template | p2
shamb0 Jan 24, 2021
5895786
wk2104 | api template | p3
shamb0 Jan 24, 2021
9ee5187
wk2104 | api template | p4
shamb0 Jan 24, 2021
69c8784
Update frame/bounties/src/lib.rs
shamb0 Jan 25, 2021
90c66a3
wk2104 | bringup | p4
shamb0 Jan 25, 2021
37a15d3
wk2104 | bringup | p5
shamb0 Jan 25, 2021
62cc7e8
wk2104 | bringup | p6
shamb0 Jan 25, 2021
2d9b286
wk2104 | bringup | p7
shamb0 Jan 25, 2021
8a2425c
wk2104 | bringup | p8
shamb0 Jan 25, 2021
112e8ab
wk2104 | bringup | p9
shamb0 Jan 25, 2021
87083fd
wk2104 | bringup | p10
shamb0 Jan 26, 2021
c6606d6
wk2104 | bringup | p11
shamb0 Jan 26, 2021
fc7dab4
wk2104 | bringup | p12
shamb0 Jan 26, 2021
07d84dd
wk2104 | bringup | p13
shamb0 Jan 27, 2021
317e3cf
wk2104 | bringup | p14
shamb0 Jan 27, 2021
31125c0
wk2104 | bringup | p15
shamb0 Jan 27, 2021
c559b09
wk2104 | bringup | p16
shamb0 Jan 28, 2021
c2bf7da
wk2104 | bringup | p17
shamb0 Jan 30, 2021
3336b28
wk2104 | bringup | p18
shamb0 Feb 1, 2021
7e39110
Update frame/bounties/src/lib.rs
shamb0 Feb 1, 2021
6aac9be
wk2104 | bringup | p19
shamb0 Feb 1, 2021
f4d1a62
wk2104 | bringup | p20
shamb0 Feb 4, 2021
097f03e
wk2104 | bringup | p21
shamb0 Feb 4, 2021
d980b0c
Update frame/bounties/src/lib.rs
shamb0 Feb 5, 2021
f1c5199
Update frame/bounties/src/lib.rs
shamb0 Feb 5, 2021
bfbde25
Update frame/bounties/src/lib.rs
shamb0 Feb 5, 2021
c9c352c
Update frame/bounties/src/lib.rs
shamb0 Feb 5, 2021
ea32327
wk2104 | bringup | p22
shamb0 Feb 5, 2021
d5bac61
wk2104 | bringup | p23
shamb0 Feb 5, 2021
1d1fe6a
wk2104 | bringup | p24
shamb0 Feb 6, 2021
c082709
wk2104 | bringup | p24
shamb0 Feb 6, 2021
9456bd2
wk2104 | bringup | p25
shamb0 Feb 7, 2021
44cb7f7
wk2104 | bringup | p26
shamb0 Feb 7, 2021
766c125
wk2104 | bringup | p27
shamb0 Feb 8, 2021
d5be1ca
wk2104 | bringup | p28
shamb0 Feb 8, 2021
4bda314
wk2104 | bringup | p29
shamb0 Feb 8, 2021
b754716
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Feb 8, 2021
6f7b8ab
wk2104 | bringup | p30
shamb0 Feb 9, 2021
3b65dc9
wk2104 | bringup | p31
shamb0 Feb 9, 2021
87aa18a
wk2104 | bringup | p32
shamb0 Feb 10, 2021
4a8a30a
Merge remote-tracking branch 'origin/master' into shawntabrizi-benchm…
Feb 11, 2021
9c52fb1
Merge branch 'master' into pr/7965
shawntabrizi Feb 11, 2021
c8df159
cargo run --release --features=runtime-benchmarks --manifest-path=bin…
Feb 11, 2021
2e8f897
cargo run --release --features=runtime-benchmarks --manifest-path=bin…
Feb 11, 2021
0facf76
Merge branch 'shawntabrizi-benchmark-sub' of https://github.com/parit…
shamb0 Feb 11, 2021
92b3577
Merge branch 'paritytech-shawntabrizi-benchmark-sub' into subbounty-p…
shamb0 Feb 11, 2021
16c54dd
wk2106-subbounty-propose_subcurator-subcurator-fee-management
shamb0 Feb 11, 2021
5be3b48
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Feb 12, 2021
cacb4fe
Update frame/bounties/src/lib.rs
shamb0 Feb 15, 2021
5789941
Update frame/bounties/src/lib.rs
shamb0 Feb 15, 2021
51e08cb
Update frame/bounties/src/lib.rs
shamb0 Feb 15, 2021
f1f1427
Update frame/bounties/src/lib.rs
shamb0 Feb 15, 2021
b4ede87
Update frame/bounties/src/lib.rs
shamb0 Feb 15, 2021
a94ae38
Update frame/bounties/src/lib.rs
shamb0 Feb 15, 2021
3a922de
Update sc-finality-grandp-warp-sync to 0.9.0 and remove 'publish = fa…
expenses Feb 12, 2021
d178533
subbounty extn review comments resolved updates
shamb0 Feb 15, 2021
0af0a09
subbounty extn review comments resolved updates | p2
shamb0 Feb 15, 2021
44a7ae1
wk2108 | merge to upstream master
shamb0 Feb 24, 2021
c2e244b
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Feb 25, 2021
14ab206
wk2108 | minor code restructuring
shamb0 Feb 25, 2021
590fa0d
wk2109 | upstream merge updates
shamb0 Mar 1, 2021
c001909
Merge branch 'subbounty-proto-ver1' of https://github.com/shamb0/subs…
shamb0 Mar 1, 2021
13ae868
Update frame/bounties/README.md
shamb0 Mar 1, 2021
6b65f64
Update frame/bounties/src/lib.rs
shamb0 Mar 1, 2021
f35c98d
Update frame/bounties/src/lib.rs
shamb0 Mar 1, 2021
b8a4814
Update frame/bounties/src/lib.rs
shamb0 Mar 1, 2021
c8c3d41
Update frame/bounties/src/lib.rs
shamb0 Mar 1, 2021
1e7fdb7
Update frame/bounties/src/lib.rs
shamb0 Mar 1, 2021
dafcee9
Update frame/bounties/src/lib.rs
shamb0 Mar 1, 2021
18454f2
wk2109 | function header comments & typo correction
shamb0 Mar 2, 2021
8398bc1
wk2109 | function header comments & typo correction
shamb0 Mar 2, 2021
6cdd2d4
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Mar 2, 2021
1f5839a
Update frame/bounties/src/lib.rs
shamb0 Mar 2, 2021
dde7d67
wk2110 | Force execution of unassign_subcurator & close_subbounty fro…
shamb0 Mar 4, 2021
7e3c0f1
Merge branch 'subbounty-proto-ver1' of https://github.com/shamb0/subs…
shamb0 Mar 4, 2021
a4d6a11
wk2110 | bounties DB runtime migration
shamb0 Mar 7, 2021
7619a0a
wk2110 | upstream merge updates | ensure_bounty_exist() review fix
shamb0 Mar 8, 2021
6fdddc5
wk2110 | pallet-bounties runtime migration updates
shamb0 Mar 9, 2021
4bdf73f
wk2110 | pallet-bounties runtime migration updates
shamb0 Mar 9, 2021
65f1633
wk2110 | pallet-bounties runtime migration updates
shamb0 Mar 11, 2021
7d183df
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
d6a90e9
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
cd3fef2
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
19fbd1e
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
d4af2c4
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
fe533bc
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
318bd23
Update frame/bounties/src/lib.rs
shamb0 Mar 11, 2021
ddc4860
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Mar 11, 2021
4e78ae0
wk2110 | review comments fix for ensure_bounty_exist()
shamb0 Mar 11, 2021
d7ca18b
wk2110 | review comments fix for ensure_bounty_exist()
shamb0 Mar 12, 2021
785af22
wk2110 | review comments fix for ensure_bounty_exist()
shamb0 Mar 12, 2021
22b6433
wk2110 | unassign_subcurator() modified unwrapping process.
shamb0 Mar 13, 2021
eb0fd0d
wk2110 | pallet-bounties benchmarking.rs line width correction
shamb0 Mar 13, 2021
40a9c4d
WK2110 | pallet-bounties migrations_4_0_0.rs line width correction
shamb0 Mar 13, 2021
ff2ad33
Update frame/bounties/src/lib.rs
shamb0 Mar 15, 2021
0670f8d
Update frame/bounties/src/lib.rs
shamb0 Mar 15, 2021
d948e30
WK2111 | pallet-bounties runtime migration updates and corrections to…
shamb0 Mar 15, 2021
edc2075
WK2111 | pallet-bounties unit test update
shamb0 Mar 15, 2021
c76294e
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Mar 15, 2021
3752d1b
WK2111 | pallet-bounties runtime-benchmarks weights.rs update
shamb0 Mar 15, 2021
abfe49a
upstream merge updates
shamb0 Mar 25, 2021
ceedffc
merge to upstream master
shamb0 Apr 3, 2021
42b9749
merge to upstream master
shamb0 Apr 3, 2021
e46bbe4
merge to upstream master
shamb0 Apr 9, 2021
4a15b43
Fixing intake audit findings
shamb0 Apr 9, 2021
dcf49fb
Fixing intake audit findings
shamb0 Apr 9, 2021
c2fa40e
Fixing intake audit findings, Unit test updates
shamb0 Apr 9, 2021
f5c5700
bounties benchmark updates
shamb0 Apr 13, 2021
b828300
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
shamb0 Apr 13, 2021
4061326
Update frame/bounties/src/subbounty_migration.rs
shamb0 Apr 23, 2021
998dc56
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
rajesh-nodle Apr 23, 2021
d4222aa
Update frame/bounties/src/lib.rs
shamb0 May 4, 2021
1972cad
Update frame/bounties/src/lib.rs
shamb0 May 4, 2021
f56b779
Update frame/bounties/src/lib.rs
shamb0 May 4, 2021
5587ca8
Update frame/bounties/src/lib.rs
shamb0 May 4, 2021
4f5a6a1
Update frame/bounties/src/lib.rs
shamb0 May 4, 2021
042ae7a
subbounty review comment fix
rajesh-nodle May 5, 2021
c9191d2
Merge branch 'subbounty-proto-ver1' of github.com:shamb0/substrate in…
rajesh-nodle May 5, 2021
c1958e4
Update frame/bounties/src/subbounty_migration.rs
shamb0 May 5, 2021
9946288
Update frame/bounties/src/lib.rs
shamb0 May 5, 2021
8f13001
Update frame/bounties/src/lib.rs
shamb0 May 5, 2021
866f5d3
Update frame/bounties/src/lib.rs
shamb0 May 5, 2021
1e07c7f
Update frame/bounties/src/lib.rs
shamb0 May 5, 2021
313260c
Update frame/bounties/src/lib.rs
shamb0 May 5, 2021
4a660c7
Update frame/bounties/src/subbounty_migration.rs
shamb0 May 5, 2021
b41ca27
subbounty review comment fix
rajesh-nodle May 5, 2021
7e655d3
Merge branch 'subbounty-proto-ver1' of github.com:shamb0/substrate in…
rajesh-nodle May 5, 2021
d165355
subbounty review comment fix
rajesh-nodle May 5, 2021
886d248
upgrade to upstream master
rajesh-nodle May 5, 2021
7f44797
Merge remote-tracking branch 'upstream/master' into subbounty-proto-ver1
rajesh-nodle May 25, 2021
42a6949
wk2133 update to upstream master
rajesh-nodle Aug 17, 2021
c137831
wk2133 update to upstream master
rajesh-nodle Aug 17, 2021
bbff489
wk2133 run rustfmt
rajesh-nodle Aug 17, 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
2 changes: 2 additions & 0 deletions bin/node/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -664,6 +664,7 @@ parameter_types! {
pub const MaximumReasonLength: u32 = 16384;
pub const BountyCuratorDeposit: Permill = Permill::from_percent(50);
pub const BountyValueMinimum: Balance = 5 * DOLLARS;
pub const MaxActiveSubBountyCount: u32 = 10;
}

impl pallet_treasury::Config for Runtime {
Expand Down Expand Up @@ -699,6 +700,7 @@ impl pallet_bounties::Config for Runtime {
type BountyValueMinimum = BountyValueMinimum;
type DataDepositPerByte = DataDepositPerByte;
type MaximumReasonLength = MaximumReasonLength;
type MaxActiveSubBountyCount = MaxActiveSubBountyCount;
type WeightInfo = pallet_bounties::weights::SubstrateWeight<Runtime>;
}

Expand Down
17 changes: 15 additions & 2 deletions frame/bounties/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@ payout is pending, resulting in the slash of the curator's deposit.

- **Bounty spending proposal:** A proposal to reward a predefined body of work upon completion by
the Treasury.
- **SubBounty:** A large chunk of bounty proposal can be subdivided into small chunks as
independent subbounties, for parallel execution, minimise the workload on council governance
& tracking spended funds.
- **Proposer:** An account proposing a bounty spending.
- **Curator:** An account managing the bounty and assigning a payout address receiving the reward
for the completion of work.
- **Curator or Master Curator or Sub Curator:** An account managing the bounty or subbounty
and assigning a payout address receiving the reward for the completion of work.
- **Deposit:** The amount held on deposit for placing a bounty proposal plus the amount held on
deposit per byte within the bounty description.
- **Curator deposit:** The payment from a candidate willing to curate an approved bounty. The
Expand All @@ -50,3 +53,13 @@ Bounty protocol:
- `claim_bounty` - Claim a specific bounty amount from the Payout Address.
- `unassign_curator` - Unassign an accepted curator from a specific earmark.
- `close_bounty` - Cancel the earmark for a specific treasury amount and close the bounty.
- `add_subbounty` - Master curator may break or deligate the execution of bounty,
gui1117 marked this conversation as resolved.
Show resolved Hide resolved
by adding new subbounty, with amount which can be deducted from parent bounty.
- `propose_subcurator` - Master curator may assign an account to a subbouty
as candidate subcurator.
- `accept_subcurator` - Accept a subbounty assignment from the Master curator,
setting a subcurator deposit.
- `unassign_subcurator` - Unassign an accepted subcurator from a specific earmark.
- `award_subbounty` - Close and specify the subbouty payout benefiiary address.
shamb0 marked this conversation as resolved.
Show resolved Hide resolved
- `claim_subbounty` - Claim a payout amount & subcurator fee for specific subbounty.
- `close_subbounty` - Cancel the earmark for a specific treasury amount and close the bounty.
227 changes: 227 additions & 0 deletions frame/bounties/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,118 @@ fn assert_last_event<T: Config>(generic_event: <T as Config>::Event) {
assert_eq!(event, &system_event);
}

#[derive(Clone)]
struct BenchmarkSubBountyConfig<T: Config> {
/// Bounty ID.
bounty_id: BountyIndex,
/// SubBounty ID.
subbounty_id: BountyIndex,
/// The account proposing it.
caller: T::AccountId,
/// The master curator account.
curator: T::AccountId,
/// The subcurator account.
subcurator: T::AccountId,
/// The (total) amount that should be paid if the bounty is rewarded.
value: BalanceOf<T>,
/// The curator fee. Included in value.
fee: BalanceOf<T>,
/// The (total) amount that should be paid if the subbounty is rewarded.
subbounty_value: BalanceOf<T>,
/// The subcurator fee. Included in value.
subbounty_fee: BalanceOf<T>,
/// Bounty description.
reason: Vec<u8>,
}

fn setup_subbounty<T: Config>(u: u32, d: u32) -> BenchmarkSubBountyConfig::<T> {
let (caller, curator, fee, value, reason) = setup_bounty::<T>(u, d);
let subcurator = account("subcurator", u, SEED);
let _ = T::Currency::make_free_balance_be(&subcurator, fee / 2u32.into());
let subbounty_value = (value - fee) / 4u32.into();
let subbounty_fee = subbounty_value / 2u32.into();

BenchmarkSubBountyConfig::<T> {
bounty_id: 0,
subbounty_id: 0,
caller: caller,
curator: curator,
subcurator: subcurator,
value: value,
fee: fee,
subbounty_value: subbounty_value,
subbounty_fee: subbounty_fee,
reason: reason,
}
}

fn create_subbounty_bounty<T: Config>(u: u32, d: u32) -> Result<
BenchmarkSubBountyConfig::<T>,
&'static str
> {
let mut bm_setup = setup_subbounty::<T>(u, d);
let curator_lookup = T::Lookup::unlookup(bm_setup.curator.clone());
Bounties::<T>::propose_bounty(
RawOrigin::Signed(bm_setup.caller.clone()).into(),
bm_setup.value,
bm_setup.reason.clone()
)?;
bm_setup.bounty_id = BountyCount::get() - 1;
Bounties::<T>::approve_bounty(
RawOrigin::Root.into(),
bm_setup.bounty_id,
)?;
Treasury::<T>::on_initialize(T::BlockNumber::zero());
Bounties::<T>::propose_curator(
RawOrigin::Root.into(),
bm_setup.bounty_id,
curator_lookup.clone(),
bm_setup.fee,
)?;
Bounties::<T>::accept_curator(
RawOrigin::Signed(bm_setup.curator.clone()).into(),
bm_setup.bounty_id,
)?;

Ok(bm_setup)
}

fn create_subbounty<T: Config>(u: u32, d: u32) -> Result<
BenchmarkSubBountyConfig::<T>,
&'static str
> {
let mut bm_setup = create_subbounty_bounty::<T>(u, d)?;

let subcurator_lookup = T::Lookup::unlookup(
bm_setup.subcurator.clone()
);

Bounties::<T>::add_subbounty(
RawOrigin::Signed(bm_setup.curator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_value,
bm_setup.reason.clone(),
)?;

bm_setup.subbounty_id = BountyCount::get() - 1;

Bounties::<T>::propose_subcurator(
RawOrigin::Signed(bm_setup.curator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_id,
subcurator_lookup.clone(),
bm_setup.subbounty_fee,
)?;

Bounties::<T>::accept_subcurator(
RawOrigin::Signed(bm_setup.subcurator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_id,
)?;

Ok(bm_setup)
}

const MAX_BYTES: u32 = 16384;

benchmarks! {
Expand Down Expand Up @@ -218,6 +330,114 @@ benchmarks! {
ensure!(missed_any == false, "Missed some");
assert_last_event::<T>(RawEvent::BountyBecameActive(b - 1).into())
}

add_subbounty {
let d in 0 .. MAX_BYTES;
setup_pot_account::<T>();

let bm_setup = create_subbounty_bounty::<T>(0, d)?;

}: _(RawOrigin::Signed(bm_setup.curator), bm_setup.bounty_id, bm_setup.subbounty_value, bm_setup.reason)

propose_subcurator {
setup_pot_account::<T>();

let mut bm_setup = create_subbounty_bounty::<T>(0, MAX_BYTES)?;

let subcurator_lookup = T::Lookup::unlookup(bm_setup.subcurator.clone());
Bounties::<T>::add_subbounty(
RawOrigin::Signed(bm_setup.curator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_value,
bm_setup.reason.clone(),
)?;
bm_setup.subbounty_id = BountyCount::get() - 1;
}: _(RawOrigin::Signed(bm_setup.curator), bm_setup.bounty_id, bm_setup.subbounty_id, subcurator_lookup, bm_setup.subbounty_fee)

unassign_subcurator {
setup_pot_account::<T>();

let bm_setup = create_subbounty::<T>(0, MAX_BYTES)?;
Bounties::<T>::on_initialize(T::BlockNumber::zero());
frame_system::Module::<T>::set_block_number(T::BountyUpdatePeriod::get() + 1u32.into());
let caller = whitelisted_caller();
}: _(RawOrigin::Signed(caller), bm_setup.bounty_id, bm_setup.subbounty_id)

accept_subcurator {
setup_pot_account::<T>();

let mut bm_setup = create_subbounty_bounty::<T>(0, MAX_BYTES)?;

let subcurator_lookup = T::Lookup::unlookup(bm_setup.subcurator.clone());

Bounties::<T>::add_subbounty(
RawOrigin::Signed(bm_setup.curator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_value,
bm_setup.reason.clone(),
)?;

bm_setup.subbounty_id = BountyCount::get() - 1;

Bounties::<T>::propose_subcurator(
RawOrigin::Signed(bm_setup.curator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_id,
subcurator_lookup,
bm_setup.subbounty_fee,
)?;
}: _(RawOrigin::Signed(bm_setup.subcurator), bm_setup.bounty_id, bm_setup.subbounty_id)

award_subbounty {
setup_pot_account::<T>();
let bm_setup = create_subbounty::<T>(0, MAX_BYTES)?;
let beneficiary = T::Lookup::unlookup(account("beneficiary", 0, SEED));
}: _(RawOrigin::Signed(bm_setup.subcurator), bm_setup.bounty_id, bm_setup.subbounty_id, beneficiary)

claim_subbounty {
setup_pot_account::<T>();

let bm_setup = create_subbounty::<T>(0, MAX_BYTES)?;

let beneficiary_account: T::AccountId = account("beneficiary", 0, SEED);
let beneficiary = T::Lookup::unlookup(beneficiary_account.clone());

Bounties::<T>::award_subbounty(
RawOrigin::Signed(bm_setup.subcurator.clone()).into(),
bm_setup.bounty_id,
bm_setup.subbounty_id,
beneficiary,
)?;

frame_system::Module::<T>::set_block_number(T::BountyDepositPayoutDelay::get());
ensure!(
T::Currency::free_balance(&beneficiary_account).is_zero(),
"Beneficiary already has balance"
);
}: _(RawOrigin::Signed(bm_setup.curator), bm_setup.bounty_id, bm_setup.subbounty_id)
verify {
ensure!(
!T::Currency::free_balance(&beneficiary_account).is_zero(),
"Beneficiary didn't get paid"
);
}

close_subbounty {
setup_pot_account::<T>();

let bm_setup = create_subbounty::<T>(0, MAX_BYTES)?;

Bounties::<T>::on_initialize(T::BlockNumber::zero());

}: _(RawOrigin::Root, bm_setup.bounty_id, bm_setup.subbounty_id)
verify {
assert_last_event::<T>(
RawEvent::SubBountyCanceled(
bm_setup.bounty_id,
bm_setup.subbounty_id,
).into()
)
}
}

#[cfg(test)]
Expand All @@ -240,6 +460,13 @@ mod tests {
assert_ok!(test_benchmark_close_bounty_active::<Test>());
assert_ok!(test_benchmark_extend_bounty_expiry::<Test>());
assert_ok!(test_benchmark_spend_funds::<Test>());
assert_ok!(test_benchmark_add_subbounty::<Test>());
assert_ok!(test_benchmark_propose_subcurator::<Test>());
assert_ok!(test_benchmark_accept_subcurator::<Test>());
assert_ok!(test_benchmark_unassign_subcurator::<Test>());
assert_ok!(test_benchmark_award_subbounty::<Test>());
assert_ok!(test_benchmark_claim_subbounty::<Test>());
assert_ok!(test_benchmark_close_subbounty::<Test>());
});
}
}
Loading