diff --git a/.github/workflows/srtool.yml b/.github/workflows/srtool.yml index ef69e25bd..39a901d8a 100644 --- a/.github/workflows/srtool.yml +++ b/.github/workflows/srtool.yml @@ -53,7 +53,7 @@ jobs: - uses: actions/checkout@v3 - name: Srtool build id: srtool_build - uses: chevdor/srtool-actions@v0.3.0 + uses: chevdor/srtool-actions@v0.5.0 with: chain: ${{ matrix.chain }} tag: 1.62.0 diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index ea66e6eb8..6281ace51 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -421,7 +421,7 @@ pub mod pallet { ensure!(pool_info.is_active, Error::::PoolIsNotActive); - T::Assets::transfer(asset, &who, &asset_pool_account, amount, true)?; + T::Assets::transfer(asset, &who, &asset_pool_account, amount, false)?; pool_info.total_deposited = pool_info .total_deposited @@ -514,7 +514,7 @@ pub mod pallet { &asset_pool_account, &who, amount, - true, + false, )?; } else { user_position @@ -579,7 +579,7 @@ pub mod pallet { if total_amount > 0 { let asset_pool_account = Self::pool_account_id(asset)?; - T::Assets::transfer(asset, &asset_pool_account, &who, total_amount, true)?; + T::Assets::transfer(asset, &asset_pool_account, &who, total_amount, false)?; } Self::deposit_event(Event::::AssetsRedeem( @@ -629,7 +629,7 @@ pub mod pallet { &asset_pool_account, &who, reward_amount, - true, + false, )?; user_position.reward_amount = 0; } @@ -720,7 +720,7 @@ pub mod pallet { &payer, &asset_pool_account, amount, - true, + false, )?; } diff --git a/pallets/farming/src/tests.rs b/pallets/farming/src/tests.rs index 92f4e0a21..8354e9398 100644 --- a/pallets/farming/src/tests.rs +++ b/pallets/farming/src/tests.rs @@ -1018,3 +1018,57 @@ fn edge_case_reward_token_decimal_too_big() { )); }) } + +#[test] +fn pool_failed() { + new_test_ext().execute_with(|| { + let deposit_balance = 100_000_000; + assert_ok!(Farming::deposit( + RawOrigin::Signed(ALICE).into(), + STAKE_TOKEN, + REWARD_TOKEN, + LOCK_DURATION, + deposit_balance, + )); + + assert_ok!(Farming::deposit( + RawOrigin::Signed(BOB).into(), + STAKE_TOKEN, + REWARD_TOKEN, + LOCK_DURATION, + deposit_balance, + )); + + assert_ok!(Farming::withdraw( + RawOrigin::Signed(ALICE).into(), + STAKE_TOKEN, + REWARD_TOKEN, + LOCK_DURATION, + deposit_balance, + )); + + assert_ok!(Farming::withdraw( + RawOrigin::Signed(BOB).into(), + STAKE_TOKEN, + REWARD_TOKEN, + LOCK_DURATION, + deposit_balance, + )); + + run_to_block(200); + + assert_ok!(Farming::redeem( + RawOrigin::Signed(ALICE).into(), + STAKE_TOKEN, + REWARD_TOKEN, + LOCK_DURATION, + )); + + assert_ok!(Farming::redeem( + RawOrigin::Signed(BOB).into(), + STAKE_TOKEN, + REWARD_TOKEN, + LOCK_DURATION, + )); + }) +} diff --git a/scripts/srtool-build.sh b/scripts/srtool-build.sh index 5c832b616..adbb7dbc9 100755 --- a/scripts/srtool-build.sh +++ b/scripts/srtool-build.sh @@ -15,5 +15,6 @@ docker run --rm -it \ -e BUILD_OPTS="$BUILD_OPTS" \ -v $PWD:/build \ -v $TMPDIR/cargo:/cargo-home \ + --user root \ --network=host \ paritytech/srtool:$RUSTC_VERSION diff --git a/typos.toml b/typos.toml index 56a480a07..bff55fd4f 100644 --- a/typos.toml +++ b/typos.toml @@ -3,3 +3,4 @@ extend-exclude = ["scripts/polkadot-launch/*", "resources/specs/*", "scripts/evm [default.extend-words] accured = "accured" +Nd = "Nd"