-
Notifications
You must be signed in to change notification settings - Fork 335
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
…#2980) * point dependencies to moonbeam-polkadot-sdk-stable2407 * bump packages versions to match polkadot-sdk * apply TransactionPov changes * update runtime configs (wip) * update imports * mute hrmp channel moonriver - Litmus (#2914) * Add step to Build workflow to check for WASM runtime sizes (#2888) * add simple wasm size check * only run on pull requests * add Github token to env * fix download dir name * try comparing previous and current runtimes * change master branch with dynamic target branch ref * add comparison to latest release * test with older release * download from release instead of workflow artifact * debug release tag not saved to env * debug some more * use gh cli to get releases instead of git tag * use gh api instead of releases * remove get build id & fix awk parsing * build runtimes with _, releases with - * add comment to PR and format msg * use markdown report & replace comment * cat report & fix comment formatting * add twiggy diff reports as artifacts * use upload v4 & create reports dir * rm: deprecated ::set-output cmd * add log event (#2918) * Extract Storage Read costs for dev tests involved in #2786 (#2915) * add: storage read cost constant * update test-pov * update xcm-v3 tests * update xcm-v4 tests * add storage read gas cost to constants * update test-precompile * load constant in beforeAll * replace gas cost with weight to gas ratio * Fix auto-pause xcm: incoming XCMP messages where dropped when auto-pause (#2913) * chore: rename crate manual-xcm-rpc -> moonbeam-dev-rpc * add RPC method test_skipRelayBlocks * allow Root to resume XCM execution * update moonkit pin * add dev-test that trigger auto-pause of xcm * prettier * dev test auto-pause xcm: remove unused imports & improve test scenario * add pallet-emergency-para-xcm to moonriver * add pallet-emergency-para-xcm to moonbeam * apply review suggestions * Set the block size to 60mln gas for moonbeam (#2921) * set the block size to 60mln gas for moonbeam * update mbip-5 value in test * Add pallet_parameters (moonbase only) (#2923) * add pallet parameters * XcmFeesAccount * add copyrights * add FeesTreasuryProportion --------- Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com> * make moonbeam compile * remove cumulus_pallet_dmp_queue * remove unused import * add proper para_id to MockValidationDataInherentDataProvider * update config for tests * add MockTimestampInherentDataProvider to simulate consistent and sequential relay slots * Revert "apply TransactionPov changes" This reverts commit 4382107. * update cargo lock pins * remove import of deleted TransacionPoV * Make cargo test compile * Add XcmRecorder to XcmConfig * Add VersionWrapper to hrmp::COnfig * Remove code from deprecated pallet treasury * Remove code from deprecated DmpQueue * Remove code from deprecated XCMV2 * remove deprecated tresury pallet tests, add some for the new functionality * fix tests * fix remaining dev tests * fix licenses * fix lazy loading backend for stable * remove unused patch * fix linters * fix cargo test with benchmarking and tracing enabled * fix lazy loading * fix command for lazy loading * update frontier pin * support new 'stableYYMM' versioning for polkadot * update polkadot sdk pin * fix download-polkadot script * simplify script * Replace thread_local with AtomicU64 (as per review request) * remove deprecated test code * use latest version of nextest * add DryRunApi and LocationToAccountApi * Update precompiles/collective/src/mock.rs Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com> * apply review suggestions * Revert "apply review suggestions" This reverts commit 6daef57. * apply review suggestions * fix lazy-loading * re add reset_issuance * add missing weights * remove unused var * add TS tests * cleanup * fmt * fix download correct binaries * cargo fmt * make polkadot worker binearies executable * configure XcmRecorder for mocks --------- Co-authored-by: Gonza Montiel <gon.montiel@gmail.com> Co-authored-by: Éloïs <c@elo.tf> Co-authored-by: pablito テ <pablitolabarta@gmail.com> Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com> Co-authored-by: Andrea Giacobino <no.andrea@gmail.com> Co-authored-by: Tarek Mohamed Abdalla <tarekkma@gmail.com> Co-authored-by: Rodrigo Quelhas <rodrigo_quelhas@outlook.pt> Co-authored-by: Gonza Montiel <gonzamontiel@users.noreply.github.com>
- Loading branch information
1 parent
023adc0
commit 1c9dca4
Showing
10 changed files
with
284 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
209 changes: 209 additions & 0 deletions
209
test/suites/dev/moonbase/test-xcm-v4/test-xcm-dry-run-api.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,209 @@ | ||
import { beforeAll, describeSuite, expect } from "@moonwall/cli"; | ||
import { alith, generateKeyringPair } from "@moonwall/util"; | ||
import { ApiPromise, WsProvider } from "@polkadot/api"; | ||
import { u8aToHex } from "@polkadot/util"; | ||
import { XcmFragment } from "../../../../helpers"; | ||
|
||
// TODO: remove once the api is present in @polkadot/api | ||
const runtimeApi = { | ||
runtime: { | ||
DryRunApi: [ | ||
{ | ||
methods: { | ||
dry_run_call: { | ||
description: "Dry run call", | ||
params: [ | ||
{ | ||
name: "origin", | ||
type: "OriginCaller", | ||
}, | ||
{ | ||
name: "call", | ||
type: "Call", | ||
}, | ||
], | ||
type: "Result<CallDryRunEffects<Event>, XcmDryRunError>", | ||
}, | ||
dry_run_xcm: { | ||
description: "Dry run XCM program", | ||
params: [ | ||
{ | ||
name: "origin_location", | ||
type: "XcmVersionedLocation", | ||
}, | ||
{ | ||
name: "xcm", | ||
type: "XcmVersionedXcm", | ||
}, | ||
], | ||
type: "Result<XcmDryRunEffects, XcmDryRunError>", | ||
}, | ||
}, | ||
version: 1, | ||
}, | ||
], | ||
}, | ||
types: { | ||
CallDryRunEffects: { | ||
ExecutionResult: "DispatchResultWithPostInfo", | ||
EmittedEvents: "Vec<Event>", | ||
LocalXcm: "Option<XcmVersionedXcm>", | ||
ForwardedXcms: "Vec<(XcmVersionedLocation, Vec<XcmVersionedXcm>)>", | ||
}, | ||
DispatchErrorWithPostInfoTPostDispatchInfo: { | ||
postInfo: "PostDispatchInfo", | ||
error: "DispatchError", | ||
}, | ||
DispatchResultWithPostInfo: { | ||
_enum: { | ||
Ok: "PostDispatchInfo", | ||
Err: "DispatchErrorWithPostInfoTPostDispatchInfo", | ||
}, | ||
}, | ||
PostDispatchInfo: { | ||
actualWeight: "Option<Weight>", | ||
paysFee: "Pays", | ||
}, | ||
XcmDryRunEffects: { | ||
ExecutionResult: "StagingXcmV4TraitsOutcome", | ||
EmittedEvents: "Vec<Event>", | ||
ForwardedXcms: "Vec<(XcmVersionedLocation, Vec<XcmVersionedXcm>)>", | ||
}, | ||
XcmDryRunError: { | ||
_enum: { | ||
Unimplemented: "Null", | ||
VersionedConversionFailed: "Null", | ||
}, | ||
}, | ||
}, | ||
}; | ||
|
||
describeSuite({ | ||
id: "D014135", | ||
title: "XCM - DryRunApi", | ||
foundationMethods: "dev", | ||
testCases: ({ context, it }) => { | ||
let polkadotJs: ApiPromise; | ||
|
||
beforeAll(async function () { | ||
polkadotJs = await ApiPromise.create({ | ||
provider: new WsProvider(`ws://localhost:${process.env.MOONWALL_RPC_PORT}/`), | ||
...runtimeApi, | ||
}); | ||
}); | ||
|
||
it({ | ||
id: "T01", | ||
title: "Should succeed calling DryRunApi::dryRunCall", | ||
test: async function () { | ||
const metadata = await context.polkadotJs().rpc.state.getMetadata(); | ||
const balancesPalletIndex = metadata.asLatest.pallets | ||
.find(({ name }) => name.toString() == "Balances")! | ||
.index.toNumber(); | ||
|
||
const randomReceiver = "0x1111111111111111111111111111111111111111111111111111111111111111"; | ||
|
||
// Beneficiary from destination's point of view | ||
const destBeneficiary = { | ||
V3: { | ||
parents: 0, | ||
interior: { | ||
X1: { | ||
AccountId32: { | ||
network: null, | ||
id: randomReceiver, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}; | ||
|
||
const assetsToSend = { | ||
V3: [ | ||
{ | ||
id: { | ||
Concrete: { | ||
parents: 0, | ||
interior: { | ||
X1: { PalletInstance: Number(balancesPalletIndex) }, | ||
}, | ||
}, | ||
}, | ||
fun: { | ||
Fungible: 1_000_000_000_000_000n, | ||
}, | ||
}, | ||
], | ||
}; | ||
const dest = { | ||
V3: { | ||
parents: 1, | ||
interior: { | ||
Here: null, | ||
}, | ||
}, | ||
}; | ||
const polkadotXcmTx = polkadotJs.tx.polkadotXcm.transferAssets( | ||
dest, | ||
destBeneficiary, | ||
assetsToSend, | ||
0, | ||
"Unlimited" | ||
); | ||
|
||
const dryRunCall = await polkadotJs.call.dryRunApi.dryRunCall( | ||
{ system: { signed: alith.address } }, | ||
polkadotXcmTx | ||
); | ||
|
||
expect(dryRunCall.isOk).to.be.true; | ||
expect(dryRunCall.asOk.ExecutionResult.isOk).be.true; | ||
}, | ||
}); | ||
|
||
it({ | ||
id: "T02", | ||
title: "Should succeed calling DryRunApi::dryRunXcm", | ||
test: async function () { | ||
const metadata = await context.polkadotJs().rpc.state.getMetadata(); | ||
const balancesPalletIndex = metadata.asLatest.pallets | ||
.find(({ name }) => name.toString() == "Balances")! | ||
.index.toNumber(); | ||
const randomKeyPair = generateKeyringPair(); | ||
|
||
// We will dry run a "ReserveAssetDeposited" coming from the relay | ||
const xcmMessage = new XcmFragment({ | ||
assets: [ | ||
{ | ||
multilocation: { | ||
parents: 0, | ||
interior: { | ||
X1: { PalletInstance: Number(balancesPalletIndex) }, | ||
}, | ||
}, | ||
fungible: 1_000_000_000_000_000n, | ||
}, | ||
], | ||
beneficiary: u8aToHex(randomKeyPair.addressRaw), | ||
}) | ||
.reserve_asset_deposited() | ||
.clear_origin() | ||
.buy_execution() | ||
.deposit_asset_v3() | ||
.as_v3(); | ||
|
||
const dryRunXcm = await polkadotJs.call.dryRunApi.dryRunXcm( | ||
{ | ||
V3: { | ||
Concrete: { parent: 1, interior: { Here: null } }, | ||
}, | ||
}, | ||
xcmMessage | ||
); | ||
|
||
expect(dryRunXcm.isOk).to.be.true; | ||
expect(dryRunXcm.asOk.ExecutionResult.isComplete).be.true; | ||
}, | ||
}); | ||
}, | ||
}); |
22 changes: 22 additions & 0 deletions
22
test/suites/dev/moonbase/test-xcm-v4/test-xcm-location-to-account-api.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import { describeSuite, expect } from "@moonwall/cli"; | ||
import { RELAY_V3_SOURCE_LOCATION } from "../../../../helpers/assets"; | ||
|
||
describeSuite({ | ||
id: "D014136", | ||
title: "XCM - LocationToAccountApi", | ||
foundationMethods: "dev", | ||
testCases: ({ context, it }) => { | ||
it({ | ||
id: "T01", | ||
title: "Should succeed calling LocationToAccountApi::convertLocation", | ||
test: async function () { | ||
const convertLocation = await context | ||
.polkadotJs() | ||
.call.locationToAccountApi.convertLocation(RELAY_V3_SOURCE_LOCATION); | ||
|
||
expect(convertLocation.isOk).to.be.true; | ||
expect(convertLocation.asOk.toHuman()).to.eq("0x506172656E740000000000000000000000000000"); | ||
}, | ||
}); | ||
}, | ||
}); |