Skip to content

Commit 7240b47

Browse files
Added Trusted Query API calls (#6039)
Implemented is_trusted_reserve and is_trusted_teleporter API methods. Tested them with regular and chopstick tests. Fixes #97 --------- Co-authored-by: Francisco Aguirre <[email protected]>
1 parent d23a1bb commit 7240b47

19 files changed

Lines changed: 424 additions & 3 deletions

File tree

cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ use xcm::latest::prelude::{
103103
};
104104
use xcm::{
105105
latest::prelude::{AssetId, BodyId},
106-
VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm,
106+
VersionedAsset, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm,
107107
};
108108
use xcm_runtime_apis::{
109109
dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects},
@@ -1098,6 +1098,8 @@ pub type Executive = frame_executive::Executive<
10981098
Migrations,
10991099
>;
11001100

1101+
type XcmTrustedQueryResult = Result<bool, xcm_runtime_apis::trusted_query::Error>;
1102+
11011103
#[cfg(feature = "runtime-benchmarks")]
11021104
mod benches {
11031105
frame_benchmarking::define_benchmarks!(
@@ -1798,6 +1800,15 @@ impl_runtime_apis! {
17981800
genesis_config_presets::preset_names()
17991801
}
18001802
}
1803+
1804+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1805+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> XcmTrustedQueryResult {
1806+
PolkadotXcm::is_trusted_reserve(asset, location)
1807+
}
1808+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> XcmTrustedQueryResult {
1809+
PolkadotXcm::is_trusted_teleporter(asset, location)
1810+
}
1811+
}
18011812
}
18021813

18031814
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ use assets_common::{
9393
use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate};
9494
use xcm::{
9595
latest::prelude::AssetId,
96-
prelude::{VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm},
96+
prelude::{VersionedAsset, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm},
9797
};
9898

9999
#[cfg(feature = "runtime-benchmarks")]
@@ -1894,6 +1894,15 @@ impl_runtime_apis! {
18941894
genesis_config_presets::preset_names()
18951895
}
18961896
}
1897+
1898+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1899+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1900+
PolkadotXcm::is_trusted_reserve(asset, location)
1901+
}
1902+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1903+
PolkadotXcm::is_trusted_teleporter(asset, location)
1904+
}
1905+
}
18971906
}
18981907

18991908
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1521,6 +1521,15 @@ impl_runtime_apis! {
15211521
genesis_config_presets::preset_names()
15221522
}
15231523
}
1524+
1525+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1526+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1527+
PolkadotXcm::is_trusted_reserve(asset, location)
1528+
}
1529+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1530+
PolkadotXcm::is_trusted_teleporter(asset, location)
1531+
}
1532+
}
15241533
}
15251534

15261535
#[cfg(test)]

cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,6 +1337,15 @@ impl_runtime_apis! {
13371337
genesis_config_presets::preset_names()
13381338
}
13391339
}
1340+
1341+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1342+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1343+
PolkadotXcm::is_trusted_reserve(asset, location)
1344+
}
1345+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1346+
PolkadotXcm::is_trusted_teleporter(asset, location)
1347+
}
1348+
}
13401349
}
13411350

13421351
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,6 +1165,15 @@ impl_runtime_apis! {
11651165
genesis_config_presets::preset_names()
11661166
}
11671167
}
1168+
1169+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1170+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1171+
PolkadotXcm::is_trusted_reserve(asset, location)
1172+
}
1173+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1174+
PolkadotXcm::is_trusted_teleporter(asset, location)
1175+
}
1176+
}
11681177
}
11691178

11701179
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,15 @@ impl_runtime_apis! {
879879
vec![]
880880
}
881881
}
882+
883+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
884+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
885+
PolkadotXcm::is_trusted_reserve(asset, location)
886+
}
887+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
888+
PolkadotXcm::is_trusted_teleporter(asset, location)
889+
}
890+
}
882891
}
883892

884893
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,6 +1148,15 @@ impl_runtime_apis! {
11481148
vec![]
11491149
}
11501150
}
1151+
1152+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1153+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1154+
PolkadotXcm::is_trusted_reserve(asset, location)
1155+
}
1156+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1157+
PolkadotXcm::is_trusted_teleporter(asset, location)
1158+
}
1159+
}
11511160
}
11521161

11531162
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,6 +1141,15 @@ impl_runtime_apis! {
11411141
vec![]
11421142
}
11431143
}
1144+
1145+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1146+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1147+
PolkadotXcm::is_trusted_reserve(asset, location)
1148+
}
1149+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1150+
PolkadotXcm::is_trusted_teleporter(asset, location)
1151+
}
1152+
}
11441153
}
11451154

11461155
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/people/people-rococo/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,6 +1059,15 @@ impl_runtime_apis! {
10591059
vec![]
10601060
}
10611061
}
1062+
1063+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1064+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1065+
PolkadotXcm::is_trusted_reserve(asset, location)
1066+
}
1067+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1068+
PolkadotXcm::is_trusted_teleporter(asset, location)
1069+
}
1070+
}
10621071
}
10631072

10641073
cumulus_pallet_parachain_system::register_validate_block! {

cumulus/parachains/runtimes/people/people-westend/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,6 +1058,15 @@ impl_runtime_apis! {
10581058
vec![]
10591059
}
10601060
}
1061+
1062+
impl xcm_runtime_apis::trusted_query::TrustedQueryApi<Block> for Runtime {
1063+
fn is_trusted_reserve(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1064+
PolkadotXcm::is_trusted_reserve(asset, location)
1065+
}
1066+
fn is_trusted_teleporter(asset: VersionedAsset, location: VersionedLocation) -> Result<bool, xcm_runtime_apis::trusted_query::Error> {
1067+
PolkadotXcm::is_trusted_teleporter(asset, location)
1068+
}
1069+
}
10611070
}
10621071

10631072
cumulus_pallet_parachain_system::register_validate_block! {

0 commit comments

Comments
 (0)