Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebenchmark pallet-mantapay #1150

Merged
merged 30 commits into from
Jun 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
33440e9
Rebenchmark pallet-mantapay
Dengjianping Jun 12, 2023
760ebfe
Add node and yarn
Dengjianping Jun 13, 2023
d6ab64c
Fix yml
Dengjianping Jun 13, 2023
2d7f491
Fix yml
Dengjianping Jun 13, 2023
0c03ca7
Fix ci
Dengjianping Jun 13, 2023
d670bdc
Fix comments
Dengjianping Jun 13, 2023
f7e7e3e
Fix ci
Dengjianping Jun 13, 2023
d7bf57b
[no ci]Fix permission
Dengjianping Jun 13, 2023
6653dc7
[no ci]Fix path
Dengjianping Jun 13, 2023
186a4aa
Remove precomputed coins and fix benchamrk ci
Dengjianping Jun 13, 2023
242ae38
Fix benchmark for asset manager
Dengjianping Jun 14, 2023
64452f1
Fix clippy
Dengjianping Jun 14, 2023
02bc211
Bump cache size
Dengjianping Jun 14, 2023
ea459af
Merge branch 'manta' into rebenchmark-pallet-mantapay
Dengjianping Jun 15, 2023
ecc50ad
Bump nightly rust
Dengjianping Jun 15, 2023
0c7042f
Merge branch 'manta' into rebenchmark-pallet-mantapay
Dengjianping Jun 16, 2023
e41ebc6
Merge branch 'manta' into rebenchmark-pallet-mantapay
Dengjianping Jun 18, 2023
8e0ba32
Fix benchmark test
Dengjianping Jun 19, 2023
3ed2e5b
Install protoc
Dengjianping Jun 19, 2023
93c262a
Fix compilation
Dengjianping Jun 19, 2023
7de7abe
Bump sccache
Dengjianping Jun 19, 2023
3a167a3
Bump sscache size
Dengjianping Jun 19, 2023
7ce12cf
Exclude mantapay from normal benchamrk tests
Dengjianping Jun 26, 2023
af43cc3
Revert nightly rust
Dengjianping Jun 26, 2023
8145282
Merge branch 'manta' into rebenchmark-pallet-mantapay
Dengjianping Jun 26, 2023
3e3fb4e
Merge branch 'manta' into rebenchmark-pallet-mantapay
Dengjianping Jun 27, 2023
29dd145
Bump scache size and print disk usage
Dengjianping Jun 28, 2023
834a8fb
Print disk usage
Dengjianping Jun 28, 2023
aadb203
Clean unsed deps
Dengjianping Jun 28, 2023
e622f42
Clean deps
Dengjianping Jun 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
55 changes: 47 additions & 8 deletions .github/workflows/check_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down Expand Up @@ -131,7 +131,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down Expand Up @@ -159,7 +159,13 @@ jobs:
sccache-
- name: start sccache server
run: sccache --start-server
- name: init
- name: build benchmarking binary
env:
RUST_BACKTRACE: full
RUSTC_WRAPPER: sccache
SCCACHE_CACHE_SIZE: 120G
SCCACHE_DIR: /home/runner/.cache/sccache
CARGO_TERM_COLOR: always
run: |
sudo apt update
sudo apt install -y pkg-config libssl-dev protobuf-compiler
Expand All @@ -169,17 +175,39 @@ jobs:
rustup toolchain install nightly-2023-03-03
rustup default nightly-2023-03-03
rustup target add wasm32-unknown-unknown
df -h
sudo apt remove -y '^dotnet-.*'
sudo apt remove -y '^mongodb-.*'
sudo apt remove -y '^mysql-.*'
sudo apt remove -y '^postgresql-*'
sudo apt remove -y google-cloud-sdk google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri
sudo apt autoremove -y
sudo apt clean
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/share/dotnet
df -h
- name: create-chainspec
run: |
RUSTC_BOOTSTRAP=1 cargo build --release --features runtime-benchmarks
${{ github.workspace }}/target/release/manta build-spec --chain calamari-dev --disable-default-bootnode --raw > ${{ github.workspace }}/tests/data/fork.json
- name: append manta-pay storage
run: |
wget -P ${{ github.workspace }}/tests/data https://manta-ops.s3.amazonaws.com/integration-tests-data/storage.json
cd ${{ github.workspace }}/tests
yarn install
yarn
node append_storage.js
- name: Run live benchmarks test
env:
RUST_BACKTRACE: full
RUSTC_WRAPPER: sccache
SCCACHE_CACHE_SIZE: 120G
SCCACHE_DIR: /home/runner/.cache/sccache
run: |
RUSTC_BOOTSTRAP=1 cargo run --release --features runtime-benchmarks,try-runtime \
${{ github.workspace }}/target/release/manta \
benchmark \
pallet \
--chain=calamari-dev \
--chain=${{ github.workspace }}/tests/data/fork.json \
--pallet=* \
--extrinsic=* \
--repeat=1 \
Expand Down Expand Up @@ -227,7 +255,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down Expand Up @@ -266,15 +294,26 @@ jobs:
rustup toolchain install nightly-2023-03-03
rustup default nightly-2023-03-03
rustup target add wasm32-unknown-unknown
df -h
sudo apt remove -y '^dotnet-.*'
sudo apt remove -y '^mongodb-.*'
sudo apt remove -y '^mysql-.*'
sudo apt remove -y '^postgresql-*'
sudo apt remove -y google-cloud-sdk google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri
sudo apt autoremove -y
sudo apt clean
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/share/dotnet
df -h
- name: Run Unit Tests
env:
RUST_BACKTRACE: full
RUSTC_WRAPPER: sccache
SCCACHE_CACHE_SIZE: 120G
SCCACHE_CACHE_SIZE: 240
SCCACHE_DIR: /home/runner/.cache/sccache
run: |
source ${HOME}/.cargo/env
RUSTC_BOOTSTRAP=1 cargo test --release --features=runtime-benchmarks,try-runtime --workspace --exclude integration-tests
RUSTC_BOOTSTRAP=1 cargo test --release --features=runtime-benchmarks,try-runtime --workspace --exclude integration-tests pallet-manta-pay
- name: stop sccache server
run: sccache --stop-server || true
stop-unit-test-checks:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration_test_calamari.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration_test_manta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/metadata_diff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish_draft_releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down
25 changes: 22 additions & 3 deletions .github/workflows/run_all_benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down Expand Up @@ -67,6 +67,13 @@ jobs:
rustup toolchain install nightly-2023-03-03
rustup default nightly-2023-03-03
rustup target add wasm32-unknown-unknown
- name: init nodejs && yarn
run: |
curl -s https://deb.nodesource.com/setup_16.x | sudo bash
sudo apt install nodejs -y
node -v
sudo npm install --global yarn
yarn -v
- name: build benchmarking binary
env:
RUST_BACKTRACE: full
Expand All @@ -77,19 +84,31 @@ jobs:
run: |
source ${HOME}/.cargo/env
RUSTC_BOOTSTRAP=1 cargo build --profile production --features runtime-benchmarks --verbose
- name: create-chainspec
run: |
${{ github.workspace }}/target/production/manta build-spec --chain $CHAIN_SPEC --disable-default-bootnode --raw > ${{ github.workspace }}/tests/data/fork.json
- name: append manta-pay storage
run: |
wget -P ${{ github.workspace }}/tests/data https://manta-ops.s3.amazonaws.com/integration-tests-data/storage.json
cd ${{ github.workspace }}/tests
yarn install
yarn
node append_storage.js
ghzlatarev marked this conversation as resolved.
Show resolved Hide resolved
CHAIN_SPEC=${{ github.workspace }}/tests/data/fork.json
echo $CHAIN_SPEC
- name: stop sccache server
run: sccache --stop-server || true
- if: ${{ env.SNAPSHOT_URL == '' }}
name: run all benchmarks script without storage benchmark
run: |
./scripts/benchmarking/run_all_benchmarks.sh -b -c $CHAIN_SPEC
./scripts/benchmarking/run_all_benchmarks.sh -b -c ${{ github.workspace }}/tests/data/fork.json
- if: ${{ env.SNAPSHOT_URL != '' }}
name: run all benchmarks script with storage benchmark
run: |
mkdir $FULL_DB_FOLDER
wget -q $SNAPSHOT_URL
tar -xf calamari.tar.gz --directory ./$FULL_DB_FOLDER
./scripts/benchmarking/run_all_benchmarks.sh -b -c $CHAIN_SPEC -s ./$FULL_DB_FOLDER
./scripts/benchmarking/run_all_benchmarks.sh -b -c ${{ github.workspace }}/tests/data/fork.json -s ./$FULL_DB_FOLDER
- if: always()
name: upload benchmarking binary
uses: actions/upload-artifact@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/try-runtime-mainnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.2.15
SCCACHE_VERSION: v0.5.3
run: |
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
Expand Down
10 changes: 5 additions & 5 deletions pallets/asset-manager/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

use crate::{Call, Config, Pallet};
use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller};
use frame_support::traits::Get;
use frame_system::{EventRecord, RawOrigin};
use manta_primitives::assets::{AssetConfig, TestingDefault, UnitsPerSecond};
use xcm::latest::prelude::*;
Expand All @@ -38,7 +37,7 @@ benchmarks! {
let metadata = <T::AssetConfig as AssetConfig<T>>::AssetRegistryMetadata::testing_default();
}: _(RawOrigin::Root, location.clone(), metadata)
verify {
assert_eq!(Pallet::<T>::asset_id_location(<T::AssetConfig as AssetConfig<T>>::StartNonNativeAssetId::get()), Some(location));
assert_eq!(Pallet::<T>::asset_id_location(crate::NextAssetId::<T>::get() - 1.into()), Some(location));
}

set_units_per_second {
Expand Down Expand Up @@ -154,6 +153,7 @@ benchmarks! {
}

register_lp_asset {
let current_asset_id = crate::NextAssetId::<T>::get();
let assets_count = 10;
for i in 8..assets_count {
let location: MultiLocation = MultiLocation::new(0, X1(Parachain(i)));
Expand All @@ -162,10 +162,10 @@ benchmarks! {
Pallet::<T>::register_asset(RawOrigin::Root.into(), location.clone(), metadata.clone())?;
}
let lp_metadata = <T::AssetConfig as AssetConfig<T>>::AssetRegistryMetadata::testing_default();
}: _(RawOrigin::Root, <T as Config>::AssetId::from(8), <T as Config>::AssetId::from(9), lp_metadata)
}: _(RawOrigin::Root, current_asset_id, current_asset_id + 1.into(), lp_metadata)
verify {
assert_eq!(Pallet::<T>::asset_id_pair_to_lp((<T as Config>::AssetId::from(8), <T as Config>::AssetId::from(9))), Some(<T as Config>::AssetId::from(10)));
assert_eq!(Pallet::<T>::lp_to_asset_id_pair(<T as Config>::AssetId::from(10)), Some((<T as Config>::AssetId::from(8), <T as Config>::AssetId::from(9))));
assert_eq!(Pallet::<T>::asset_id_pair_to_lp((current_asset_id, current_asset_id + 1.into())), Some(current_asset_id + 2.into()));
assert_eq!(Pallet::<T>::lp_to_asset_id_pair(current_asset_id + 2.into()), Some((current_asset_id, current_asset_id + 1.into())));
}
}

Expand Down
2 changes: 1 addition & 1 deletion pallets/manta-pay/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ lazy_static = "1.4.0"
manta-crypto = { git = "https://github.com/manta-network/manta-rs.git", tag = "v0.5.15", features = ["getrandom"] }
manta-pay = { git = "https://github.com/manta-network/manta-rs.git", tag = "v0.5.15", features = ["groth16", "parameters", "scale", "download", "test"] }
pallet-asset-manager = { path = "../asset-manager" }
pallet-assets = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.37" }
pallet-assets = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.37", features = ["runtime-benchmarks"] }
pallet-balances = { git = 'https://github.com/paritytech/substrate.git', branch = "polkadot-v0.9.37" }
pallet-tx-pause = { path = '../tx-pause' }
sp-core = { git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.37" }
Expand Down
71 changes: 46 additions & 25 deletions pallets/manta-pay/src/benchmark/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Manta. If not, see <http://www.gnu.org/licenses/>.

use crate::{
benchmark::precomputed_coins::{
PRIVATE_TRANSFER, PRIVATE_TRANSFER_INPUT, TO_PRIVATE, TO_PUBLIC, TO_PUBLIC_INPUT,
},
Call, Config, Event, Pallet, StandardAssetId, TransferPost,
};
use crate::{Call, Config, Event, Pallet, StandardAssetId, TransferPost};
use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller};
use frame_support::traits::Get;
use frame_system::RawOrigin;
Expand All @@ -28,16 +23,26 @@ use manta_support::manta_pay::{
};

use manta_primitives::{
assets::{AssetConfig, AssetRegistry, FungibleLedger, TestingDefault},
assets::{AssetConfig, FungibleLedger},
constants::TEST_DEFAULT_ASSET_ED,
types::Balance,
};
use scale_codec::Decode;

mod precomputed_coins;

pub const INITIAL_VALUE: u128 = 1_000_000_000_000_000_000_000u128;

const MINTS_OFFSET: usize = 2;
const MINT_SIZE: usize = 553;

const TRANSFERS_OFFSET: usize = 4;
const TRANSFER_SIZE: usize = 1291;

const RECLAIMS_OFFSET: usize = 4;
const RECLAIM_SIZE: usize = 1001;

// 14000 iterations of mint, mint, mint, transfer, mint, mint, reclaim
const TOTAL_ITERATIONS: usize = 14000;

/// Asserts that the last event that has occurred is the same as `event`.
#[inline]
pub fn assert_last_event<T, E>(event: E)
Expand All @@ -56,15 +61,6 @@ where
T: Config,
T::AccountId: From<AccountId> + Into<AccountId>,
{
let metadata = <T::AssetConfig as AssetConfig<T>>::AssetRegistryMetadata::testing_default();
let storage_metadata: <T::AssetConfig as AssetConfig<T>>::StorageMetadata = metadata.into();
<T::AssetConfig as AssetConfig<T>>::AssetRegistry::create_asset(
id,
storage_metadata,
TEST_DEFAULT_ASSET_ED,
true,
)
.expect("Unable to create asset.");
let pallet_account: T::AccountId = Pallet::<T>::account_id();
<T::AssetConfig as AssetConfig<T>>::FungibleLedger::deposit_minting(
id,
Expand All @@ -85,7 +81,10 @@ benchmarks! {
to_private {
let caller: T::AccountId = whitelisted_caller();
let origin = T::RuntimeOrigin::from(RawOrigin::Signed(caller.clone()));
let mint_post = TransferPost::decode(&mut &*TO_PRIVATE).unwrap();
let mint_coins = core::include_bytes!("../../../../tests/data/precomputed_mints");
let mints_start = MINTS_OFFSET + TOTAL_ITERATIONS * MINT_SIZE;
let to_private_coin = &mint_coins[mints_start..mints_start + MINT_SIZE];
let mint_post = TransferPost::decode(&mut &*to_private_coin).unwrap();
let asset = mint_post.source(0).unwrap();
init_asset::<T>(&caller, id_from_field(asset.id).unwrap(), asset_value_decode(asset.value));
}: to_private (
Expand All @@ -100,13 +99,25 @@ benchmarks! {
let caller: T::AccountId = whitelisted_caller();
let origin = T::RuntimeOrigin::from(RawOrigin::Signed(caller.clone()));
init_asset::<T>(&caller, <T::AssetConfig as AssetConfig<T>>::StartNonNativeAssetId::get(), INITIAL_VALUE);
for coin in TO_PUBLIC_INPUT {
let reclaim_coins = core::include_bytes!("../../../../tests/data/precomputed_reclaims");

let reclaim_start = RECLAIMS_OFFSET + TOTAL_ITERATIONS * (2 * MINT_SIZE + RECLAIM_SIZE);
let to_public_input = {
let mint_post1 = &reclaim_coins[reclaim_start..reclaim_start + MINT_SIZE];
let mint_post2 = &reclaim_coins[reclaim_start + MINT_SIZE..reclaim_start + 2 * MINT_SIZE];

[mint_post1, mint_post2]
};

for coin in to_public_input {
Pallet::<T>::to_private(
origin.clone(),
TransferPost::decode(&mut &**coin).unwrap()
TransferPost::decode(&mut &*coin).unwrap()
).unwrap();
}
let reclaim_post = TransferPost::decode(&mut &*TO_PUBLIC).unwrap();

let to_public_post = &reclaim_coins[reclaim_start + 2 * MINT_SIZE..reclaim_start + 2 * MINT_SIZE + RECLAIM_SIZE];
let reclaim_post = TransferPost::decode(&mut &*to_public_post).unwrap();
let asset = reclaim_post.sink(0).unwrap();
}: to_public (
RawOrigin::Signed(caller.clone()),
Expand All @@ -120,13 +131,23 @@ benchmarks! {
let caller: T::AccountId = whitelisted_caller();
let origin = T::RuntimeOrigin::from(RawOrigin::Signed(caller.clone()));
init_asset::<T>(&caller, <T::AssetConfig as AssetConfig<T>>::StartNonNativeAssetId::get(), INITIAL_VALUE);
for coin in PRIVATE_TRANSFER_INPUT {
let private_transfer_coins = core::include_bytes!("../../../../tests/data/precomputed_transfers");
let transfer_start = TRANSFERS_OFFSET + TOTAL_ITERATIONS * (2 * MINT_SIZE + TRANSFER_SIZE);
let private_transfer_input = {
let mint_post1 = &private_transfer_coins[transfer_start..transfer_start + MINT_SIZE];
let mint_post2 = &private_transfer_coins[transfer_start + MINT_SIZE..transfer_start + 2 * MINT_SIZE];

[mint_post1, mint_post2]
};

for coin in private_transfer_input {
Pallet::<T>::to_private(
origin.clone(),
TransferPost::decode(&mut &**coin).unwrap(),
TransferPost::decode(&mut &*coin).unwrap(),
).unwrap();
}
let private_transfer_post = TransferPost::decode(&mut &*PRIVATE_TRANSFER).unwrap();
let private_transfer_post = &private_transfer_coins[transfer_start + 2 * MINT_SIZE..transfer_start + 2 * MINT_SIZE + TRANSFER_SIZE];
let private_transfer_post = TransferPost::decode(&mut &*private_transfer_post).unwrap();
}: private_transfer (
RawOrigin::Signed(caller.clone()),
private_transfer_post
Expand Down