feat: initialize Kurdistan SDK - independent fork of Polkadot SDK

This commit is contained in:
2025-12-13 15:44:15 +03:00
commit e4778b4576
6838 changed files with 1847450 additions and 0 deletions
@@ -0,0 +1,47 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: 2023 Snowfork <hello@snowfork.com>
use core::marker::PhantomData;
use snowbridge_core::operating_mode::ExportPausedQuery;
use sp_std::vec::Vec;
use xcm::{
prelude::{Location, SendError, SendResult, SendXcm, Xcm, XcmHash},
VersionedLocation, VersionedXcm,
};
use xcm_builder::InspectMessageQueues;
pub struct PausableExporter<PausedQuery, InnerExporter>(PhantomData<(PausedQuery, InnerExporter)>);
impl<PausedQuery: ExportPausedQuery, InnerExporter: SendXcm> SendXcm
for PausableExporter<PausedQuery, InnerExporter>
{
type Ticket = InnerExporter::Ticket;
fn validate(
destination: &mut Option<Location>,
message: &mut Option<Xcm<()>>,
) -> SendResult<Self::Ticket> {
match PausedQuery::is_paused() {
true => Err(SendError::NotApplicable),
false => InnerExporter::validate(destination, message),
}
}
fn deliver(ticket: Self::Ticket) -> Result<XcmHash, SendError> {
match PausedQuery::is_paused() {
true => Err(SendError::NotApplicable),
false => InnerExporter::deliver(ticket),
}
}
}
impl<Halted: ExportPausedQuery, InnerExporter: SendXcm> InspectMessageQueues
for PausableExporter<Halted, InnerExporter>
{
fn clear_messages() {}
/// This router needs to implement `InspectMessageQueues` but doesn't have to
/// return any messages, since it just reuses the inner router.
fn get_messages() -> Vec<(VersionedLocation, Vec<VersionedXcm<()>>)> {
Vec::new()
}
}