mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 18:41:03 +00:00
Revert execute_blob and send_blob (#4266)
Revert "pallet-xcm: Deprecate `execute` and `send` in favor of
`execute_blob` and `send_blob` (#3749)"
This reverts commit feee773d15.
---------
Co-authored-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Javier Bullrich <javier@bullrich.dev>
This commit is contained in:
committed by
GitHub
parent
d29c3636fa
commit
4f3d43a0c4
@@ -14,9 +14,8 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use super::{Balances, Runtime, RuntimeCall, RuntimeEvent};
|
||||
use crate::parachain::RuntimeHoldReason;
|
||||
use frame_support::{derive_impl, parameter_types};
|
||||
use super::{Balances, Runtime, RuntimeCall, RuntimeEvent, RuntimeHoldReason};
|
||||
use frame_support::{derive_impl, parameter_types, traits::Contains};
|
||||
|
||||
parameter_types! {
|
||||
pub Schedule: pallet_contracts::Schedule<Runtime> = Default::default();
|
||||
@@ -29,5 +28,14 @@ impl pallet_contracts::Config for Runtime {
|
||||
type Currency = Balances;
|
||||
type Schedule = Schedule;
|
||||
type Time = super::Timestamp;
|
||||
type CallFilter = CallFilter;
|
||||
type Xcm = pallet_xcm::Pallet<Self>;
|
||||
}
|
||||
|
||||
/// In this mock, we only allow other contract calls via XCM.
|
||||
pub struct CallFilter;
|
||||
impl Contains<RuntimeCall> for CallFilter {
|
||||
fn contains(call: &RuntimeCall) -> bool {
|
||||
matches!(call, RuntimeCall::Contracts(pallet_contracts::Call::call { .. }))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,10 @@ use crate::{
|
||||
relay_chain, MockNet, ParaA, ParachainBalances, Relay, ALICE, BOB, INITIAL_BALANCE,
|
||||
};
|
||||
use codec::{Decode, Encode};
|
||||
use frame_support::traits::{fungibles::Mutate, Currency};
|
||||
use frame_support::{
|
||||
assert_err,
|
||||
traits::{fungibles::Mutate, Currency},
|
||||
};
|
||||
use pallet_contracts::{test_utils::builder::*, Code};
|
||||
use pallet_contracts_fixtures::compile_module;
|
||||
use pallet_contracts_uapi::ReturnErrorCode;
|
||||
@@ -81,7 +84,7 @@ fn test_xcm_execute() {
|
||||
.build();
|
||||
|
||||
let result = bare_call(contract_addr.clone())
|
||||
.data(VersionedXcm::V4(message).encode().encode())
|
||||
.data(VersionedXcm::V4(message).encode())
|
||||
.build();
|
||||
|
||||
assert_eq!(result.gas_consumed, result.gas_required);
|
||||
@@ -118,7 +121,7 @@ fn test_xcm_execute_incomplete() {
|
||||
.build();
|
||||
|
||||
let result = bare_call(contract_addr.clone())
|
||||
.data(VersionedXcm::V4(message).encode().encode())
|
||||
.data(VersionedXcm::V4(message).encode())
|
||||
.build();
|
||||
|
||||
assert_eq!(result.gas_consumed, result.gas_required);
|
||||
@@ -129,6 +132,26 @@ fn test_xcm_execute_incomplete() {
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_xcm_execute_filtered_call() {
|
||||
MockNet::reset();
|
||||
|
||||
let contract_addr = instantiate_test_contract("xcm_execute");
|
||||
|
||||
ParaA::execute_with(|| {
|
||||
// `remark` should be rejected, as it is not allowed by our CallFilter.
|
||||
let call = parachain::RuntimeCall::System(frame_system::Call::remark { remark: vec![] });
|
||||
let message: Xcm<parachain::RuntimeCall> = Xcm::builder_unsafe()
|
||||
.transact(OriginKind::Native, Weight::MAX, call.encode())
|
||||
.build();
|
||||
let result = bare_call(contract_addr.clone())
|
||||
.data(VersionedXcm::V4(message).encode())
|
||||
.build()
|
||||
.result;
|
||||
assert_err!(result, frame_system::Error::<parachain::Runtime>::CallFiltered);
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_xcm_execute_reentrant_call() {
|
||||
MockNet::reset();
|
||||
@@ -151,7 +174,7 @@ fn test_xcm_execute_reentrant_call() {
|
||||
.build();
|
||||
|
||||
let result = bare_call(contract_addr.clone())
|
||||
.data(VersionedXcm::V4(message).encode().encode())
|
||||
.data(VersionedXcm::V4(message).encode())
|
||||
.build_and_unwrap_result();
|
||||
|
||||
assert_return_code!(&result, ReturnErrorCode::XcmExecutionFailed);
|
||||
@@ -182,7 +205,7 @@ fn test_xcm_send() {
|
||||
.build();
|
||||
|
||||
let result = bare_call(contract_addr.clone())
|
||||
.data((dest, VersionedXcm::V4(message).encode()).encode())
|
||||
.data((dest, VersionedXcm::V4(message)).encode())
|
||||
.build_and_unwrap_result();
|
||||
|
||||
let mut data = &result.data[..];
|
||||
|
||||
Reference in New Issue
Block a user