expose exodus-pallet API in casper runtime

Signed-off-by: Uncle Stretch <uncle.stretch@ghostchain.io>
This commit is contained in:
Uncle Stretch 2026-10-21 17:27:12 +03:00
parent 66ca7545ce
commit ab7f978ccc
Signed by: str3tch
GPG Key ID: 84F3190747EE79AA
2 changed files with 40 additions and 2 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "casper-runtime" name = "casper-runtime"
version = "4.0.14" version = "4.0.15"
build = "build.rs" build = "build.rs"
description = "Runtime of the Casper Network" description = "Runtime of the Casper Network"
edition.workspace = true edition.workspace = true
@ -75,6 +75,7 @@ ghost-networks = { workspace = true }
ghost-governance = { workspace = true } ghost-governance = { workspace = true }
ghost-weaver = { workspace = true } ghost-weaver = { workspace = true }
ghost-exodus = { workspace = true } ghost-exodus = { workspace = true }
ghost-exodus-runtime-api = { workspace = true }
ghost-sudo = { workspace = true } ghost-sudo = { workspace = true }
ghost-traits = { workspace = true } ghost-traits = { workspace = true }
ghost-helpers = { workspace = true } ghost-helpers = { workspace = true }
@ -188,6 +189,7 @@ std = [
"ghost-governance/std", "ghost-governance/std",
"ghost-weaver/std", "ghost-weaver/std",
"ghost-exodus/std", "ghost-exodus/std",
"ghost-exodus-runtime-api/std",
"ghost-sudo/std", "ghost-sudo/std",
"casper-runtime-constants/std", "casper-runtime-constants/std",
"runtime-common/std", "runtime-common/std",

View File

@ -69,6 +69,7 @@ pub use frame_system::Call as SystemCall;
pub use pallet_balances::Call as BalancesCall; pub use pallet_balances::Call as BalancesCall;
pub use pallet_election_provider_multi_phase::{Call as EPMCall, GeometricDepositBase}; pub use pallet_election_provider_multi_phase::{Call as EPMCall, GeometricDepositBase};
use ghost_helpers::networks::{NetworkCurve, NetworkType};
use ghost_weaver::sr25519::AuthorityId as GhostWeaverId; use ghost_weaver::sr25519::AuthorityId as GhostWeaverId;
use ghost_exodus::sr25519::AuthorityId as GhostExodusId; use ghost_exodus::sr25519::AuthorityId as GhostExodusId;
@ -123,7 +124,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("casper"), spec_name: create_runtime_str!("casper"),
impl_name: create_runtime_str!("casper-svengali"), impl_name: create_runtime_str!("casper-svengali"),
authoring_version: 0, authoring_version: 0,
spec_version: 7, spec_version: 8,
impl_version: 0, impl_version: 0,
apis: RUNTIME_API_VERSIONS, apis: RUNTIME_API_VERSIONS,
transaction_version: 1, transaction_version: 1,
@ -906,6 +907,7 @@ parameter_types! {
pub ExodusUnsignedPriority: TransactionPriority = pub ExodusUnsignedPriority: TransactionPriority =
Perbill::from_percent(90) * TransactionPriority::MAX; Perbill::from_percent(90) * TransactionPriority::MAX;
pub MaxExodusRequestCount: u32 = 32;
pub MaxAuthoritiesChunks: u32 = 32; pub MaxAuthoritiesChunks: u32 = 32;
pub WeavingDelay: u64 = 50; pub WeavingDelay: u64 = 50;
pub AttestationDelay: u64 = 25; pub AttestationDelay: u64 = 25;
@ -949,6 +951,7 @@ impl ghost_exodus::Config for Runtime {
type UnsignedPriority = ExodusUnsignedPriority; type UnsignedPriority = ExodusUnsignedPriority;
type MaxAuthorities = MaxActiveValidators; type MaxAuthorities = MaxActiveValidators;
type MaxAuthoritiesChunks = MaxAuthoritiesChunks; type MaxAuthoritiesChunks = MaxAuthoritiesChunks;
type MaxExodusRequestCount = MaxExodusRequestCount;
type DkgRoundPeriod = ExodusDkgRoundPeriod; type DkgRoundPeriod = ExodusDkgRoundPeriod;
type RemovalLimit = ExodusRemovalLimit; type RemovalLimit = ExodusRemovalLimit;
@ -1156,6 +1159,39 @@ sp_api::impl_runtime_apis! {
} }
} }
impl ghost_exodus_runtime_api::ExodusApi<Block> for Runtime {
fn get_evm_rotation_metadata(
dkg_index: u64,
network_type: NetworkType,
) -> ghost_exodus_runtime_api::PreparedEvmMessage {
GhostExodus::api_get_evm_rotation(dkg_index, network_type)
}
fn get_evm_bridge_metadata(
dkg_index: u64,
network_id: u64,
session: u64,
) -> ghost_exodus_runtime_api::PreparedEvmMessage {
GhostExodus::api_get_evm_bridge(dkg_index, network_id, session)
}
fn get_evm_governance_metadata(
dkg_index: u64,
network_id: u64,
session: u64,
) -> ghost_exodus_runtime_api::PreparedEvmMessage {
GhostExodus::api_get_evm_governance(dkg_index, network_id, session)
}
fn pending_exodus_request_count() -> u32 {
GhostExodus::api_pending_exodus_request_count()
}
fn is_qualification_ongoing(network_curve: NetworkCurve) -> bool {
GhostExodus::api_is_qualification_ongoing(network_curve)
}
}
impl pallet_staking_runtime_api::StakingApi<Block, Balance, AccountId> for Runtime { impl pallet_staking_runtime_api::StakingApi<Block, Balance, AccountId> for Runtime {
fn nominations_quota(balance: Balance) -> u32 { fn nominations_quota(balance: Balance) -> u32 {
Staking::api_nominations_quota(balance) Staking::api_nominations_quota(balance)