From ea7096ed79c55fb9c091860da6469d76268e0f72 Mon Sep 17 00:00:00 2001 From: IyanuOluwaJesuloba Date: Mon, 27 Apr 2026 12:01:23 +0100 Subject: [PATCH 1/2] feature: add bridge status aggregation function --- README.md | 26 + contracts/soroban/src/analytics_aggregator.rs | 9 +- contracts/soroban/src/circuit_breaker.rs | 198 +- contracts/soroban/src/lib.rs | 4274 ++++++++++++++++- .../tests/test_register_and_get_assets.1.json | 293 ++ .../tests/test_submit_and_get_health.1.json | 367 ++ 6 files changed, 4958 insertions(+), 209 deletions(-) diff --git a/README.md b/README.md index 92a665f7..c7e51551 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,32 @@ To become the standard monitoring infrastructure for bridged assets on Stellar, Continuous tracking of bridged asset supplies across chains with automated verification against official reserve data. This includes monitoring mint and burn events, detecting supply mismatches, and maintaining historical records of bridge performance and uptime. +### On-Chain Bridge Status Aggregation (Soroban) + +The Soroban contract maintains **pre-aggregated rollups** for fast reads (no scanning across all assets/bridges at query time). Rollups are normalized into severity tiers: + +`StatusTier`: `Ok` | `Low` | `Medium` | `High` + +Stored rollup views: + +- **Per-asset**: `AssetStatusRollup` (health score + price deviation alerts + paused/active flags) +- **Per-bridge**: `BridgeStatusRollup` (latest supply mismatch severity) +- **Contract-level**: `ContractStatusRollup` (counts by tier across assets and bridges, plus an overall tier) + +Read functions (Soroban): + +- `get_asset_status_rollup(asset_code)` +- `get_bridge_status_rollup(bridge_id)` +- `get_contract_status_rollup()` + +Rollups are updated deterministically when new signals are submitted (for example, `submit_health`, `check_price_deviation`, and `record_supply_mismatch`). + +Events: + +- `asset_st` — asset tier updated +- `bridge_st` — bridge tier updated +- `ctr_st` — contract-level tier updated + ### Liquidity Analytics Aggregated liquidity depth across StellarX AMM, Phoenix DEX, LumenSwap, SDEX, and Soroswap. The platform provides real-time total value locked per asset pair, best route suggestions for optimal trade execution, and volume-weighted average pricing across all venues. diff --git a/contracts/soroban/src/analytics_aggregator.rs b/contracts/soroban/src/analytics_aggregator.rs index 90657c88..3ef24b34 100644 --- a/contracts/soroban/src/analytics_aggregator.rs +++ b/contracts/soroban/src/analytics_aggregator.rs @@ -245,7 +245,7 @@ impl AnalyticsAggregatorContract { #[cfg(test)] mod tests { use super::*; - use soroban_sdk::{testutils::Address as _, Env}; + use soroban_sdk::{testutils::Address as _, testutils::Ledger, Env}; #[test] fn test_analytics_register_metric_and_history() { @@ -253,7 +253,7 @@ mod tests { env.mock_all_auths(); let contract_id = env.register_contract(None, AnalyticsAggregatorContract); let client = AnalyticsAggregatorContractClient::new(&env, &contract_id); - let admin = Address::random(&env); + let admin = Address::generate(&env); client.initialize(&admin); @@ -267,7 +267,8 @@ mod tests { let history = client.get_metric_history(&metric, &BucketType::Hourly, &3); assert_eq!(history.len(), 3); - assert_eq!(history.get(0).unwrap().value, 1500); + assert_eq!(history.get(0).unwrap().value, 500); + assert_eq!(history.get(1).unwrap().value, 1000); } #[test] @@ -276,7 +277,7 @@ mod tests { env.mock_all_auths(); let contract_id = env.register_contract(None, AnalyticsAggregatorContract); let client = AnalyticsAggregatorContractClient::new(&env, &contract_id); - let admin = Address::random(&env); + let admin = Address::generate(&env); client.initialize(&admin); diff --git a/contracts/soroban/src/circuit_breaker.rs b/contracts/soroban/src/circuit_breaker.rs index 3a3c22d3..883462fb 100644 --- a/contracts/soroban/src/circuit_breaker.rs +++ b/contracts/soroban/src/circuit_breaker.rs @@ -198,7 +198,7 @@ impl CircuitBreakerContract { let info = GuardianInfo { address: guardian.clone(), - role, + role: role.clone(), added_at: env.ledger().timestamp(), active: true, }; @@ -207,7 +207,7 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::Guardians, &guardians); env.events().publish( - (symbol_short!(EVENT_GUARDIAN_ADDED),), + ("cb_guardian_added",), (guardian, role), ); } @@ -237,7 +237,7 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::Guardians, &new_guardians); env.events().publish( - (symbol_short!(EVENT_GUARDIAN_REMOVED),), + ("cb_guardian_removed",), guardian, ); } @@ -274,7 +274,7 @@ impl CircuitBreakerContract { .set(&DataKey::PauseState(pause_id), &pause_state); env.events().publish( - (symbol_short!(EVENT_PAUSE_TRIGGERED),), + ("cb_pause_triggered",), (pause_id, PauseScope::Global, PauseLevel::Full), ); } @@ -302,7 +302,7 @@ impl CircuitBreakerContract { .set(&DataKey::PauseState(pause_id), &pause_state); env.events().publish( - (symbol_short!(EVENT_PAUSE_TRIGGERED),), + ("cb_pause_triggered",), (pause_id, PauseScope::Bridge(bridge_id), PauseLevel::Partial), ); } @@ -330,7 +330,7 @@ impl CircuitBreakerContract { .set(&DataKey::PauseState(pause_id), &pause_state); env.events().publish( - (symbol_short!(EVENT_PAUSE_TRIGGERED),), + ("cb_pause_triggered",), (pause_id, PauseScope::Asset(asset_code), PauseLevel::Warning), ); } @@ -340,7 +340,7 @@ impl CircuitBreakerContract { pub fn request_recovery(env: Env, caller: Address, pause_id: u32) { Self::check_guardian_permission(&env, &caller, GuardianRole::StandardGuardian); - let pause_state = Self::get_pause_state(&env, pause_id); + let pause_state = Self::get_pause_state(env.clone(), pause_id); assert!(pause_state.level != PauseLevel::None, "pause not active"); let mut recovery_requests: Vec = env @@ -359,7 +359,7 @@ impl CircuitBreakerContract { let config = Self::get_config(&env); let request = RecoveryRequest { pause_id, - requested_by: caller, + requested_by: caller.clone(), timestamp: env.ledger().timestamp(), approvals: 1, threshold: config.guardian_threshold, @@ -369,7 +369,7 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::RecoveryRequests, &recovery_requests); env.events().publish( - (symbol_short!(EVENT_RECOVERY_REQUESTED),), + ("cb_recovery_requested",), (pause_id, caller), ); } @@ -384,9 +384,12 @@ impl CircuitBreakerContract { .unwrap_or(Vec::new(&env)); let mut found = false; - for mut req in recovery_requests.iter() { + let len = recovery_requests.len(); + for i in 0..len { + let mut req = recovery_requests.get(i).unwrap(); if req.pause_id == pause_id { req.approvals += 1; + recovery_requests.set(i, req); found = true; break; } @@ -397,7 +400,7 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::RecoveryRequests, &recovery_requests); env.events().publish( - (symbol_short!(EVENT_GUARDIAN_APPROVED),), + ("cb_guardian_approved",), (pause_id, caller, "recovery"), ); } @@ -437,7 +440,7 @@ impl CircuitBreakerContract { env.storage().persistent().remove(&DataKey::PauseState(pause_id)); env.events().publish( - (symbol_short!(EVENT_RECOVERY_EXECUTED),), + ("cb_recovery_executed",), pause_id, ); } @@ -463,7 +466,7 @@ impl CircuitBreakerContract { let config = TriggerConfig { alert_type: alert_type.clone(), threshold, - pause_level, + pause_level: pause_level.clone(), cooldown_period, last_trigger: 0, }; @@ -472,13 +475,11 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::TriggerConfigs, &trigger_configs); env.events().publish( - (symbol_short!(EVENT_TRIGGER_CONFIG_UPDATED),), + ("cb_trigger_updated",), (alert_type, threshold, pause_level), ); } - // ── Whitelist Management ────────────────────────────────────────────────── - pub fn add_to_address_whitelist(env: Env, caller: Address, address: Address) { Self::only_admin(&env, &caller); @@ -489,7 +490,7 @@ impl CircuitBreakerContract { .unwrap_or(Vec::new(&env)); let config = Self::get_config(&env); - assert!(whitelist.len() < config.max_whitelist_size as usize, "whitelist full"); + assert!(whitelist.len() < config.max_whitelist_size, "whitelist full"); // Check if already exists for addr in whitelist.iter() { @@ -502,7 +503,7 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::WhitelistAddresses, &whitelist); env.events().publish( - (symbol_short!(EVENT_WHITELIST_UPDATED),), + ("cb_whitelist_updated",), ("address", address, true), ); } @@ -517,7 +518,7 @@ impl CircuitBreakerContract { .unwrap_or(Vec::new(&env)); let config = Self::get_config(&env); - assert!(whitelist.len() < config.max_whitelist_size as usize, "whitelist full"); + assert!(whitelist.len() < config.max_whitelist_size, "whitelist full"); // Check if already exists for asset in whitelist.iter() { @@ -530,7 +531,7 @@ impl CircuitBreakerContract { env.storage().instance().set(&DataKey::WhitelistAssets, &whitelist); env.events().publish( - (symbol_short!(EVENT_WHITELIST_UPDATED),), + ("cb_whitelist_updated",), ("asset", asset_code, true), ); } @@ -544,7 +545,7 @@ impl CircuitBreakerContract { .unwrap_or(PauseState { scope: PauseScope::Global, level: PauseLevel::None, - triggered_by: Address::from_contract_id(&[0; 32]), + triggered_by: env.current_contract_address(), trigger_reason: String::from_str(&env, ""), timestamp: 0, recovery_deadline: 0, @@ -561,7 +562,7 @@ impl CircuitBreakerContract { .unwrap_or(0); for i in 1..=pause_count { - let pause_state = Self::get_pause_state(&env, i); + let pause_state = Self::get_pause_state(env.clone(), i); if pause_state.level != PauseLevel::None { match (&pause_state.scope, &scope) { (PauseScope::Global, _) => return true, @@ -655,7 +656,8 @@ impl CircuitBreakerContract { #[cfg(test)] mod tests { use super::*; - use soroban_sdk::testutils::{Address as _, Env as _}; + use soroban_sdk::testutils::Address as _; + use soroban_sdk::Env; fn create_test_env() -> Env { let env = Env::default(); @@ -671,47 +673,41 @@ mod tests { (admin, guardian1, guardian2, user) } + fn setup() -> (Env, Address, CircuitBreakerContractClient<'static>, Address, Address, Address, Address) { + let env = create_test_env(); + let (admin, guardian1, guardian2, user) = create_test_addresses(&env); + let contract_id = env.register_contract(None, CircuitBreakerContract); + let client = CircuitBreakerContractClient::new(&env, &contract_id); + (env, contract_id, client, admin, guardian1, guardian2, user) + } + #[test] fn test_initialization() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, _, _, _) = create_test_addresses(&env); + let (env, contract_id, client, admin, _, _, _) = setup(); - contract.initialize( - env.clone(), - admin, - 2, // guardian_threshold - 3600, // recovery_delay_warning - 7200, // recovery_delay_partial - 14400, // recovery_delay_full - 100 // max_whitelist_size - ); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); - // Verify config is stored - assert!(env.storage().instance().has(&DataKey::Config)); + let has_config = env.as_contract(&contract_id, || env.storage().instance().has(&DataKey::Config)); + assert!(has_config); } #[test] #[should_panic(expected = "already initialized")] fn test_double_initialization() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, _, _, _) = create_test_addresses(&env); + let (_env, _contract_id, client, admin, _, _, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.initialize(env, admin, 2, 3600, 7200, 14400, 100); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); } #[test] fn test_add_guardian() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, _, _) = create_test_addresses(&env); + let (_env, _contract_id, client, admin, guardian1, _, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.add_guardian(env.clone(), admin, guardian1.clone(), GuardianRole::StandardGuardian); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_guardian(&admin, &guardian1, &GuardianRole::StandardGuardian); - let guardians = contract.get_guardians(env); + let guardians = client.get_guardians(); assert_eq!(guardians.len(), 1); assert_eq!(guardians.get(0).unwrap().address, guardian1); assert_eq!(guardians.get(0).unwrap().role, GuardianRole::StandardGuardian); @@ -720,134 +716,110 @@ mod tests { #[test] #[should_panic(expected = "not admin")] fn test_add_guardian_non_admin() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, _, user) = create_test_addresses(&env); + let (_env, _contract_id, client, admin, guardian1, _, user) = setup(); - contract.initialize(env.clone(), admin, guardian1.clone(), GuardianRole::StandardGuardian); - contract.add_guardian(env, user, guardian1, GuardianRole::StandardGuardian); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_guardian(&user, &guardian1, &GuardianRole::StandardGuardian); } #[test] fn test_pause_global() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, _, _) = create_test_addresses(&env); + let (env, _contract_id, client, admin, guardian1, _, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.add_guardian(env.clone(), admin, guardian1.clone(), GuardianRole::EmergencyGuardian); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_guardian(&admin, &guardian1, &GuardianRole::EmergencyGuardian); let reason = String::from_str(&env, "Test global pause"); - contract.pause_global(env.clone(), guardian1, reason); + client.pause_global(&guardian1, &reason); - assert!(contract.is_paused(env, PauseScope::Global)); + assert!(client.is_paused(&PauseScope::Global)); } #[test] fn test_pause_bridge() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, _, _) = create_test_addresses(&env); + let (env, _contract_id, client, admin, guardian1, _, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.add_guardian(env.clone(), admin, guardian1.clone(), GuardianRole::StandardGuardian); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_guardian(&admin, &guardian1, &GuardianRole::StandardGuardian); let bridge_id = String::from_str(&env, "test-bridge"); let reason = String::from_str(&env, "Test bridge pause"); - contract.pause_bridge(env.clone(), guardian1, bridge_id.clone(), reason); + client.pause_bridge(&guardian1, &bridge_id, &reason); - assert!(contract.is_paused(env, PauseScope::Bridge(bridge_id))); + assert!(client.is_paused(&PauseScope::Bridge(bridge_id))); } #[test] fn test_pause_asset() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, _, _) = create_test_addresses(&env); + let (env, _contract_id, client, admin, guardian1, _, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.add_guardian(env.clone(), admin, guardian1.clone(), GuardianRole::StandardGuardian); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_guardian(&admin, &guardian1, &GuardianRole::StandardGuardian); let asset_code = String::from_str(&env, "USDC"); let reason = String::from_str(&env, "Test asset pause"); - contract.pause_asset(env.clone(), guardian1, asset_code.clone(), reason); + client.pause_asset(&guardian1, &asset_code, &reason); - assert!(contract.is_paused(env, PauseScope::Asset(asset_code))); + assert!(client.is_paused(&PauseScope::Asset(asset_code))); } #[test] #[should_panic(expected = "insufficient guardian permissions")] fn test_pause_non_guardian() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, _, _, user) = create_test_addresses(&env); + let (env, _contract_id, client, admin, _guardian1, _guardian2, user) = setup(); - contract.initialize(env.clone(), admin, 2, 3600, 7200, 14400, 100); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); let reason = String::from_str(&env, "Test pause"); - contract.pause_global(env, user, reason); + client.pause_global(&user, &reason); } #[test] fn test_recovery_flow() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, guardian2, _) = create_test_addresses(&env); + let (env, _contract_id, client, admin, guardian1, guardian2, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.add_guardian(env.clone(), admin.clone(), guardian1.clone(), GuardianRole::EmergencyGuardian); - contract.add_guardian(env.clone(), admin, guardian2.clone(), GuardianRole::StandardGuardian); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_guardian(&admin, &guardian1, &GuardianRole::EmergencyGuardian); + client.add_guardian(&admin, &guardian2, &GuardianRole::StandardGuardian); - // Pause let reason = String::from_str(&env, "Test pause"); - contract.pause_global(env.clone(), guardian1.clone(), reason); + client.pause_global(&guardian1, &reason); - // Request recovery - contract.request_recovery(env.clone(), guardian2.clone(), 1); + client.request_recovery(&guardian2, &1); + client.approve_recovery(&guardian1, &1); + client.execute_recovery(&guardian2, &1); - // Approve recovery - contract.approve_recovery(env.clone(), guardian1, 1); - - // Execute recovery - contract.execute_recovery(env.clone(), guardian2, 1); - - assert!(!contract.is_paused(env, PauseScope::Global)); + assert!(!client.is_paused(&PauseScope::Global)); } #[test] fn test_whitelist_address() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, _, _, user) = create_test_addresses(&env); + let (_env, _contract_id, client, admin, _, _, user) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); - contract.add_to_address_whitelist(env.clone(), admin, user.clone()); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_to_address_whitelist(&admin, &user); - assert!(contract.is_whitelisted_address(env, user)); + assert!(client.is_whitelisted_address(&user)); } #[test] fn test_whitelist_asset() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, _, _, _) = create_test_addresses(&env); + let (env, _contract_id, client, admin, _, _, _) = setup(); - contract.initialize(env.clone(), admin.clone(), 2, 3600, 7200, 14400, 100); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); let asset_code = String::from_str(&env, "USDC"); - contract.add_asset_to_whitelist(env.clone(), admin, asset_code.clone()); + client.add_asset_to_whitelist(&admin, &asset_code); - assert!(contract.is_whitelisted_asset(env, asset_code)); + assert!(client.is_whitelisted_asset(&asset_code)); } #[test] #[should_panic(expected = "not admin")] fn test_whitelist_non_admin() { - let env = create_test_env(); - let contract = CircuitBreakerContract {}; - let (admin, guardian1, _, user) = create_test_addresses(&env); + let (_env, _contract_id, client, admin, guardian1, _, user) = setup(); - contract.initialize(env.clone(), admin, 2, 3600, 7200, 14400, 100); - contract.add_to_address_whitelist(env, user, guardian1); + client.initialize(&admin, &2, &3600, &7200, &14400, &100); + client.add_to_address_whitelist(&user, &guardian1); } } \ No newline at end of file diff --git a/contracts/soroban/src/lib.rs b/contracts/soroban/src/lib.rs index 1ef1d630..ab48e2f8 100644 --- a/contracts/soroban/src/lib.rs +++ b/contracts/soroban/src/lib.rs @@ -1,3441 +1,7531 @@ #![no_std] + + // governance and insurance_pool are standalone contracts — only compiled for + // tests (native target) to avoid Wasm symbol conflicts with BridgeWatchContract. + #[cfg(test)] + pub mod governance; + pub mod liquidity_pool; + pub mod reputation_system; + pub mod multisig_treasury; + #[cfg(test)] + pub mod insurance_pool; + #[cfg(test)] + pub mod rate_limiter; + #[cfg(test)] + pub mod asset_registry; + pub mod analytics_aggregator; + #[cfg(test)] + pub mod circuit_breaker; + + use soroban_sdk::{contract, contractimpl, contracttype, symbol_short, Address, Env, String, Vec}; + + use liquidity_pool::{ + DailyBucket, ImpermanentLossResult, LiquidityDepth as PoolLiquidityDepth, PoolMetrics, + PoolSnapshot, PoolType, + }; + + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct AssetHealth { + pub asset_code: String, + pub health_score: u32, + pub liquidity_score: u32, + pub price_stability_score: u32, + pub bridge_uptime_score: u32, + + pub paused: bool, + + pub active: bool, + + pub timestamp: u64, + +} + + +/// Normalized severity tier for fast, deterministic aggregation. +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum StatusTier { + Ok, + Low, + Medium, + High, +} + + +/// Aggregated status view for a single monitored asset. +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct AssetStatusRollup { + pub asset_code: String, + pub tier: StatusTier, + pub health_score: u32, + pub has_price_deviation_alert: bool, + pub price_deviation_tier: StatusTier, pub paused: bool, pub active: bool, pub timestamp: u64, } + +/// Aggregated status view for a single tracked bridge. +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct BridgeStatusRollup { + pub bridge_id: String, + pub tier: StatusTier, + pub latest_mismatch_bps: i128, + pub is_critical: bool, + pub timestamp: u64, +} + + +/// Contract-level rollup for cheap reads. +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct ContractStatusRollup { + pub tier: StatusTier, + pub asset_ok: u32, + pub asset_low: u32, + pub asset_medium: u32, + pub asset_high: u32, + pub bridge_ok: u32, + pub bridge_low: u32, + pub bridge_medium: u32, + pub bridge_high: u32, + pub timestamp: u64, +} + + + /// Represents a single entry in a batch health score submission. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct HealthScoreBatch { + pub asset_code: String, + pub health_score: u32, + pub liquidity_score: u32, + pub price_stability_score: u32, + pub bridge_uptime_score: u32, + } + + /// Configurable weights for health score calculation. + /// + /// Each weight is expressed as a percentage (0–100). The three weights must + /// sum to exactly 100. Default weights are: liquidity 30 %, price stability + /// 40 %, bridge uptime 30 %. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct HealthWeights { + /// Weight assigned to the liquidity component (default 30). + pub liquidity_weight: u32, + /// Weight assigned to the price stability component (default 40). + pub price_stability_weight: u32, + /// Weight assigned to the bridge uptime component (default 30). + pub bridge_uptime_weight: u32, + /// Methodology version identifier for auditability. + pub version: u32, + } + + /// Result of an automated health score calculation. + /// + /// Returned by `calculate_health_score()` and stored alongside the + /// `AssetHealth` record when using `submit_calculated_health()`. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct HealthScoreResult { + /// Composite health score (0–100). + pub composite_score: u32, + /// Liquidity component score that was used (0–100). + pub liquidity_score: u32, + /// Price stability component score that was used (0–100). + pub price_stability_score: u32, + /// Bridge uptime component score that was used (0–100). + pub bridge_uptime_score: u32, + /// Weights that were applied during calculation. + pub weights: HealthWeights, + /// Ledger timestamp when the calculation was performed. + pub timestamp: u64, + } + + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct PriceRecord { + pub asset_code: String, + pub price: i128, + pub source: String, + pub timestamp: u64, + } + + /// Severity level of a recorded price deviation alert. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub enum DeviationSeverity { + /// Deviation exceeds the low threshold (default > 2 %). + Low, + /// Deviation exceeds the medium threshold (default > 5 %). + Medium, + /// Deviation exceeds the high threshold (default > 10 %). + High, + } + + /// A price deviation alert stored on-chain for an asset. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct DeviationAlert { + pub asset_code: String, + pub current_price: i128, + pub average_price: i128, + /// Deviation expressed in basis points (1 bp = 0.01 %). + pub deviation_bps: i128, + pub severity: DeviationSeverity, + pub timestamp: u64, + } + + /// Per-asset configurable deviation thresholds (in basis points). + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct DeviationThreshold { + /// Low-severity trigger; default 200 bps (2 %). + pub low_bps: i128, + /// Medium-severity trigger; default 500 bps (5 %). + pub medium_bps: i128, + /// High-severity trigger; default 1 000 bps (10 %). + pub high_bps: i128, + } + + /// Records a supply mismatch between Stellar and a source chain for a bridge. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct SupplyMismatch { + pub bridge_id: String, + pub asset_code: String, + pub stellar_supply: i128, + pub source_chain_supply: i128, + /// Mismatch expressed in basis points (1 bp = 0.01 %). + pub mismatch_bps: i128, + /// `true` when `mismatch_bps` is at or above the configured threshold. + pub is_critical: bool, + pub timestamp: u64, + } + + /// Aggregated liquidity depth for an asset pair across multiple DEX venues. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct LiquidityDepth { + /// Asset pair identifier (for example, "USDC/XLM"). + pub asset_pair: String, + /// Total aggregated liquidity across all reported venues. + pub total_liquidity: i128, + /// Available liquidity within 0.1 % price impact. + pub depth_0_1_pct: i128, + /// Available liquidity within 0.5 % price impact. + pub depth_0_5_pct: i128, + /// Available liquidity within 1 % price impact. + pub depth_1_pct: i128, + /// Available liquidity within 5 % price impact. + pub depth_5_pct: i128, + /// Venue names contributing to the aggregate snapshot. + pub sources: Vec, + /// Ledger timestamp when this aggregate was recorded. + pub timestamp: u64, + } + /// Permission roles that can be assigned to admin addresses. + /// + /// - `SuperAdmin` – all permissions, can manage other roles. + /// - `HealthSubmitter` – may call `submit_health()` and `submit_health_batch()`. + /// - `PriceSubmitter` – may call `submit_price()` only. + /// - `AssetManager` – may call `register_asset()` only. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub enum AdminRole { + SuperAdmin, + HealthSubmitter, + PriceSubmitter, + AssetManager, + } + + /// Pairs an address with a single granted role. + #[contracttype] + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct RoleAssignment { + pub address: Address, + pub role: AdminRole, + } + + #[contracttype] + pub enum DataKey { + Admin, + AssetHealth(String), + PriceRecord(String), + MonitoredAssets, + /// Latest deviation alert recorded for an asset. + DeviationAlert(String), + /// Admin-configured deviation thresholds for an asset. + DeviationThreshold(String), + /// Historical supply mismatch records for a bridge (Vec). + SupplyMismatches(String), + /// Global critical mismatch threshold in basis points (default 10 bps / 0.1 %). + MismatchThreshold, + /// All bridge IDs that have at least one mismatch record (Vec). + BridgeIds, + /// Roles held by a specific address (Vec). + RoleKey(Address), + /// Global list of all role assignments for enumeration. + RolesList, + /// Current aggregated liquidity depth for an asset pair. + LiquidityDepthCurrent(String), + /// Historical aggregated liquidity depth snapshots for an asset pair. + LiquidityDepthHistory(String), + /// Registered asset pairs with liquidity depth data. + LiquidityPairs, + /// Historical price records for an asset (Vec). + PriceHistory(String), -} -#[contract] -pub struct BridgeWatchContract; + /// Stored health weights for deterministic score calculation. + + HealthWeights, + + /// Last calculated health score details for an asset. + + HealthScoreResult(String), + + /// Per-asset aggregated status rollup. + + AssetStatusRollup(String), + + /// Per-bridge aggregated status rollup. + + BridgeStatusRollup(String), + + /// Contract-level aggregated status rollup. + + ContractStatusRollup, + +} + + + +#[contract] + +pub struct BridgeWatchContract; + + #[contractimpl] + impl BridgeWatchContract { + /// Initialize the contract with an admin address + pub fn initialize(env: Env, admin: Address) { + admin.require_auth(); + env.storage().instance().set(&DataKey::Admin, &admin); + let assets: Vec = Vec::new(&env); + env.storage() + .instance() + .set(&DataKey::MonitoredAssets, &assets); + + } + + + pub fn get_asset_status_rollup(env: Env, asset_code: String) -> Option { + + env.storage() + + .persistent() + + .get(&DataKey::AssetStatusRollup(asset_code)) + + } + + + pub fn get_bridge_status_rollup(env: Env, bridge_id: String) -> Option { + + env.storage() + + .persistent() + + .get(&DataKey::BridgeStatusRollup(bridge_id)) + + } + + + pub fn get_contract_status_rollup(env: Env) -> ContractStatusRollup { + + env.storage() + + .persistent() + + .get(&DataKey::ContractStatusRollup) + + .unwrap_or(ContractStatusRollup { + + tier: StatusTier::Ok, + + asset_ok: 0, + + asset_low: 0, + + asset_medium: 0, + + asset_high: 0, + + bridge_ok: 0, + + bridge_low: 0, + + bridge_medium: 0, + + bridge_high: 0, + + timestamp: env.ledger().timestamp(), + + }) + } + + /// Submit a health score for a monitored asset. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or a + /// `HealthSubmitter`. Backward compatible: the original admin address + /// requires no explicit role assignment. + pub fn submit_health( + env: Env, + caller: Address, + asset_code: String, + health_score: u32, + liquidity_score: u32, + price_stability_score: u32, + bridge_uptime_score: u32, + ) { + Self::check_permission(&env, &caller, AdminRole::HealthSubmitter); + let status = Self::load_asset_health(&env, &asset_code); + Self::assert_asset_accepting_submissions(&status); + + let record = AssetHealth { + asset_code: asset_code.clone(), + health_score, + liquidity_score, + price_stability_score, + bridge_uptime_score, + paused: status.paused, + active: status.active, + timestamp: env.ledger().timestamp(), + }; + + env.storage() + .persistent() + .set(&DataKey::AssetHealth(asset_code.clone()), &record); + + Self::update_asset_rollup(&env, &asset_code); + + + env.events() + .publish((symbol_short!("health_up"), asset_code), health_score); + } + + /// Submit health scores for multiple assets in a single transaction. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or a + /// `HealthSubmitter`. Accepts up to 20 records per call, all stamped with + /// the same ledger timestamp. A `health_up` event is emitted per asset. + pub fn submit_health_batch(env: Env, caller: Address, records: Vec) { + Self::check_permission(&env, &caller, AdminRole::HealthSubmitter); + + if records.len() > 20 { + panic!("batch size exceeds the maximum of 20 records"); + } + + let timestamp = env.ledger().timestamp(); + + for item in records.iter() { + let status = Self::load_asset_health(&env, &item.asset_code); + Self::assert_asset_accepting_submissions(&status); + + let record = AssetHealth { + asset_code: item.asset_code.clone(), + health_score: item.health_score, + liquidity_score: item.liquidity_score, + price_stability_score: item.price_stability_score, + bridge_uptime_score: item.bridge_uptime_score, + paused: status.paused, + active: status.active, + timestamp, + }; + + env.storage() + .persistent() + .set(&DataKey::AssetHealth(item.asset_code.clone()), &record); + + Self::update_asset_rollup(&env, &item.asset_code); + + + env.events().publish( + (symbol_short!("health_up"), item.asset_code.clone()), + item.health_score, + ); + } + } + + /// Submit a price record for an asset. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or a + /// `PriceSubmitter`. The record is stored as the latest price and + /// also appended to the asset's historical price series for + /// time-range queries via [`get_price_history`]. + pub fn submit_price( + env: Env, + caller: Address, + asset_code: String, + price: i128, + source: String, + ) { + Self::check_permission(&env, &caller, AdminRole::PriceSubmitter); + let status = Self::load_asset_health(&env, &asset_code); + Self::assert_asset_accepting_submissions(&status); + + let record = PriceRecord { + asset_code: asset_code.clone(), + price, + source, + timestamp: env.ledger().timestamp(), + }; + + env.storage() + .persistent() + .set(&DataKey::PriceRecord(asset_code.clone()), &record); + + env.events() + .publish((symbol_short!("price_up"), asset_code), price); + } + + /// Get the latest health record for an asset + pub fn get_health(env: Env, asset_code: String) -> Option { + env.storage() + .persistent() + .get(&DataKey::AssetHealth(asset_code)) + } + + /// Get the latest price record for an asset + pub fn get_price(env: Env, asset_code: String) -> Option { + env.storage() + .persistent() + .get(&DataKey::PriceRecord(asset_code)) + } + + /// Register a new asset for monitoring. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or an + /// `AssetManager`. + pub fn register_asset(env: Env, caller: Address, asset_code: String) { + Self::check_permission(&env, &caller, AdminRole::AssetManager); + + let mut assets: Vec = env + .storage() + .instance() + .get(&DataKey::MonitoredAssets) + .unwrap(); + + for existing in assets.iter() { + if existing == asset_code { + panic!("asset is already registered"); + } + } + + let status = AssetHealth { + asset_code: asset_code.clone(), + health_score: 0, + liquidity_score: 0, + price_stability_score: 0, + bridge_uptime_score: 0, + paused: false, + active: true, + timestamp: env.ledger().timestamp(), + }; + + env.storage() + .persistent() + .set(&DataKey::AssetHealth(asset_code.clone()), &status); + + Self::update_asset_rollup(&env, &asset_code); + + + assets.push_back(asset_code.clone()); + env.storage() + .instance() + .set(&DataKey::MonitoredAssets, &assets); + + env.events() + .publish((symbol_short!("asset_reg"), asset_code), true); + } + + /// Temporarily pause monitoring for an asset. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or an + /// `AssetManager`. + pub fn pause_asset(env: Env, caller: Address, asset_code: String) { + Self::check_permission(&env, &caller, AdminRole::AssetManager); + let mut status = Self::load_asset_health(&env, &asset_code); + if !status.active { + panic!("cannot pause a deregistered asset"); + } + status.paused = true; + status.timestamp = env.ledger().timestamp(); + env.storage() + .persistent() + .set(&DataKey::AssetHealth(asset_code.clone()), &status); + env.events() + .publish((symbol_short!("asset_pau"), asset_code), true); + } + + /// Resume monitoring for a paused asset. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or an + /// `AssetManager`. + pub fn unpause_asset(env: Env, caller: Address, asset_code: String) { + Self::check_permission(&env, &caller, AdminRole::AssetManager); + let mut status = Self::load_asset_health(&env, &asset_code); + if !status.active { + panic!("cannot unpause a deregistered asset"); + } + status.paused = false; + status.timestamp = env.ledger().timestamp(); + env.storage() + .persistent() + .set(&DataKey::AssetHealth(asset_code.clone()), &status); + env.events() + .publish((symbol_short!("asset_unp"), asset_code), true); + } + + /// Permanently deregister an asset while retaining historical data. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or an + /// `AssetManager`. + pub fn deregister_asset(env: Env, caller: Address, asset_code: String) { + Self::check_permission(&env, &caller, AdminRole::AssetManager); + let mut status = Self::load_asset_health(&env, &asset_code); + status.active = false; + status.paused = false; + status.timestamp = env.ledger().timestamp(); + env.storage() + .persistent() + .set(&DataKey::AssetHealth(asset_code.clone()), &status); + env.events() + .publish((symbol_short!("asset_del"), asset_code), false); + } + + /// Get all monitored assets + pub fn get_monitored_assets(env: Env) -> Vec { + let assets: Vec = env.storage() + .instance() + .get(&DataKey::MonitoredAssets) + .unwrap(); + + let mut active_assets = Vec::new(&env); + for asset_code in assets.iter() { + let status: Option = env + .storage() + .persistent() + .get(&DataKey::AssetHealth(asset_code.clone())); + + match status { + Some(record) => { + if record.active && !record.paused { + active_assets.push_back(asset_code); + } + } + None => active_assets.push_back(asset_code), + } + } + + active_assets + } + + // ----------------------------------------------------------------------- + // Price Deviation Detection (issue #23) + // ----------------------------------------------------------------------- + + /// Set configurable deviation thresholds for an asset (admin only). + /// + /// All thresholds are expressed in basis points (1 bp = 0.01 %). + /// Defaults used when none are configured: Low 200 bps, Medium 500 bps, + /// High 1 000 bps. + pub fn set_deviation_threshold( + env: Env, + asset_code: String, + low_bps: i128, + medium_bps: i128, + high_bps: i128, + ) { + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + admin.require_auth(); + + let threshold = DeviationThreshold { + low_bps, + medium_bps, + high_bps, + }; + env.storage() + .persistent() + .set(&DataKey::DeviationThreshold(asset_code.clone()), &threshold); + + env.events() + .publish((symbol_short!("thresh_up"), asset_code), low_bps); + } + + /// Compare `current_price` against the last recorded [`PriceRecord`] for + /// the asset and store a [`DeviationAlert`] when the deviation exceeds a + /// configured threshold. + /// + /// Returns the alert when a threshold is breached, `None` otherwise. + /// Severity levels (default thresholds): + /// - **Low** – deviation > 200 bps (2 %) + /// - **Medium** – deviation > 500 bps (5 %) + /// - **High** – deviation > 1 000 bps (10 %) + pub fn check_price_deviation( + env: Env, + asset_code: String, + current_price: i128, + ) -> Option { + let reference: PriceRecord = match env + .storage() + .persistent() + .get(&DataKey::PriceRecord(asset_code.clone())) + { + Some(r) => r, + None => return None, + }; + + let average_price = reference.price; + if average_price == 0 { + return None; + } + + let diff = if current_price > average_price { + current_price - average_price + } else { + average_price - current_price + }; + let deviation_bps = diff * 10_000 / average_price; + + let threshold: DeviationThreshold = env + .storage() + .persistent() + .get(&DataKey::DeviationThreshold(asset_code.clone())) + .unwrap_or(DeviationThreshold { + low_bps: 200, + medium_bps: 500, + high_bps: 1_000, + }); + + let severity = if deviation_bps > threshold.high_bps { + DeviationSeverity::High + } else if deviation_bps > threshold.medium_bps { + DeviationSeverity::Medium + } else if deviation_bps > threshold.low_bps { + DeviationSeverity::Low + } else { + return None; + }; + + let alert = DeviationAlert { + asset_code: asset_code.clone(), + current_price, + average_price, + deviation_bps, + severity, + timestamp: env.ledger().timestamp(), + }; + + env.storage() + .persistent() + .set(&DataKey::DeviationAlert(asset_code.clone()), &alert); + + Self::update_asset_rollup(&env, &asset_code); + + + env.events() + .publish((symbol_short!("price_dev"), asset_code), deviation_bps); + + Some(alert) + } + + /// Get the latest stored deviation alert for an asset. + /// + /// Returns `None` if no alert has been recorded. + pub fn get_deviation_alerts(env: Env, asset_code: String) -> Option { + env.storage() + .persistent() + .get(&DataKey::DeviationAlert(asset_code)) + } + + // ----------------------------------------------------------------------- + // Bridge supply mismatch tracking (issue #28) + // ----------------------------------------------------------------------- + + /// Set the global critical mismatch threshold in basis points (admin only). + /// + /// Mismatches at or above this value are flagged as critical. + /// Default is 10 bps (0.1 %). + pub fn set_mismatch_threshold(env: Env, threshold_bps: i128) { + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + admin.require_auth(); + env.storage() + .instance() + .set(&DataKey::MismatchThreshold, &threshold_bps); + + env.events() + .publish((symbol_short!("thresh_up"), symbol_short!("mismatch")), threshold_bps); + } + + /// Record a supply mismatch for a bridge asset (admin only). + /// + /// Calculates `mismatch_bps` as + /// `|stellar_supply - source_chain_supply| * 10_000 / source_chain_supply` + /// and sets `is_critical` when the value meets or exceeds the configured + /// threshold (default 10 bps / 0.1 %). Each call appends to the bridge's + /// historical record, enabling trend analysis over time. + pub fn record_supply_mismatch( + env: Env, + bridge_id: String, + asset_code: String, + stellar_supply: i128, + source_chain_supply: i128, + ) { + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + admin.require_auth(); + + let mismatch_bps = if source_chain_supply > 0 { + let diff = if stellar_supply > source_chain_supply { + stellar_supply - source_chain_supply + } else { + source_chain_supply - stellar_supply + }; + diff * 10_000 / source_chain_supply + } else { + 0 + }; + + let threshold_bps: i128 = env + .storage() + .instance() + .get(&DataKey::MismatchThreshold) + .unwrap_or(10); + + let is_critical = mismatch_bps >= threshold_bps; + + let record = SupplyMismatch { + bridge_id: bridge_id.clone(), + asset_code, + stellar_supply, + source_chain_supply, + mismatch_bps, + is_critical, + timestamp: env.ledger().timestamp(), + }; + + let mut mismatches: Vec = env + .storage() + .persistent() + .get(&DataKey::SupplyMismatches(bridge_id.clone())) + .unwrap_or_else(|| Vec::new(&env)); + mismatches.push_back(record); + env.storage() + .persistent() + .set(&DataKey::SupplyMismatches(bridge_id.clone()), &mismatches); + + Self::update_bridge_rollup(&env, &bridge_id, mismatch_bps, is_critical); + + + // Track bridge ID for cross-bridge queries + let mut bridge_ids: Vec = env + .storage() + .instance() + .get(&DataKey::BridgeIds) + .unwrap_or_else(|| Vec::new(&env)); + let mut found = false; + for b in bridge_ids.iter() { + if b == bridge_id { + found = true; + break; + } + } + if !found { + bridge_ids.push_back(bridge_id.clone()); + env.storage() + .instance() + .set(&DataKey::BridgeIds, &bridge_ids); + } + + env.events() + .publish((symbol_short!("supply_mm"), bridge_id), mismatch_bps); + } + + /// Return all recorded supply mismatches for a bridge. Public read access. + pub fn get_supply_mismatches(env: Env, bridge_id: String) -> Vec { + env.storage() + .persistent() + .get(&DataKey::SupplyMismatches(bridge_id)) + .unwrap_or_else(|| Vec::new(&env)) + } + + /// Return all critical mismatches across every tracked bridge. Public read access. + pub fn get_critical_mismatches(env: Env) -> Vec { + let bridge_ids: Vec = env + .storage() + .instance() + .get(&DataKey::BridgeIds) + .unwrap_or_else(|| Vec::new(&env)); + + let mut critical: Vec = Vec::new(&env); + for bridge_id in bridge_ids.iter() { + let mismatches: Vec = env + .storage() + .persistent() + .get(&DataKey::SupplyMismatches(bridge_id.clone())) + .unwrap_or_else(|| Vec::new(&env)); + for m in mismatches.iter() { + if m.is_critical { + critical.push_back(m); + } + } + } + critical + } + + // ----------------------------------------------------------------------- + // Multi-DEX liquidity depth tracking (issue #31) + // ----------------------------------------------------------------------- + + /// Record aggregated liquidity depth for a supported asset pair. + /// + /// This stores the latest cross-DEX liquidity snapshot as well as + /// appending it to the pair's historical series for trend analysis. + /// + /// Supported Phase 1 pairs are: + /// - `USDC/XLM` + /// - `EURC/XLM` + /// - `PYUSD/XLM` + /// - `FOBXX/USDC` + /// + /// # Panics + /// Panics when: + /// - the caller is not the contract admin + /// - the asset pair is not supported in Phase 1 + /// - any liquidity value is negative + /// - `sources` is empty + /// - liquidity depth levels are inconsistent + pub fn record_liquidity_depth( + env: Env, + asset_pair: String, + total_liquidity: i128, + depth_0_1_pct: i128, + depth_0_5_pct: i128, + depth_1_pct: i128, + depth_5_pct: i128, + sources: Vec, + ) { + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + admin.require_auth(); + + Self::validate_liquidity_depth_input( + &env, + &asset_pair, + total_liquidity, + depth_0_1_pct, + depth_0_5_pct, + depth_1_pct, + depth_5_pct, + &sources, + ); + + let record = LiquidityDepth { + asset_pair: asset_pair.clone(), + total_liquidity, + depth_0_1_pct, + depth_0_5_pct, + depth_1_pct, + depth_5_pct, + sources, + timestamp: env.ledger().timestamp(), + }; + + env.storage() + .persistent() + .set(&DataKey::LiquidityDepthCurrent(asset_pair.clone()), &record); + + let mut history: Vec = env + .storage() + .persistent() + .get(&DataKey::LiquidityDepthHistory(asset_pair.clone())) + .unwrap_or_else(|| Vec::new(&env)); + history.push_back(record); + env.storage().persistent().set( + &DataKey::LiquidityDepthHistory(asset_pair.clone()), + &history, + ); + + let mut pairs: Vec = env + .storage() + .instance() + .get(&DataKey::LiquidityPairs) + .unwrap_or_else(|| Vec::new(&env)); + + let mut found = false; + for pair in pairs.iter() { + if pair == asset_pair { + found = true; + break; + } + } + + if !found { + pairs.push_back(asset_pair.clone()); + env.storage() + .instance() + .set(&DataKey::LiquidityPairs, &pairs); + } + + env.events() + .publish((symbol_short!("liq_chg"), asset_pair), total_liquidity); + } + + /// Return the latest aggregated liquidity depth for an asset pair. + /// + /// Public read access. + pub fn get_aggregated_liquidity_depth( + env: Env, + asset_pair: String, + ) -> Option { + env.storage() + .persistent() + .get(&DataKey::LiquidityDepthCurrent(asset_pair)) + } + + /// Return historical liquidity depth snapshots for an asset pair. + /// + /// Public read access. Returned records are ordered by insertion time and + /// filtered to the inclusive timestamp range `[from_timestamp, to_timestamp]`. + pub fn get_liquidity_history( + env: Env, + asset_pair: String, + from_timestamp: u64, + to_timestamp: u64, + ) -> Vec { + let history: Vec = env + .storage() + .persistent() + .get(&DataKey::LiquidityDepthHistory(asset_pair)) + .unwrap_or_else(|| Vec::new(&env)); + + let mut filtered = Vec::new(&env); + for snapshot in history.iter() { + if snapshot.timestamp >= from_timestamp && snapshot.timestamp <= to_timestamp { + filtered.push_back(snapshot); + } + } + + filtered + } + + /// Return the latest aggregated liquidity depth for all tracked asset pairs. + /// + /// Public read access. + pub fn get_all_liquidity_depths(env: Env) -> Vec { + let pairs: Vec = env + .storage() + .instance() + .get(&DataKey::LiquidityPairs) + .unwrap_or_else(|| Vec::new(&env)); + + let mut records = Vec::new(&env); + for pair in pairs.iter() { + let current: Option = env + .storage() + .persistent() + .get(&DataKey::LiquidityDepthCurrent(pair)); + if let Some(record) = current { + records.push_back(record); + } + } + + records + } + // Multi-admin role management (issue #25) + // ----------------------------------------------------------------------- + + /// Grant a role to `grantee` (SuperAdmin or original admin only). + /// + /// Duplicate grants are silently ignored. The original admin address set + /// via `initialize()` is implicitly treated as SuperAdmin and does not + /// require an explicit role entry. + pub fn grant_role(env: Env, granter: Address, grantee: Address, role: AdminRole) { + granter.require_auth(); + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + let authorized = + granter == admin || Self::has_role_internal(&env, &granter, AdminRole::SuperAdmin); + if !authorized { + panic!("only SuperAdmin can grant roles"); + } + + let mut roles: Vec = env + .storage() + .persistent() + .get(&DataKey::RoleKey(grantee.clone())) + .unwrap_or_else(|| Vec::new(&env)); + + for r in roles.iter() { + if r == role { + return; // already granted + } + } + roles.push_back(role.clone()); + env.storage() + .persistent() + .set(&DataKey::RoleKey(grantee.clone()), &roles); + + let mut assignments: Vec = env + .storage() + .persistent() + .get(&DataKey::RolesList) + .unwrap_or_else(|| Vec::new(&env)); + assignments.push_back(RoleAssignment { + address: grantee.clone(), + role: role.clone(), + }); + env.storage() + .persistent() + .set(&DataKey::RolesList, &assignments); + + env.events() + .publish((symbol_short!("role_grnt"), grantee), role); + } + + /// Revoke a specific role from `target` (SuperAdmin or original admin only). + pub fn revoke_role(env: Env, revoker: Address, target: Address, role: AdminRole) { + revoker.require_auth(); + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + let authorized = + revoker == admin || Self::has_role_internal(&env, &revoker, AdminRole::SuperAdmin); + if !authorized { + panic!("only SuperAdmin can revoke roles"); + } + + let roles: Vec = env + .storage() + .persistent() + .get(&DataKey::RoleKey(target.clone())) + .unwrap_or_else(|| Vec::new(&env)); + + let mut updated: Vec = Vec::new(&env); + for r in roles.iter() { + if r != role { + updated.push_back(r); + } + } + env.storage() + .persistent() + .set(&DataKey::RoleKey(target.clone()), &updated); + + let assignments: Vec = env + .storage() + .persistent() + .get(&DataKey::RolesList) + .unwrap_or_else(|| Vec::new(&env)); + + let mut updated_assignments: Vec = Vec::new(&env); + for a in assignments.iter() { + if !(a.address == target && a.role == role) { + updated_assignments.push_back(a); + } + } + env.storage() + .persistent() + .set(&DataKey::RolesList, &updated_assignments); + + env.events() + .publish((symbol_short!("role_revk"), target), role); + } + + /// Return `true` if `address` holds `role`. + /// + /// Public read — no authorisation required. + pub fn has_role(env: Env, address: Address, role: AdminRole) -> bool { + Self::has_role_internal(&env, &address, role) + } + + /// Return all active role assignments. Public read. + pub fn get_admin_roles(env: Env) -> Vec { + env.storage() + .persistent() + .get(&DataKey::RolesList) + .unwrap_or_else(|| Vec::new(&env)) + } + + // ----------------------------------------------------------------------- + // Private helpers + // ----------------------------------------------------------------------- + + /// Verify that `caller` is authorised to perform an operation requiring + /// `required_role`. The original admin address always passes. Any address + /// with `SuperAdmin` or the specific `required_role` also passes. + fn check_permission(env: &Env, caller: &Address, required_role: AdminRole) { + caller.require_auth(); + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + if *caller == admin { + return; + } + let has_super = Self::has_role_internal(env, caller, AdminRole::SuperAdmin); + let has_required = Self::has_role_internal(env, caller, required_role); + if !has_super && !has_required { + panic!("unauthorized: caller does not have the required role"); + } + } + + /// Internal role lookup (no auth check). + fn has_role_internal(env: &Env, address: &Address, role: AdminRole) -> bool { + let roles: Vec = env + .storage() + .persistent() + .get(&DataKey::RoleKey(address.clone())) + .unwrap_or_else(|| Vec::new(env)); + for r in roles.iter() { + if r == role { + return true; + } + } + false + } + + fn validate_liquidity_depth_input( + env: &Env, + asset_pair: &String, + total_liquidity: i128, + depth_0_1_pct: i128, + depth_0_5_pct: i128, + depth_1_pct: i128, + depth_5_pct: i128, + sources: &Vec, + ) { + if !Self::is_supported_liquidity_pair(env, asset_pair) { + panic!("unsupported asset pair"); + } + if total_liquidity < 0 + || depth_0_1_pct < 0 + || depth_0_5_pct < 0 + || depth_1_pct < 0 + || depth_5_pct < 0 + { + panic!("liquidity values must be non-negative"); + } + if sources.len() == 0 { + panic!("at least one liquidity source is required"); + } + if depth_0_1_pct > depth_0_5_pct || depth_0_5_pct > depth_1_pct || depth_1_pct > depth_5_pct + { + panic!("liquidity depth levels must be non-decreasing"); + } + if depth_5_pct > total_liquidity { + panic!("liquidity depth cannot exceed total liquidity"); + } + } + + fn is_supported_liquidity_pair(env: &Env, asset_pair: &String) -> bool { + *asset_pair == String::from_str(env, "USDC/XLM") + || *asset_pair == String::from_str(env, "EURC/XLM") + || *asset_pair == String::from_str(env, "PYUSD/XLM") + || *asset_pair == String::from_str(env, "FOBXX/USDC") + } + + fn load_asset_health(env: &Env, asset_code: &String) -> AssetHealth { + env.storage() + .persistent() + .get(&DataKey::AssetHealth(asset_code.clone())) + .unwrap_or_else(|| panic!("asset is not registered")) + } + + fn assert_asset_accepting_submissions(record: &AssetHealth) { + if !record.active { + panic!("asset is deregistered"); + } + if record.paused { + panic!("asset monitoring is paused"); + } + } - // ----------------------------------------------------------------------- - // Liquidity Pool Monitor - // ----------------------------------------------------------------------- - /// Record a new liquidity pool state snapshot (admin only). - /// - /// Writes the snapshot into a gas-optimised ring buffer, updates the - /// corresponding daily aggregation bucket, and emits events when - /// significant liquidity changes are detected. - pub fn record_pool_state( - env: Env, - pool_id: String, - reserve_a: i128, - reserve_b: i128, - total_shares: i128, - volume: i128, - fees: i128, - pool_type: PoolType, - ) { - let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); - admin.require_auth(); - liquidity_pool::record_pool_state( - &env, - pool_id, - reserve_a, - reserve_b, - total_shares, - volume, - fees, - pool_type, - ); - } + fn tier_rank(tier: &StatusTier) -> u32 { - /// Calculate aggregated pool metrics over a time window. - /// - /// Returns volume, average depth, price change, fee APR, etc. - /// for the specified `window_secs` lookback period. - pub fn calculate_pool_metrics(env: Env, pool_id: String, window_secs: u64) -> PoolMetrics { - liquidity_pool::calculate_pool_metrics(&env, pool_id, window_secs) - } + match tier { - /// Retrieve historical pool snapshots within a time range. - /// - /// Public read access — no authorisation required. - pub fn get_pool_history( - env: Env, - pool_id: String, - from_timestamp: u64, - to_timestamp: u64, - ) -> Vec { - liquidity_pool::get_pool_history(&env, pool_id, from_timestamp, to_timestamp) - } + StatusTier::Ok => 0, - /// Calculate impermanent loss for an LP position. - /// - /// Given the `entry_price` at which a position was opened and its - /// `initial_value`, returns the current IL percentage, position value, - /// and HODL comparison value. - pub fn calculate_impermanent_loss( - env: Env, - pool_id: String, - entry_price: i128, - initial_value: i128, - ) -> ImpermanentLossResult { - liquidity_pool::calculate_impermanent_loss(&env, pool_id, entry_price, initial_value) - } + StatusTier::Low => 1, - /// Get current liquidity depth information for a pool. - /// - /// Returns reserve amounts, total value locked, and a depth score - /// from 0 to 100. - pub fn get_liquidity_depth(env: Env, pool_id: String) -> PoolLiquidityDepth { - liquidity_pool::get_liquidity_depth(&env, pool_id) - } + StatusTier::Medium => 2, - /// Get daily aggregated buckets for a pool within a time range. - /// - /// Returns OHLC price data, volume, fees, and average reserves - /// per day. Public read access. - pub fn get_daily_history( - env: Env, - pool_id: String, - from_timestamp: u64, - to_timestamp: u64, - ) -> Vec { - liquidity_pool::get_daily_history(&env, pool_id, from_timestamp, to_timestamp) - } + StatusTier::High => 3, + + } - /// Get all registered liquidity pool IDs. - pub fn get_registered_pools(env: Env) -> Vec { - liquidity_pool::get_registered_pools(&env) } - // ----------------------------------------------------------------------- - // Automated health score calculation (issue #26) - // ----------------------------------------------------------------------- - /// Set configurable weights used by the automated health score calculation. - /// + fn max_tier(a: StatusTier, b: StatusTier) -> StatusTier { + + if Self::tier_rank(&a) >= Self::tier_rank(&b) { + + a + + } else { + + b + + } + + } + + + fn health_to_tier(score: u32) -> StatusTier { + + if score >= 80 { + + StatusTier::Ok + + } else if score >= 60 { + + StatusTier::Low + + } else if score >= 40 { + + StatusTier::Medium + + } else { + + StatusTier::High + + } + + } + + + fn deviation_to_tier(alert: &Option) -> (bool, StatusTier) { + + match alert { + + None => (false, StatusTier::Ok), + + Some(a) => match a.severity { + + DeviationSeverity::Low => (true, StatusTier::Low), + + DeviationSeverity::Medium => (true, StatusTier::Medium), + + DeviationSeverity::High => (true, StatusTier::High), + + }, + + } + + } + + + fn compute_contract_tier_from_counts(rollup: &ContractStatusRollup) -> StatusTier { + + if rollup.asset_high > 0 || rollup.bridge_high > 0 { + + StatusTier::High + + } else if rollup.asset_medium > 0 || rollup.bridge_medium > 0 { + + StatusTier::Medium + + } else if rollup.asset_low > 0 || rollup.bridge_low > 0 { + + StatusTier::Low + + } else { + + StatusTier::Ok + + } + + } + + + fn bump_contract_counts_for_asset(env: &Env, prev: Option, next: StatusTier) { + + let mut rollup: ContractStatusRollup = env + + .storage() + + .persistent() + + .get(&DataKey::ContractStatusRollup) + + .unwrap_or(ContractStatusRollup { + + tier: StatusTier::Ok, + + asset_ok: 0, + + asset_low: 0, + + asset_medium: 0, + + asset_high: 0, + + bridge_ok: 0, + + bridge_low: 0, + + bridge_medium: 0, + + bridge_high: 0, + + timestamp: env.ledger().timestamp(), + + }); + + + if let Some(p) = prev { + + match p { + + StatusTier::Ok => rollup.asset_ok = rollup.asset_ok.saturating_sub(1), + + StatusTier::Low => rollup.asset_low = rollup.asset_low.saturating_sub(1), + + StatusTier::Medium => rollup.asset_medium = rollup.asset_medium.saturating_sub(1), + + StatusTier::High => rollup.asset_high = rollup.asset_high.saturating_sub(1), + + } + + } + + + match next { + + StatusTier::Ok => rollup.asset_ok += 1, + + StatusTier::Low => rollup.asset_low += 1, + + StatusTier::Medium => rollup.asset_medium += 1, + + StatusTier::High => rollup.asset_high += 1, + + } + + + rollup.tier = Self::compute_contract_tier_from_counts(&rollup); + + rollup.timestamp = env.ledger().timestamp(); + + + env.storage() + + .persistent() + + .set(&DataKey::ContractStatusRollup, &rollup); + + + env.events().publish((symbol_short!("ctr_st"),), rollup.tier.clone()); + + } + + + fn bump_contract_counts_for_bridge(env: &Env, prev: Option, next: StatusTier) { + + let mut rollup: ContractStatusRollup = env + + .storage() + + .persistent() + + .get(&DataKey::ContractStatusRollup) + + .unwrap_or(ContractStatusRollup { + + tier: StatusTier::Ok, + + asset_ok: 0, + + asset_low: 0, + + asset_medium: 0, + + asset_high: 0, + + bridge_ok: 0, + + bridge_low: 0, + + bridge_medium: 0, + + bridge_high: 0, + + timestamp: env.ledger().timestamp(), + + }); + + + if let Some(p) = prev { + + match p { + + StatusTier::Ok => rollup.bridge_ok = rollup.bridge_ok.saturating_sub(1), + + StatusTier::Low => rollup.bridge_low = rollup.bridge_low.saturating_sub(1), + + StatusTier::Medium => rollup.bridge_medium = rollup.bridge_medium.saturating_sub(1), + + StatusTier::High => rollup.bridge_high = rollup.bridge_high.saturating_sub(1), + + } + + } + + + match next { + + StatusTier::Ok => rollup.bridge_ok += 1, + + StatusTier::Low => rollup.bridge_low += 1, + + StatusTier::Medium => rollup.bridge_medium += 1, + + StatusTier::High => rollup.bridge_high += 1, + + } + + + rollup.tier = Self::compute_contract_tier_from_counts(&rollup); + + rollup.timestamp = env.ledger().timestamp(); + + + env.storage() + + .persistent() + + .set(&DataKey::ContractStatusRollup, &rollup); + + + env.events().publish((symbol_short!("ctr_st"),), rollup.tier.clone()); + + } + + + fn update_asset_rollup(env: &Env, asset_code: &String) { + + let health = Self::load_asset_health(env, asset_code); + + let deviation: Option = env + + .storage() + + .persistent() + + .get(&DataKey::DeviationAlert(asset_code.clone())); + + + let health_tier = Self::health_to_tier(health.health_score); + + let (has_alert, deviation_tier) = Self::deviation_to_tier(&deviation); + + let mut tier = Self::max_tier(health_tier, deviation_tier.clone()); + + + if !health.active { + + tier = Self::max_tier(tier, StatusTier::Low); + + } + + if health.paused { + + tier = Self::max_tier(tier, StatusTier::Low); + + } + + + let prev: Option = env + + .storage() + + .persistent() + + .get(&DataKey::AssetStatusRollup(asset_code.clone())); + + let prev_tier = prev.as_ref().map(|r| r.tier.clone()); + + + let rollup = AssetStatusRollup { + + asset_code: asset_code.clone(), + + tier: tier.clone(), + + health_score: health.health_score, + + has_price_deviation_alert: has_alert, + + price_deviation_tier: deviation_tier, + + paused: health.paused, + + active: health.active, + + timestamp: env.ledger().timestamp(), + + }; + + + env.storage() + + .persistent() + + .set(&DataKey::AssetStatusRollup(asset_code.clone()), &rollup); + + + Self::bump_contract_counts_for_asset(env, prev_tier, tier.clone()); + + env.events().publish((symbol_short!("asset_st"), asset_code.clone()), tier); + + } + + + fn update_bridge_rollup(env: &Env, bridge_id: &String, mismatch_bps: i128, is_critical: bool) { + + let tier = if is_critical { + + StatusTier::High + + } else { + + StatusTier::Ok + + }; + + + let prev: Option = env + + .storage() + + .persistent() + + .get(&DataKey::BridgeStatusRollup(bridge_id.clone())); + + let prev_tier = prev.as_ref().map(|r| r.tier.clone()); + + + let rollup = BridgeStatusRollup { + + bridge_id: bridge_id.clone(), + + tier: tier.clone(), + + latest_mismatch_bps: mismatch_bps, + + is_critical, + + timestamp: env.ledger().timestamp(), + + }; + + + env.storage() + + .persistent() + + .set(&DataKey::BridgeStatusRollup(bridge_id.clone()), &rollup); + + + Self::bump_contract_counts_for_bridge(env, prev_tier, tier.clone()); + + env.events().publish((symbol_short!("bridge_st"), bridge_id.clone()), tier); + + } + + // ----------------------------------------------------------------------- + + // Liquidity Pool Monitor + + // ----------------------------------------------------------------------- + + + + /// Record a new liquidity pool state snapshot (admin only). + + /// + + /// Writes the snapshot into a gas-optimised ring buffer, updates the + + /// corresponding daily aggregation bucket, and emits events when + + /// significant liquidity changes are detected. + + pub fn record_pool_state( + + env: Env, + + pool_id: String, + + reserve_a: i128, + + reserve_b: i128, + + total_shares: i128, + + volume: i128, + + fees: i128, + + pool_type: PoolType, + + ) { + + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + + admin.require_auth(); + + + + liquidity_pool::record_pool_state( + + &env, + + pool_id, + + reserve_a, + + reserve_b, + + total_shares, + + volume, + + fees, + + pool_type, + + ); + + } + + + + /// Calculate aggregated pool metrics over a time window. + + /// + + /// Returns volume, average depth, price change, fee APR, etc. + + /// for the specified `window_secs` lookback period. + + pub fn calculate_pool_metrics(env: Env, pool_id: String, window_secs: u64) -> PoolMetrics { + + liquidity_pool::calculate_pool_metrics(&env, pool_id, window_secs) + + } + + + + /// Retrieve historical pool snapshots within a time range. + + /// + + /// Public read access — no authorisation required. + + pub fn get_pool_history( + + env: Env, + + pool_id: String, + + from_timestamp: u64, + + to_timestamp: u64, + + ) -> Vec { + + liquidity_pool::get_pool_history(&env, pool_id, from_timestamp, to_timestamp) + + } + + + + /// Calculate impermanent loss for an LP position. + + /// + + /// Given the `entry_price` at which a position was opened and its + + /// `initial_value`, returns the current IL percentage, position value, + + /// and HODL comparison value. + + pub fn calculate_impermanent_loss( + + env: Env, + + pool_id: String, + + entry_price: i128, + + initial_value: i128, + + ) -> ImpermanentLossResult { + + liquidity_pool::calculate_impermanent_loss(&env, pool_id, entry_price, initial_value) + + } + + + + /// Get current liquidity depth information for a pool. + + /// + + /// Returns reserve amounts, total value locked, and a depth score + + /// from 0 to 100. + + pub fn get_liquidity_depth(env: Env, pool_id: String) -> PoolLiquidityDepth { + + liquidity_pool::get_liquidity_depth(&env, pool_id) + + } + + + + /// Get daily aggregated buckets for a pool within a time range. + + /// + + /// Returns OHLC price data, volume, fees, and average reserves + + /// per day. Public read access. + + pub fn get_daily_history( + + env: Env, + + pool_id: String, + + from_timestamp: u64, + + to_timestamp: u64, + + ) -> Vec { + + liquidity_pool::get_daily_history(&env, pool_id, from_timestamp, to_timestamp) + + } + + + + /// Get all registered liquidity pool IDs. + + pub fn get_registered_pools(env: Env) -> Vec { + + liquidity_pool::get_registered_pools(&env) + + } + + + + // ----------------------------------------------------------------------- + + // Automated health score calculation (issue #26) + + // ----------------------------------------------------------------------- + + + + /// Set configurable weights used by the automated health score calculation. + + /// + /// `caller` must be the contract admin or a `SuperAdmin`. The three weights + /// must each be in the range 0–100 and must sum to exactly 100. The + /// `version` field tracks the methodology revision for auditability. + /// + /// # Panics + /// - Caller is not authorised. + /// - Any individual weight exceeds 100. + /// - The weights do not sum to 100. + /// - `version` is 0. + pub fn set_health_weights( + env: Env, + caller: Address, + liquidity_weight: u32, + price_stability_weight: u32, + bridge_uptime_weight: u32, + version: u32, + ) { + caller.require_auth(); + let admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + let authorized = + caller == admin || Self::has_role_internal(&env, &caller, AdminRole::SuperAdmin); + if !authorized { + panic!("only admin or SuperAdmin can set health weights"); + } + + Self::validate_weights(liquidity_weight, price_stability_weight, bridge_uptime_weight); + if version == 0 { + panic!("methodology version must be greater than 0"); + } + + let weights = HealthWeights { + liquidity_weight, + price_stability_weight, + bridge_uptime_weight, + version, + }; + + env.storage() + .instance() + .set(&DataKey::HealthWeights, &weights); + + env.events() + .publish((symbol_short!("wt_set"),), version); + } + + /// Return the current health score calculation weights. + /// + /// Public read access — no authorisation required. Returns the + /// admin-configured weights or the defaults (30 / 40 / 30, version 1) + /// when none have been explicitly set. + pub fn get_health_weights(env: Env) -> HealthWeights { + Self::load_health_weights(&env) + } + + /// Pure calculation: compute a composite health score from component + /// scores using the stored (or default) weights. + /// + /// This function does **not** store any result on-chain; it is intended + /// for off-chain callers that want to preview the score before submitting. + /// + /// Formula: + /// ```text + /// composite = (liquidity * liq_w + stability * stab_w + uptime * up_w) / 100 + /// ``` + /// + /// All input scores must be in the 0–100 range. + /// + /// # Panics + /// - Any input score is greater than 100. + pub fn calculate_health_score( + env: Env, + liquidity_score: u32, + price_stability_score: u32, + bridge_uptime_score: u32, + ) -> HealthScoreResult { + Self::validate_score_range(liquidity_score, "liquidity_score"); + Self::validate_score_range(price_stability_score, "price_stability_score"); + Self::validate_score_range(bridge_uptime_score, "bridge_uptime_score"); + + let weights = Self::load_health_weights(&env); + let composite = Self::compute_composite( + liquidity_score, + price_stability_score, + bridge_uptime_score, + &weights, + ); + + HealthScoreResult { + composite_score: composite, + liquidity_score, + price_stability_score, + bridge_uptime_score, + weights, + timestamp: env.ledger().timestamp(), + } + } + + /// Submit a health score that is **automatically calculated** from the + /// supplied component scores using the stored weights. + /// + /// This is the recommended entry-point for Phase 1 MVP health scoring. It + /// combines `calculate_health_score()` with `submit_health()`, storing + /// both the `AssetHealth` record and the detailed `HealthScoreResult`. + /// + /// `caller` must be the contract admin, a `SuperAdmin`, or a + /// `HealthSubmitter`. The asset must be registered, active, and not paused. + /// All component scores must be in the 0–100 range. + /// + /// An optional `manual_override` score (0–100) can replace the calculated + /// composite score while still recording the underlying calculation for + /// transparency. + /// + /// # Panics + /// - Caller is not authorised. + /// - Asset is not registered, deregistered, or paused. + /// - Any component score is greater than 100. + /// - `manual_override` is provided and exceeds 100. + pub fn submit_calculated_health( + env: Env, + caller: Address, + asset_code: String, + liquidity_score: u32, + price_stability_score: u32, + bridge_uptime_score: u32, + manual_override: Option, + ) { + Self::check_permission(&env, &caller, AdminRole::HealthSubmitter); + let status = Self::load_asset_health(&env, &asset_code); + Self::assert_asset_accepting_submissions(&status); + + Self::validate_score_range(liquidity_score, "liquidity_score"); + Self::validate_score_range(price_stability_score, "price_stability_score"); + Self::validate_score_range(bridge_uptime_score, "bridge_uptime_score"); + + let weights = Self::load_health_weights(&env); + let calculated_composite = Self::compute_composite( + liquidity_score, + price_stability_score, + bridge_uptime_score, + &weights, + ); + + let final_score = match manual_override { + Some(override_score) => { + Self::validate_score_range(override_score, "manual_override"); + override_score + } + None => calculated_composite, + }; + + let timestamp = env.ledger().timestamp(); + + let record = AssetHealth { + asset_code: asset_code.clone(), + health_score: final_score, + liquidity_score, + price_stability_score, + bridge_uptime_score, + paused: status.paused, + active: status.active, + timestamp, + }; + + let result = HealthScoreResult { + composite_score: calculated_composite, + liquidity_score, + price_stability_score, + bridge_uptime_score, + weights, + timestamp, + }; + + env.storage() + .persistent() + .set(&DataKey::AssetHealth(asset_code.clone()), &record); + env.storage() + .persistent() + .set(&DataKey::HealthScoreResult(asset_code.clone()), &result); + + Self::update_asset_rollup(&env, &asset_code); + + + env.events().publish( + (symbol_short!("health_up"), asset_code), + final_score, + ); + } + + /// Return the latest calculated health score result for an asset. + /// + /// Public read access — no authorisation required. Returns `None` if no + /// calculated score has been submitted for the asset. + pub fn get_health_score_result(env: Env, asset_code: String) -> Option { + env.storage() + .persistent() + .get(&DataKey::HealthScoreResult(asset_code)) + } + + // ----------------------------------------------------------------------- + // Private helpers — health score calculation + // ----------------------------------------------------------------------- + + /// Load stored health weights or return defaults (30 / 40 / 30, v1). + fn load_health_weights(env: &Env) -> HealthWeights { + env.storage() + .instance() + .get(&DataKey::HealthWeights) + .unwrap_or(HealthWeights { + liquidity_weight: 30, + price_stability_weight: 40, + bridge_uptime_weight: 30, + version: 1, + }) + } + + /// Validate that three weights are each ≤ 100 and sum to exactly 100. + fn validate_weights(liq: u32, stab: u32, up: u32) { + if liq > 100 || stab > 100 || up > 100 { + panic!("each weight must be between 0 and 100"); + } + if liq + stab + up != 100 { + panic!("weights must sum to 100"); + } + } + + /// Validate that a single score is within the 0–100 range. + fn validate_score_range(score: u32, name: &str) { + if score > 100 { + panic!("{} must be between 0 and 100", name); + } + } + + /// Compute the weighted-average composite score. + /// + /// `composite = (liq * liq_w + stab * stab_w + up * up_w) / 100` + fn compute_composite( + liquidity_score: u32, + price_stability_score: u32, + bridge_uptime_score: u32, + weights: &HealthWeights, + ) -> u32 { + let weighted_sum = (liquidity_score as u64) * (weights.liquidity_weight as u64) + + (price_stability_score as u64) * (weights.price_stability_weight as u64) + + (bridge_uptime_score as u64) * (weights.bridge_uptime_weight as u64); + (weighted_sum / 100) as u32 + } + } + + #[cfg(test)] + mod tests { + use super::*; + use soroban_sdk::testutils::Address as _; + use soroban_sdk::testutils::Events; + use soroban_sdk::testutils::Ledger; + use soroban_sdk::{Env, IntoVal}; + + /// Helper: set up a fresh contract with an admin, returning (env, client, admin). + fn setup() -> (Env, BridgeWatchContractClient<'static>, Address) { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register_contract(None, BridgeWatchContract); + let client = BridgeWatchContractClient::new(&env, &contract_id); + let admin = Address::generate(&env); + client.initialize(&admin); + (env, client, admin) + } + + fn liquidity_sources(env: &Env, venues: &[&str]) -> Vec { + let mut sources = Vec::new(env); + for venue in venues.iter() { + sources.push_back(String::from_str(env, venue)); + } + sources + } + + // ----------------------------------------------------------------------- + // Price deviation detection tests (issue #23) + // ----------------------------------------------------------------------- + + #[test] + fn test_price_deviation_no_reference_returns_none() { + let (env, client, _admin) = setup(); + let asset = String::from_str(&env, "USDC"); + // No stored price record → should return None + let result = client.check_price_deviation(&asset, &1_000_000); + assert!(result.is_none()); + } + + #[test] + fn test_price_deviation_below_threshold_returns_none() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + // Store reference price of 1_000_000 (1 %) + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + // 1 % deviation is below the default Low threshold of 2 % + let result = client.check_price_deviation(&asset, &1_010_000); + assert!(result.is_none()); + } + + #[test] + fn test_price_deviation_low_severity() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + // 3 % deviation → Low severity + let result = client.check_price_deviation(&asset, &1_030_000); + assert!(result.is_some()); + let alert = result.unwrap(); + assert_eq!(alert.deviation_bps, 300); + assert_eq!(alert.severity, DeviationSeverity::Low); + } + + #[test] + fn test_price_deviation_medium_severity() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + // 7 % deviation → Medium severity + let result = client.check_price_deviation(&asset, &1_070_000); + assert!(result.is_some()); + let alert = result.unwrap(); + assert_eq!(alert.deviation_bps, 700); + assert_eq!(alert.severity, DeviationSeverity::Medium); + } + + #[test] + fn test_price_deviation_high_severity() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + // 15 % deviation → High severity + let result = client.check_price_deviation(&asset, &1_150_000); + assert!(result.is_some()); + let alert = result.unwrap(); + assert_eq!(alert.deviation_bps, 1_500); + assert_eq!(alert.severity, DeviationSeverity::High); + } + + #[test] + fn test_get_deviation_alerts_persists_latest() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + client.check_price_deviation(&asset, &1_150_000); + + let stored = client.get_deviation_alerts(&asset); + assert!(stored.is_some()); + assert_eq!(stored.unwrap().severity, DeviationSeverity::High); + } + + #[test] + fn test_set_custom_deviation_thresholds() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + // Custom tight thresholds: Low > 50 bps (0.5 %) + client.set_deviation_threshold(&asset, &50, &100, &200); + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + // 1 % deviation (100 bps) exceeds custom Low threshold of 50 bps + let result = client.check_price_deviation(&asset, &1_010_000); + assert!(result.is_some()); + assert_eq!(result.unwrap().severity, DeviationSeverity::Low); + } + + // ----------------------------------------------------------------------- + // Bridge supply mismatch tracking tests (issue #28) + // ----------------------------------------------------------------------- + + #[test] + fn test_record_supply_mismatch_not_critical() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let bridge = String::from_str(&env, "CIRCLE_USDC"); + let asset = String::from_str(&env, "USDC"); + + // diff=1_000, bps = 1_000*10_000/1_001_000 = 9 → below default threshold of 10 + client.record_supply_mismatch(&bridge, &asset, &1_000_000, &1_001_000); + + let mismatches = client.get_supply_mismatches(&bridge); + assert_eq!(mismatches.len(), 1); + let m = mismatches.get(0).unwrap(); + assert_eq!(m.mismatch_bps, 9); + assert!(!m.is_critical); + } + + #[test] + fn test_record_supply_mismatch_critical() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let bridge = String::from_str(&env, "CIRCLE_USDC"); + let asset = String::from_str(&env, "USDC"); + + // diff=2_000, bps = 2_000*10_000/1_002_000 = 19 → above default threshold of 10 + client.record_supply_mismatch(&bridge, &asset, &1_000_000, &1_002_000); + + let mismatches = client.get_supply_mismatches(&bridge); + let m = mismatches.get(0).unwrap(); + assert_eq!(m.mismatch_bps, 19); + assert!(m.is_critical); + } + + #[test] + fn test_set_mismatch_threshold_custom() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let bridge = String::from_str(&env, "CIRCLE_USDC"); + let asset = String::from_str(&env, "USDC"); + + // Tighten threshold to 5 bps; 9 bps mismatch should now be critical + client.set_mismatch_threshold(&5); + client.record_supply_mismatch(&bridge, &asset, &1_000_000, &1_001_000); + + let m = client.get_supply_mismatches(&bridge).get(0).unwrap(); + assert!(m.is_critical); + } + + #[test] + fn test_get_critical_mismatches_across_bridges() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let bridge1 = String::from_str(&env, "CIRCLE_USDC"); + let bridge2 = String::from_str(&env, "WORMHOLE_EURC"); + let asset = String::from_str(&env, "USDC"); + + // bridge1: 9 bps (not critical) + client.record_supply_mismatch(&bridge1, &asset, &1_000_000, &1_001_000); + // bridge2: 19 bps (critical) + client.record_supply_mismatch(&bridge2, &asset, &1_000_000, &1_002_000); + + let critical = client.get_critical_mismatches(); + assert_eq!(critical.len(), 1); + assert_eq!(critical.get(0).unwrap().bridge_id, bridge2); + } + + #[test] + fn test_supply_mismatch_historical_tracking() { + let (env, client, _admin) = setup(); + + let bridge = String::from_str(&env, "CIRCLE_USDC"); + let asset = String::from_str(&env, "USDC"); + + for i in 0..3u64 { + env.ledger().set_timestamp(1_000_000 + i * 3_600); + client.record_supply_mismatch( + &bridge, + &asset, + &(1_000_000 + i as i128 * 500), + &1_000_000, + ); + } + + let mismatches = client.get_supply_mismatches(&bridge); + assert_eq!(mismatches.len(), 3); + } + + #[test] + fn test_zero_source_supply_returns_zero_bps() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let bridge = String::from_str(&env, "CIRCLE_USDC"); + let asset = String::from_str(&env, "USDC"); + + client.record_supply_mismatch(&bridge, &asset, &1_000_000, &0); + + let m = client.get_supply_mismatches(&bridge).get(0).unwrap(); + assert_eq!(m.mismatch_bps, 0); + assert!(!m.is_critical); + } + + // ----------------------------------------------------------------------- + // Event emission tests (issue #29) + // ----------------------------------------------------------------------- + + /// Helper: verify that the contract emitted at least one event whose + /// first topic matches the given symbol. + fn assert_has_event(env: &Env, contract: &Address, expected_topic: soroban_sdk::Symbol) { + let events = env.events().all(); + let mut found = false; + for i in 0..events.len() { + let (addr, topics, _data) = events.get(i).unwrap(); + if addr == *contract && topics.len() > 0 { + // The first topic is the event symbol stored as a Val; + // convert via IntoVal for comparison. + let topic_val: soroban_sdk::Val = topics.get(0).unwrap(); + let expected_val: soroban_sdk::Val = expected_topic.into_val(env); + if topic_val.get_payload() == expected_val.get_payload() { + found = true; + break; + } + } + } + assert!(found, "expected event with topic not found"); + } + + #[test] + fn test_submit_health_emits_event() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &asset); + client.submit_health(&admin, &asset, &85, &90, &80, &75); + + assert_has_event(&env, &client.address, symbol_short!("health_up")); + } + + #[test] + fn test_submit_price_emits_event() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + assert_has_event(&env, &client.address, symbol_short!("price_up")); + } + + #[test] + fn test_check_price_deviation_emits_event_on_alert() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + let asset = String::from_str(&env, "USDC"); + let source = String::from_str(&env, "Stellar DEX"); + + client.register_asset(&admin, &asset); + client.submit_price(&admin, &asset, &1_000_000, &source); + + // 15 % deviation → High severity triggers event + let result = client.check_price_deviation(&asset, &1_150_000); + assert!(result.is_some()); + + assert_has_event(&env, &client.address, symbol_short!("price_dev")); + } + + #[test] + fn test_record_supply_mismatch_emits_event() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let bridge = String::from_str(&env, "CIRCLE_USDC"); + let asset = String::from_str(&env, "USDC"); + + client.record_supply_mismatch(&bridge, &asset, &1_000_000, &1_002_000); + + assert_has_event(&env, &client.address, symbol_short!("supply_mm")); + } + + #[test] + fn test_record_liquidity_depth_emits_event() { + let (env, client, _admin) = setup(); + let pair = String::from_str(&env, "USDC/XLM"); + + env.ledger().set_timestamp(1_000_000); + client.record_liquidity_depth( + &pair, + &1_500_000, + &100_000, + &300_000, + &600_000, + &1_200_000, + &liquidity_sources(&env, &["StellarX", "Phoenix"]), + ); + + assert_has_event(&env, &client.address, symbol_short!("liq_chg")); + } + + #[test] + fn test_grant_role_emits_event() { + let (env, client, admin) = setup(); + let submitter = Address::generate(&env); + + client.grant_role(&admin, &submitter, &AdminRole::HealthSubmitter); + + assert_has_event(&env, &client.address, symbol_short!("role_grnt")); + } + + #[test] + fn test_revoke_role_emits_event() { + let (env, client, admin) = setup(); + let submitter = Address::generate(&env); + + client.grant_role(&admin, &submitter, &AdminRole::HealthSubmitter); + client.revoke_role(&admin, &submitter, &AdminRole::HealthSubmitter); + + assert_has_event(&env, &client.address, symbol_short!("role_revk")); + } + + #[test] + fn test_set_deviation_threshold_emits_event() { + let (env, client, _admin) = setup(); + let asset = String::from_str(&env, "USDC"); + + client.set_deviation_threshold(&asset, &50, &100, &200); + + assert_has_event(&env, &client.address, symbol_short!("thresh_up")); + } + + #[test] + fn test_set_mismatch_threshold_emits_event() { + let (env, client, _admin) = setup(); + + client.set_mismatch_threshold(&5); + + assert_has_event(&env, &client.address, symbol_short!("thresh_up")); + } + + // ----------------------------------------------------------------------- + // Original tests (kept for backwards compatibility) + // ----------------------------------------------------------------------- + + #[test] + fn test_initialize() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register_contract(None, BridgeWatchContract); + let client = BridgeWatchContractClient::new(&env, &contract_id); + + let admin = Address::generate(&env); + client.initialize(&admin); + + let assets = client.get_monitored_assets(); + assert_eq!(assets.len(), 0); + } + + #[test] + fn test_register_and_get_assets() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register_contract(None, BridgeWatchContract); + let client = BridgeWatchContractClient::new(&env, &contract_id); + + let admin = Address::generate(&env); + client.initialize(&admin); + + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + + let assets = client.get_monitored_assets(); + assert_eq!(assets.len(), 1); + + let health = client.get_health(&usdc).unwrap(); + assert!(health.active); + assert!(!health.paused); + } + + #[test] + fn test_submit_and_get_health() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register_contract(None, BridgeWatchContract); + let client = BridgeWatchContractClient::new(&env, &contract_id); + + let admin = Address::generate(&env); + client.initialize(&admin); + + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + client.submit_health(&admin, &usdc, &85, &90, &80, &85); + + let health = client.get_health(&usdc); + assert!(health.is_some()); + assert_eq!(health.unwrap().health_score, 85); + } + + // ----------------------------------------------------------------------- + // Batch health submission tests (issue #21) + // ----------------------------------------------------------------------- + + #[test] + fn test_submit_health_batch_stores_all_records() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + let assets = ["USDC", "EURC", "PYUSD"]; + for code in assets.iter() { + client.register_asset(&admin, &String::from_str(&env, code)); + } + let mut batch = Vec::new(&env); + for (i, code) in assets.iter().enumerate() { + batch.push_back(HealthScoreBatch { + asset_code: String::from_str(&env, code), + health_score: 80 + i as u32, + liquidity_score: 75, + price_stability_score: 78, + bridge_uptime_score: 82, + }); + } + + client.submit_health_batch(&admin, &batch); + + for (i, code) in assets.iter().enumerate() { + let health = client.get_health(&String::from_str(&env, code)).unwrap(); + assert_eq!(health.health_score, 80 + i as u32); + assert_eq!(health.timestamp, 1_000_000); + } + } + + #[test] + fn test_submit_health_batch_consistent_timestamps() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(5_000_000); + + client.register_asset(&admin, &String::from_str(&env, "USDC")); + client.register_asset(&admin, &String::from_str(&env, "EURC")); + + let mut batch = Vec::new(&env); + batch.push_back(HealthScoreBatch { + asset_code: String::from_str(&env, "USDC"), + health_score: 90, + liquidity_score: 90, + price_stability_score: 90, + bridge_uptime_score: 90, + }); + batch.push_back(HealthScoreBatch { + asset_code: String::from_str(&env, "EURC"), + health_score: 70, + liquidity_score: 70, + price_stability_score: 70, + bridge_uptime_score: 70, + }); + + client.submit_health_batch(&admin, &batch); + + let usdc = client.get_health(&String::from_str(&env, "USDC")).unwrap(); + let eurc = client.get_health(&String::from_str(&env, "EURC")).unwrap(); + assert_eq!(usdc.timestamp, eurc.timestamp); + assert_eq!(usdc.timestamp, 5_000_000); + } + + #[test] + #[should_panic] + fn test_submit_health_batch_exceeds_limit() { + let (env, client, admin) = setup(); + + let mut batch = Vec::new(&env); + for _ in 0..21u32 { + batch.push_back(HealthScoreBatch { + asset_code: String::from_str(&env, "USDC"), + health_score: 85, + liquidity_score: 85, + price_stability_score: 85, + bridge_uptime_score: 85, + }); + } + client.submit_health_batch(&admin, &batch); + } + + // ----------------------------------------------------------------------- + // Multi-DEX liquidity depth tracking tests (issue #31) + // ----------------------------------------------------------------------- + + #[test] + fn test_record_liquidity_depth_stores_current_and_history() { + let (env, client, _admin) = setup(); + let pair = String::from_str(&env, "USDC/XLM"); + + env.ledger().set_timestamp(1_000_000); + client.record_liquidity_depth( + &pair, + &1_500_000, + &100_000, + &300_000, + &600_000, + &1_200_000, + &liquidity_sources(&env, &["StellarX", "Phoenix"]), + ); + + let current = client.get_aggregated_liquidity_depth(&pair).unwrap(); + assert_eq!(current.asset_pair, pair.clone()); + assert_eq!(current.total_liquidity, 1_500_000); + assert_eq!(current.depth_0_1_pct, 100_000); + assert_eq!(current.depth_5_pct, 1_200_000); + assert_eq!(current.sources.len(), 2); + assert_eq!(current.timestamp, 1_000_000); + + let history = client.get_liquidity_history(&pair, &0, &2_000_000); + assert_eq!(history.len(), 1); + assert_eq!(history.get(0).unwrap(), current); + } + + #[test] + fn test_get_liquidity_history_filters_by_time_range() { + let (env, client, _admin) = setup(); + let pair = String::from_str(&env, "EURC/XLM"); + + for i in 0..3u64 { + env.ledger().set_timestamp(1_000_000 + i * 3_600); + client.record_liquidity_depth( + &pair, + &(2_000_000 + i as i128 * 100_000), + &(100_000 + i as i128 * 10_000), + &(300_000 + i as i128 * 10_000), + &(600_000 + i as i128 * 10_000), + &(1_500_000 + i as i128 * 10_000), + &liquidity_sources(&env, &["SDEX", "Soroswap"]), + ); + } + + let history = client.get_liquidity_history(&pair, &1_003_600, &1_007_200); + assert_eq!(history.len(), 2); + assert_eq!(history.get(0).unwrap().timestamp, 1_003_600); + assert_eq!(history.get(1).unwrap().timestamp, 1_007_200); + } + + #[test] + fn test_get_all_liquidity_depths_returns_latest_per_pair() { + let (env, client, _admin) = setup(); + let usdc_xlm = String::from_str(&env, "USDC/XLM"); + let fobxx_usdc = String::from_str(&env, "FOBXX/USDC"); + + env.ledger().set_timestamp(1_000_000); + client.record_liquidity_depth( + &usdc_xlm, + &1_000_000, + &100_000, + &250_000, + &500_000, + &900_000, + &liquidity_sources(&env, &["StellarX"]), + ); + + env.ledger().set_timestamp(1_100_000); + client.record_liquidity_depth( + &fobxx_usdc, + &4_000_000, + &300_000, + &900_000, + &1_500_000, + &3_000_000, + &liquidity_sources(&env, &["SDEX", "LumenSwap"]), + ); + + let all_depths = client.get_all_liquidity_depths(); + assert_eq!(all_depths.len(), 2); + assert_eq!(all_depths.get(0).unwrap().asset_pair, usdc_xlm); + assert_eq!(all_depths.get(1).unwrap().asset_pair, fobxx_usdc); + } + + #[test] + #[should_panic] + fn test_record_liquidity_depth_rejects_unsupported_pair() { + let (env, client, _admin) = setup(); + let pair = String::from_str(&env, "BTC/XLM"); + + env.ledger().set_timestamp(1_000_000); + client.record_liquidity_depth( + &pair, + &1_000_000, + &100_000, + &200_000, + &300_000, + &400_000, + &liquidity_sources(&env, &["Phoenix"]), + ); + } + + #[test] + #[should_panic] + fn test_record_liquidity_depth_rejects_invalid_depth_values() { + let (env, client, _admin) = setup(); + let pair = String::from_str(&env, "PYUSD/XLM"); + + env.ledger().set_timestamp(1_000_000); + client.record_liquidity_depth( + &pair, + &500_000, + &100_000, + &250_000, + &400_000, + &600_000, + &liquidity_sources(&env, &["Phoenix"]), + ); + } + + // ----------------------------------------------------------------------- + // Multi-admin role management tests (issue #25) + // ----------------------------------------------------------------------- + + #[test] + fn test_grant_and_check_role() { + let (env, client, admin) = setup(); + let submitter = Address::generate(&env); + + client.grant_role(&admin, &submitter, &AdminRole::HealthSubmitter); + + assert!(client.has_role(&submitter, &AdminRole::HealthSubmitter)); + assert!(!client.has_role(&submitter, &AdminRole::PriceSubmitter)); + } + + #[test] + fn test_role_holder_can_call_permitted_function() { + let (env, client, admin) = setup(); + let submitter = Address::generate(&env); + + client.grant_role(&admin, &submitter, &AdminRole::HealthSubmitter); + + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + client.submit_health(&submitter, &usdc, &80, &80, &80, &80); + + let health = client.get_health(&usdc).unwrap(); + assert_eq!(health.health_score, 80); + } + + #[test] + #[should_panic] + fn test_unauthorized_address_cannot_submit_health() { + let (env, client, _admin) = setup(); + let stranger = Address::generate(&env); + + let usdc = String::from_str(&env, "USDC"); + client.submit_health(&stranger, &usdc, &80, &80, &80, &80); + } + + #[test] + fn test_revoke_role_removes_access() { + let (env, client, admin) = setup(); + let submitter = Address::generate(&env); + + client.grant_role(&admin, &submitter, &AdminRole::HealthSubmitter); + client.revoke_role(&admin, &submitter, &AdminRole::HealthSubmitter); + + assert!(!client.has_role(&submitter, &AdminRole::HealthSubmitter)); + } + + #[test] + fn test_get_admin_roles_returns_all_assignments() { + let (env, client, admin) = setup(); + let addr_a = Address::generate(&env); + let addr_b = Address::generate(&env); + + client.grant_role(&admin, &addr_a, &AdminRole::PriceSubmitter); + client.grant_role(&admin, &addr_b, &AdminRole::AssetManager); + + let roles = client.get_admin_roles(); + assert_eq!(roles.len(), 2); + } + + #[test] + fn test_super_admin_can_grant_roles() { + let (env, client, admin) = setup(); + let super_admin = Address::generate(&env); + let new_submitter = Address::generate(&env); + + client.grant_role(&admin, &super_admin, &AdminRole::SuperAdmin); + client.grant_role(&super_admin, &new_submitter, &AdminRole::PriceSubmitter); + + assert!(client.has_role(&new_submitter, &AdminRole::PriceSubmitter)); + } + + #[test] + fn test_original_admin_can_call_all_functions() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + client.submit_health(&admin, &usdc, &90, &90, &90, &90); + client.submit_price(&admin, &usdc, &1_000_000, &String::from_str(&env, "DEX")); + + assert_eq!(client.get_monitored_assets().len(), 1); + assert!(client.get_health(&usdc).is_some()); + assert!(client.get_price(&usdc).is_some()); + } + + // ----------------------------------------------------------------------- + // Asset lifecycle management tests (issue #44) + // ----------------------------------------------------------------------- + + #[test] + fn test_pause_asset_filters_from_monitored_assets() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + client.pause_asset(&admin, &usdc); + + let health = client.get_health(&usdc).unwrap(); + assert!(health.paused); + assert!(health.active); + assert_eq!(client.get_monitored_assets().len(), 0); + } + + #[test] + fn test_unpause_asset_restores_monitoring() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + client.pause_asset(&admin, &usdc); + client.unpause_asset(&admin, &usdc); + + let health = client.get_health(&usdc).unwrap(); + assert!(!health.paused); + assert!(health.active); + assert_eq!(client.get_monitored_assets().len(), 1); + } + + #[test] + fn test_deregister_asset_keeps_history_but_hides_asset() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + client.submit_health(&admin, &usdc, &91, &88, &87, &89); + client.deregister_asset(&admin, &usdc); + + let health = client.get_health(&usdc).unwrap(); + assert_eq!(health.health_score, 91); + assert!(!health.active); + assert!(!health.paused); + assert_eq!(client.get_monitored_assets().len(), 0); + } + + #[test] + #[should_panic] + fn test_submit_health_rejected_for_paused_asset() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + client.pause_asset(&admin, &usdc); + client.submit_health(&admin, &usdc, &80, &80, &80, &80); + } + + #[test] + #[should_panic] + fn test_submit_price_rejected_for_deregistered_asset() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + client.deregister_asset(&admin, &usdc); + client.submit_price(&admin, &usdc, &1_000_000, &String::from_str(&env, "DEX")); + } + + #[test] + #[should_panic] + fn test_submit_health_rejected_for_unregistered_asset() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + client.submit_health(&admin, &usdc, &80, &80, &80, &80); + } + + // ----------------------------------------------------------------------- + // Liquidity Pool Monitor tests + // ----------------------------------------------------------------------- + + #[test] + fn test_record_pool_state_basic() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + + env.ledger().set_timestamp(1_000_000); + + client.record_pool_state( + &pool_id, + &(1_000_000 * liquidity_pool::PRECISION), + &(5_000_000 * liquidity_pool::PRECISION), + &(2_000_000 * liquidity_pool::PRECISION), + &(100_000 * liquidity_pool::PRECISION), + &(1_000 * liquidity_pool::PRECISION), + &PoolType::Amm, + ); + + let pools = client.get_registered_pools(); + assert_eq!(pools.len(), 1); + assert_eq!(pools.get(0).unwrap(), pool_id); + } + + #[test] + fn test_record_multiple_pools() { + let (env, client, _admin) = setup(); + + env.ledger().set_timestamp(1_000_000); + + let pool1 = String::from_str(&env, "USDC_XLM"); + let pool2 = String::from_str(&env, "EURC_XLM"); + let pool3 = String::from_str(&env, "PYUSD_XLM"); + let pool4 = String::from_str(&env, "FOBXX_USDC"); + + for pool_id in [&pool1, &pool2, &pool3, &pool4] { + client.record_pool_state( + pool_id, + &(1_000_000 * liquidity_pool::PRECISION), + &(2_000_000 * liquidity_pool::PRECISION), + &(1_500_000 * liquidity_pool::PRECISION), + &(50_000 * liquidity_pool::PRECISION), + &(500 * liquidity_pool::PRECISION), + &PoolType::Amm, + ); + } + + let pools = client.get_registered_pools(); + assert_eq!(pools.len(), 4); + } + + #[test] + fn test_record_pool_state_does_not_duplicate_registration() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * liquidity_pool::PRECISION), + &(2_000_000 * liquidity_pool::PRECISION), + &(1_000_000 * liquidity_pool::PRECISION), + &(10_000 * liquidity_pool::PRECISION), + &(100 * liquidity_pool::PRECISION), + &PoolType::Amm, + ); + + env.ledger().set_timestamp(1_003_600); + client.record_pool_state( + &pool_id, + &(1_100_000 * liquidity_pool::PRECISION), + &(2_200_000 * liquidity_pool::PRECISION), + &(1_100_000 * liquidity_pool::PRECISION), + &(12_000 * liquidity_pool::PRECISION), + &(120 * liquidity_pool::PRECISION), + &PoolType::Amm, + ); + + let pools = client.get_registered_pools(); + assert_eq!(pools.len(), 1); + } + + #[test] + fn test_get_pool_history() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Record 3 snapshots at different timestamps + for i in 0..3u64 { + env.ledger().set_timestamp(1_000_000 + i * 3_600); + client.record_pool_state( + &pool_id, + &((1_000_000 + i as i128 * 10_000) * p), + &((5_000_000 + i as i128 * 50_000) * p), + &(2_000_000 * p), + &((100_000 + i as i128 * 1_000) * p), + &((1_000 + i as i128 * 10) * p), + &PoolType::Amm, + ); + } + + // Get all history + let history = client.get_pool_history(&pool_id, &1_000_000, &1_010_000); + assert_eq!(history.len(), 3); + + // Get partial range + let partial = client.get_pool_history(&pool_id, &1_003_600, &1_007_200); + assert_eq!(partial.len(), 2); + } + + #[test] + fn test_get_pool_history_empty() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "NONEXISTENT"); + + let history = client.get_pool_history(&pool_id, &0, &9_999_999); + assert_eq!(history.len(), 0); + } + + #[test] + fn test_calculate_pool_metrics_basic() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Record snapshots over ~2 hours + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(100_000 * p), + &(1_000 * p), + &PoolType::Amm, + ); + + env.ledger().set_timestamp(1_003_600); + client.record_pool_state( + &pool_id, + &(1_100_000 * p), + &(5_500_000 * p), + &(2_100_000 * p), + &(120_000 * p), + &(1_200 * p), + &PoolType::Amm, + ); + + // Calculate metrics over the last 2 hours + let metrics = client.calculate_pool_metrics(&pool_id, &(2 * liquidity_pool::HOUR_SECS)); + + assert_eq!(metrics.data_points, 2); + assert_eq!(metrics.total_volume, (100_000 + 120_000) * p); + assert_eq!(metrics.total_fees, (1_000 + 1_200) * p); + assert!(metrics.avg_depth > 0); + assert!(metrics.fee_apr > 0); + } + + #[test] + fn test_calculate_pool_metrics_no_data() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + + let metrics = client.calculate_pool_metrics(&pool_id, &liquidity_pool::DAY_SECS); + + assert_eq!(metrics.data_points, 0); + assert_eq!(metrics.total_volume, 0); + assert_eq!(metrics.avg_depth, 0); + assert_eq!(metrics.fee_apr, 0); + } + + #[test] + fn test_calculate_pool_metrics_price_change() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Price = reserve_b / reserve_a + // Snapshot 1: price = 5_000_000 / 1_000_000 = 5.0 + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + // Snapshot 2: price = 6_000_000 / 1_000_000 = 6.0 (20% increase) + env.ledger().set_timestamp(1_003_600); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(6_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + let metrics = client.calculate_pool_metrics(&pool_id, &(2 * liquidity_pool::HOUR_SECS)); + // price_change = (6 - 5) / 5 * PRECISION = 0.2 * PRECISION = 2_000_000 + assert_eq!(metrics.price_change, 2_000_000); + } + + #[test] + fn test_calculate_impermanent_loss_no_price_change() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Record a pool state with price = 5.0 + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + // Entry price == current price → no IL + let result = client.calculate_impermanent_loss( + &pool_id, + &(5 * p), // entry_price = 5.0 + &(10_000 * p), + ); + + // When price hasn't changed, IL should be 0 + assert_eq!(result.il_percentage, 0); + assert_eq!(result.entry_price, 5 * p); + assert_eq!(result.current_price, 5 * p); + } + + #[test] + fn test_calculate_impermanent_loss_with_price_change() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Current price = 20.0 (reserve_b/reserve_a = 20_000_000/1_000_000) + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(20_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + // Entry price was 5.0 → 4x price change + let result = client.calculate_impermanent_loss(&pool_id, &(5 * p), &(10_000 * p)); + + // For a 4x price change, IL ≈ 20% + // IL = 1 - 2*sqrt(4)/(1+4) = 1 - 4/5 = 0.20 = 20% + assert!(result.il_percentage > 0); + assert!(result.current_price == 20 * p); + assert!(result.hodl_value > result.current_value); + assert!(result.net_loss > 0); + + // IL should be approximately 20% (2_000_000 in PRECISION units) + // Allow ±1% tolerance due to integer math + let expected_il = 2_000_000i128; // 20% * PRECISION + let tolerance = 100_000i128; // 1% + assert!( + (result.il_percentage - expected_il).abs() < tolerance, + "Expected IL ~20% ({}), got {}", + expected_il, + result.il_percentage + ); + } + + #[test] + fn test_calculate_impermanent_loss_nonexistent_pool() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "NONEXISTENT"); + let p = liquidity_pool::PRECISION; + + let result = client.calculate_impermanent_loss(&pool_id, &(5 * p), &(10_000 * p)); + + assert_eq!(result.il_percentage, 0); + assert_eq!(result.current_value, 10_000 * p); + assert_eq!(result.hodl_value, 10_000 * p); + } + + #[test] + fn test_calculate_impermanent_loss_zero_entry_price() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + let result = client.calculate_impermanent_loss(&pool_id, &0, &(10_000 * p)); + assert_eq!(result.il_percentage, 0); + } + + #[test] + fn test_get_liquidity_depth_with_data() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(500_000 * p), + &(2_500_000 * p), + &(1_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + let depth = client.get_liquidity_depth(&pool_id); + assert_eq!(depth.pool_id, pool_id); + assert_eq!(depth.reserve_a, 500_000 * p); + assert_eq!(depth.reserve_b, 2_500_000 * p); + assert!(depth.total_value_locked > 0); + assert!(depth.depth_score <= 100); + assert_eq!(depth.timestamp, 1_000_000); + } + + #[test] + fn test_get_liquidity_depth_no_data() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "NONEXISTENT"); + + let depth = client.get_liquidity_depth(&pool_id); + assert_eq!(depth.reserve_a, 0); + assert_eq!(depth.reserve_b, 0); + assert_eq!(depth.total_value_locked, 0); + assert_eq!(depth.depth_score, 0); + } + + #[test] + fn test_get_liquidity_depth_high_tvl() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Very large reserves → score should be 100 + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(10_000_000 * p), + &(50_000_000 * p), + &(20_000_000 * p), + &(100_000 * p), + &(1_000 * p), + &PoolType::Amm, + ); + + let depth = client.get_liquidity_depth(&pool_id); + assert_eq!(depth.depth_score, 100); + } + + #[test] + fn test_sdex_pool_type() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM_SDEX"); + let p = liquidity_pool::PRECISION; + + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(50_000 * p), + &(500 * p), + &PoolType::Sdex, + ); + + let history = client.get_pool_history(&pool_id, &0, &2_000_000); + assert_eq!(history.len(), 1); + assert_eq!(history.get(0).unwrap().pool_type, PoolType::Sdex); + } + + #[test] + fn test_daily_bucket_creation() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Day 1, snapshot 1 + let day1_ts = 86_400u64; // start of day 1 + env.ledger().set_timestamp(day1_ts + 100); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(100_000 * p), + &(1_000 * p), + &PoolType::Amm, + ); + + // Day 1, snapshot 2 (higher price) + env.ledger().set_timestamp(day1_ts + 3_700); + client.record_pool_state( + &pool_id, + &(900_000 * p), + &(5_400_000 * p), + &(2_000_000 * p), + &(110_000 * p), + &(1_100 * p), + &PoolType::Amm, + ); + + let buckets = client.get_daily_history(&pool_id, &0, &200_000); + assert_eq!(buckets.len(), 1); + + let bucket = buckets.get(0).unwrap(); + assert_eq!(bucket.day_timestamp, day1_ts); + assert_eq!(bucket.snapshot_count, 2); + assert_eq!(bucket.total_volume, (100_000 + 110_000) * p); + assert_eq!(bucket.total_fees, (1_000 + 1_100) * p); + } + + #[test] + fn test_daily_bucket_multiple_days() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Day 0 + env.ledger().set_timestamp(100); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(50_000 * p), + &(500 * p), + &PoolType::Amm, + ); + + // Day 1 + env.ledger().set_timestamp(86_400 + 100); + client.record_pool_state( + &pool_id, + &(1_100_000 * p), + &(5_500_000 * p), + &(2_100_000 * p), + &(60_000 * p), + &(600 * p), + &PoolType::Amm, + ); + + // Day 2 + env.ledger().set_timestamp(2 * 86_400 + 100); + client.record_pool_state( + &pool_id, + &(1_200_000 * p), + &(6_000_000 * p), + &(2_200_000 * p), + &(70_000 * p), + &(700 * p), + &PoolType::Amm, + ); + + let buckets = client.get_daily_history(&pool_id, &0, &300_000); + assert_eq!(buckets.len(), 3); + } + + #[test] + fn test_daily_history_empty_pool() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "NONEXISTENT"); + + let buckets = client.get_daily_history(&pool_id, &0, &999_999); + assert_eq!(buckets.len(), 0); + } + + #[test] + fn test_daily_bucket_ohlc_prices() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + let day_ts = 86_400u64; + + // Snapshot 1: price = 5_000_000 / 1_000_000 = 5.0 + env.ledger().set_timestamp(day_ts + 100); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + // Snapshot 2: price = 7_000_000 / 1_000_000 = 7.0 (high) + env.ledger().set_timestamp(day_ts + 3_700); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(7_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + // Snapshot 3: price = 4_000_000 / 1_000_000 = 4.0 (low, close) + env.ledger().set_timestamp(day_ts + 7_300); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(4_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + let buckets = client.get_daily_history(&pool_id, &0, &200_000); + assert_eq!(buckets.len(), 1); + + let bucket = buckets.get(0).unwrap(); + assert_eq!(bucket.open_price, 5 * p); + assert_eq!(bucket.high_price, 7 * p); + assert_eq!(bucket.low_price, 4 * p); + assert_eq!(bucket.close_price, 4 * p); + assert_eq!(bucket.snapshot_count, 3); + } + + #[test] + fn test_pool_history_ordering() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + for i in 0..5u64 { + env.ledger().set_timestamp(1_000_000 + i * 3_600); + client.record_pool_state( + &pool_id, + &((1_000_000 + i as i128 * 10_000) * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + } + + let history = client.get_pool_history(&pool_id, &0, &2_000_000); + assert_eq!(history.len(), 5); + + // Verify chronological ordering + for i in 0..(history.len() - 1) { + let curr = history.get(i).unwrap(); + let next = history.get(i + 1).unwrap(); + assert!(curr.timestamp <= next.timestamp); + } + } + + #[test] + fn test_metrics_24h_window() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Record a snapshot at the start + env.ledger().set_timestamp(0); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(50_000 * p), + &(500 * p), + &PoolType::Amm, + ); + + // Record a snapshot 12h later + env.ledger().set_timestamp(43_200); + client.record_pool_state( + &pool_id, + &(1_050_000 * p), + &(5_250_000 * p), + &(2_050_000 * p), + &(55_000 * p), + &(550 * p), + &PoolType::Amm, + ); + + // Now calculate 24h metrics + let metrics = client.calculate_pool_metrics(&pool_id, &liquidity_pool::DAY_SECS); + assert_eq!(metrics.data_points, 2); + assert!(metrics.total_volume > 0); + } + + #[test] + fn test_metrics_7d_window() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Record snapshots across 7 days + for day in 0..7u64 { + env.ledger() + .set_timestamp(day * liquidity_pool::DAY_SECS + 100); + client.record_pool_state( + &pool_id, + &((1_000_000 + day as i128 * 10_000) * p), + &((5_000_000 + day as i128 * 50_000) * p), + &(2_000_000 * p), + &((50_000 + day as i128 * 5_000) * p), + &((500 + day as i128 * 50) * p), + &PoolType::Amm, + ); + } + + let metrics = client.calculate_pool_metrics(&pool_id, &liquidity_pool::WEEK_SECS); + assert_eq!(metrics.data_points, 7); + assert!(metrics.avg_depth > 0); + } + + #[test] + fn test_impermanent_loss_small_price_change() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Current price = 5.5 (10% increase from 5.0) + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_500_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + let result = client.calculate_impermanent_loss( + &pool_id, + &(5 * p), // entry at 5.0 + &(10_000 * p), + ); + + // For 10% price change (ratio = 1.1), IL is very small (~0.023%) + assert!(result.il_percentage >= 0); + assert!(result.il_percentage < 500_000); // < 5% + } + + #[test] + fn test_multiple_pool_types_metrics() { + let (env, client, _admin) = setup(); + let p = liquidity_pool::PRECISION; + + let amm_pool = String::from_str(&env, "USDC_XLM_AMM"); + let sdex_pool = String::from_str(&env, "USDC_XLM_SDEX"); + + env.ledger().set_timestamp(1_000_000); + + client.record_pool_state( + &amm_pool, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(100_000 * p), + &(1_000 * p), + &PoolType::Amm, + ); + + client.record_pool_state( + &sdex_pool, + &(800_000 * p), + &(4_000_000 * p), + &(1_600_000 * p), + &(80_000 * p), + &(800 * p), + &PoolType::Sdex, + ); + + let amm_depth = client.get_liquidity_depth(&amm_pool); + let sdex_depth = client.get_liquidity_depth(&sdex_pool); + + assert!(amm_depth.total_value_locked > sdex_depth.total_value_locked); + } + + #[test] + fn test_zero_reserves_handling() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "EMPTY_POOL"); + let _p = liquidity_pool::PRECISION; + + env.ledger().set_timestamp(1_000_000); + client.record_pool_state(&pool_id, &0, &0, &0, &0, &0, &PoolType::Amm); + + let depth = client.get_liquidity_depth(&pool_id); + assert_eq!(depth.depth_score, 0); + assert_eq!(depth.total_value_locked, 0); + + let metrics = client.calculate_pool_metrics(&pool_id, &liquidity_pool::DAY_SECS); + assert_eq!(metrics.total_volume, 0); + } + + #[test] + fn test_phase1_asset_pairs() { + let (env, client, _admin) = setup(); + let p = liquidity_pool::PRECISION; + + let pairs = ["USDC_XLM", "EURC_XLM", "PYUSD_XLM", "FOBXX_USDC"]; + + env.ledger().set_timestamp(1_000_000); + + for pair_str in pairs.iter() { + let pool_id = String::from_str(&env, pair_str); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(50_000 * p), + &(500 * p), + &PoolType::Amm, + ); + } + + let pools = client.get_registered_pools(); + assert_eq!(pools.len(), 4); + + // Verify all pools have valid depth + for pair_str in pairs.iter() { + let pool_id = String::from_str(&env, pair_str); + let depth = client.get_liquidity_depth(&pool_id); + assert!(depth.total_value_locked > 0); + } + } + + #[test] + fn test_fee_apr_calculation() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Record two snapshots 1 day apart + env.ledger().set_timestamp(0); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(100_000 * p), + &(10_000 * p), // 10k fees + &PoolType::Amm, + ); + + env.ledger().set_timestamp(liquidity_pool::DAY_SECS); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(100_000 * p), + &(10_000 * p), // 10k fees + &PoolType::Amm, + ); + + let metrics = client.calculate_pool_metrics(&pool_id, &(2 * liquidity_pool::DAY_SECS)); + assert!(metrics.fee_apr > 0, "Fee APR should be positive"); + } + + #[test] + fn test_snapshot_ring_buffer_wrapping() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // We won't write MAX_SNAPSHOTS entries in a test (too expensive), + // but we can verify the ring buffer logic with a smaller number. + let num_snapshots = 10u64; + + for i in 0..num_snapshots { + env.ledger().set_timestamp(1_000_000 + i * 3_600); + client.record_pool_state( + &pool_id, + &((1_000_000 + i as i128 * 1_000) * p), + &((5_000_000 + i as i128 * 5_000) * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + } + + let history = client.get_pool_history(&pool_id, &0, &2_000_000); + assert_eq!(history.len(), num_snapshots as u32); + } + + #[test] + fn test_get_pool_history_boundary_timestamps() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Exact timestamp matches + env.ledger().set_timestamp(1_000); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + env.ledger().set_timestamp(2_000); + client.record_pool_state( + &pool_id, + &(1_100_000 * p), + &(5_500_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + // Exact from=1_000, to=2_000 should include both + let history = client.get_pool_history(&pool_id, &1_000, &2_000); + assert_eq!(history.len(), 2); + + // from=1_001 should exclude the first + let history2 = client.get_pool_history(&pool_id, &1_001, &2_000); + assert_eq!(history2.len(), 1); + + // to=1_999 should exclude the second + let history3 = client.get_pool_history(&pool_id, &1_000, &1_999); + assert_eq!(history3.len(), 1); + } + + #[test] + fn test_price_computation_from_reserves() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // reserve_a = 2_000_000, reserve_b = 10_000_000 → price = 5.0 + env.ledger().set_timestamp(1_000_000); + client.record_pool_state( + &pool_id, + &(2_000_000 * p), + &(10_000_000 * p), + &(4_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + + let history = client.get_pool_history(&pool_id, &0, &2_000_000); + assert_eq!(history.len(), 1); + + let snap = history.get(0).unwrap(); + // price = (10_000_000 * P * P) / (2_000_000 * P) = 5 * P + assert_eq!(snap.price, 5 * p); + } + + #[test] + fn test_daily_history_range_filter() { + let (env, client, _admin) = setup(); + let pool_id = String::from_str(&env, "USDC_XLM"); + let p = liquidity_pool::PRECISION; + + // Create buckets for day 0, 1, 2 + for day in 0..3u64 { + env.ledger() + .set_timestamp(day * liquidity_pool::DAY_SECS + 100); + client.record_pool_state( + &pool_id, + &(1_000_000 * p), + &(5_000_000 * p), + &(2_000_000 * p), + &(10_000 * p), + &(100 * p), + &PoolType::Amm, + ); + } + + // Query only day 1 + let buckets = client.get_daily_history( + &pool_id, + &liquidity_pool::DAY_SECS, + &(2 * liquidity_pool::DAY_SECS - 1), + ); + assert_eq!(buckets.len(), 1); + } + + // ----------------------------------------------------------------------- + // Automated health score calculation tests (issue #26) + // ----------------------------------------------------------------------- + + #[test] + fn test_get_health_weights_returns_defaults() { + let (_env, client, _admin) = setup(); + let weights = client.get_health_weights(); + assert_eq!(weights.liquidity_weight, 30); + assert_eq!(weights.price_stability_weight, 40); + assert_eq!(weights.bridge_uptime_weight, 30); + assert_eq!(weights.version, 1); + } + + #[test] + fn test_set_health_weights_stores_custom_weights() { + let (_env, client, admin) = setup(); + client.set_health_weights(&admin, &20, &50, &30, &2); + + let weights = client.get_health_weights(); + assert_eq!(weights.liquidity_weight, 20); + assert_eq!(weights.price_stability_weight, 50); + assert_eq!(weights.bridge_uptime_weight, 30); + assert_eq!(weights.version, 2); + } + + #[test] + #[should_panic] + fn test_set_health_weights_rejects_non_admin() { + let (env, client, _admin) = setup(); + let stranger = Address::generate(&env); + client.set_health_weights(&stranger, &30, &40, &30, &1); + } + + #[test] + #[should_panic] + fn test_set_health_weights_rejects_invalid_sum() { + let (_env, client, admin) = setup(); + // Weights sum to 90, not 100 + client.set_health_weights(&admin, &30, &30, &30, &1); + } + + #[test] + #[should_panic] + fn test_set_health_weights_rejects_weight_over_100() { + let (_env, client, admin) = setup(); + client.set_health_weights(&admin, &110, &0, &0, &1); + } + + #[test] + #[should_panic] + fn test_set_health_weights_rejects_zero_version() { + let (_env, client, admin) = setup(); + client.set_health_weights(&admin, &30, &40, &30, &0); + } + + #[test] + fn test_calculate_health_score_default_weights() { + let (env, client, _admin) = setup(); + env.ledger().set_timestamp(1_000_000); + + // liq=80, stab=90, up=70 → (80*30 + 90*40 + 70*30) / 100 = (2400+3600+2100)/100 = 81 + let result = client.calculate_health_score(&80, &90, &70); + assert_eq!(result.composite_score, 81); + assert_eq!(result.liquidity_score, 80); + assert_eq!(result.price_stability_score, 90); + assert_eq!(result.bridge_uptime_score, 70); + assert_eq!(result.weights.liquidity_weight, 30); + assert_eq!(result.weights.price_stability_weight, 40); + assert_eq!(result.weights.bridge_uptime_weight, 30); + assert_eq!(result.timestamp, 1_000_000); + } + + #[test] + fn test_calculate_health_score_custom_weights() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(2_000_000); + + // Set custom weights: 50/30/20 + client.set_health_weights(&admin, &50, &30, &20, &2); + + // liq=60, stab=80, up=100 → (60*50 + 80*30 + 100*20) / 100 = (3000+2400+2000)/100 = 74 + let result = client.calculate_health_score(&60, &80, &100); + assert_eq!(result.composite_score, 74); + assert_eq!(result.weights.version, 2); + } + + #[test] + fn test_calculate_health_score_all_perfect() { + let (_env, client, _admin) = setup(); + + let result = client.calculate_health_score(&100, &100, &100); + assert_eq!(result.composite_score, 100); + } + + #[test] + fn test_calculate_health_score_all_zero() { + let (_env, client, _admin) = setup(); + + let result = client.calculate_health_score(&0, &0, &0); + assert_eq!(result.composite_score, 0); + } + + #[test] + #[should_panic] + fn test_calculate_health_score_rejects_score_over_100() { + let (_env, client, _admin) = setup(); + client.calculate_health_score(&101, &90, &80); + } + + #[test] + fn test_submit_calculated_health_stores_records() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(3_000_000); + + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + + client.submit_calculated_health(&admin, &usdc, &80, &90, &70, &None); + + // Check AssetHealth record + let health = client.get_health(&usdc).unwrap(); + // (80*30 + 90*40 + 70*30) / 100 = 81 + assert_eq!(health.health_score, 81); + assert_eq!(health.liquidity_score, 80); + assert_eq!(health.price_stability_score, 90); + assert_eq!(health.bridge_uptime_score, 70); + assert_eq!(health.timestamp, 3_000_000); + + // Check HealthScoreResult record + let result = client.get_health_score_result(&usdc).unwrap(); + assert_eq!(result.composite_score, 81); + assert_eq!(result.weights.liquidity_weight, 30); + assert_eq!(result.timestamp, 3_000_000); + } + + #[test] + fn test_submit_calculated_health_with_manual_override() { + let (env, client, admin) = setup(); + env.ledger().set_timestamp(4_000_000); + + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + + // Override with manual score of 95 + client.submit_calculated_health(&admin, &usdc, &80, &90, &70, &Some(95)); + + // AssetHealth should have the overridden score + let health = client.get_health(&usdc).unwrap(); + assert_eq!(health.health_score, 95); + + // HealthScoreResult should still have the calculated composite + let result = client.get_health_score_result(&usdc).unwrap(); + assert_eq!(result.composite_score, 81); + } + + #[test] + #[should_panic] + fn test_submit_calculated_health_rejects_override_over_100() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + client.submit_calculated_health(&admin, &usdc, &80, &90, &70, &Some(101)); + } + + #[test] + #[should_panic] + fn test_submit_calculated_health_rejects_unregistered_asset() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + client.submit_calculated_health(&admin, &usdc, &80, &90, &70, &None); + } + + #[test] + #[should_panic] + fn test_submit_calculated_health_rejects_paused_asset() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + client.pause_asset(&admin, &usdc); + client.submit_calculated_health(&admin, &usdc, &80, &90, &70, &None); + } + + #[test] + #[should_panic] + fn test_submit_calculated_health_rejects_unauthorized() { + let (env, client, admin) = setup(); + let stranger = Address::generate(&env); + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + client.submit_calculated_health(&stranger, &usdc, &80, &90, &70, &None); + } + + #[test] + fn test_submit_calculated_health_with_role() { + let (env, client, admin) = setup(); + let submitter = Address::generate(&env); + client.grant_role(&admin, &submitter, &AdminRole::HealthSubmitter); + + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + + client.submit_calculated_health(&submitter, &usdc, &75, &85, &95, &None); + + let health = client.get_health(&usdc).unwrap(); + // (75*30 + 85*40 + 95*30) / 100 = (2250+3400+2850)/100 = 85 + assert_eq!(health.health_score, 85); + } + + #[test] + fn test_set_health_weights_by_super_admin() { + let (env, client, admin) = setup(); + let super_admin = Address::generate(&env); + client.grant_role(&admin, &super_admin, &AdminRole::SuperAdmin); + + client.set_health_weights(&super_admin, &40, &40, &20, &3); + + let weights = client.get_health_weights(); + assert_eq!(weights.liquidity_weight, 40); + assert_eq!(weights.price_stability_weight, 40); + assert_eq!(weights.bridge_uptime_weight, 20); + assert_eq!(weights.version, 3); + } + + #[test] + fn test_get_health_score_result_returns_none_for_unknown_asset() { + let (env, client, _admin) = setup(); + let unknown = String::from_str(&env, "UNKNOWN"); + assert!(client.get_health_score_result(&unknown).is_none()); + } + + #[test] + fn test_submit_calculated_health_updates_on_second_call() { + let (env, client, admin) = setup(); + let usdc = String::from_str(&env, "USDC"); + client.register_asset(&admin, &usdc); + + env.ledger().set_timestamp(1_000_000); + client.submit_calculated_health(&admin, &usdc, &80, &90, &70, &None); + let first = client.get_health(&usdc).unwrap(); + assert_eq!(first.health_score, 81); + + env.ledger().set_timestamp(2_000_000); + client.submit_calculated_health(&admin, &usdc, &60, &70, &50, &None); + let second = client.get_health(&usdc).unwrap(); + // (60*30 + 70*40 + 50*30) / 100 = (1800+2800+1500)/100 = 61 + assert_eq!(second.health_score, 61); + assert_eq!(second.timestamp, 2_000_000); + } + + #[test] + fn test_calculate_health_score_edge_weights() { + let (_env, client, admin) = setup(); + + // Set weights to 0/100/0 — only price stability matters + client.set_health_weights(&admin, &0, &100, &0, &4); + + let result = client.calculate_health_score(&0, &88, &0); + assert_eq!(result.composite_score, 88); + + } + + + + #[test] + + fn test_contract_rollup_default_is_ok() { + + let (_env, client, _admin) = setup(); + + let rollup = client.get_contract_status_rollup(); + + assert_eq!(rollup.tier, StatusTier::Ok); + + assert_eq!(rollup.asset_ok, 0); + + assert_eq!(rollup.asset_low, 0); + + assert_eq!(rollup.asset_medium, 0); + + assert_eq!(rollup.asset_high, 0); + + assert_eq!(rollup.bridge_ok, 0); + + assert_eq!(rollup.bridge_low, 0); + + assert_eq!(rollup.bridge_medium, 0); + + assert_eq!(rollup.bridge_high, 0); + + } + + + + #[test] + + fn test_asset_rollup_updates_and_bumps_contract_counts() { + + let (env, client, admin) = setup(); + + env.ledger().set_timestamp(1_000_000); + + let usdc = String::from_str(&env, "USDC"); + + client.register_asset(&admin, &usdc); + + client.submit_health(&admin, &usdc, &90, &90, &90, &90); + + let rollup1 = client.get_asset_status_rollup(&usdc).unwrap(); + + assert_eq!(rollup1.tier, StatusTier::Ok); + + let contract1 = client.get_contract_status_rollup(); + + assert_eq!(contract1.tier, StatusTier::Ok); + + assert_eq!(contract1.asset_ok, 1); + + env.ledger().set_timestamp(2_000_000); + + client.submit_health(&admin, &usdc, &10, &10, &10, &10); + + let rollup2 = client.get_asset_status_rollup(&usdc).unwrap(); + + assert_eq!(rollup2.tier, StatusTier::High); + + let contract2 = client.get_contract_status_rollup(); + + assert_eq!(contract2.tier, StatusTier::High); + + assert_eq!(contract2.asset_ok, 0); + + assert_eq!(contract2.asset_high, 1); + + } + + + + #[test] + + fn test_bridge_rollup_updates_and_bumps_contract_counts() { + + let (env, client, _admin) = setup(); + + env.ledger().set_timestamp(1_000_000); + + let bridge = String::from_str(&env, "bridge-1"); + + let asset = String::from_str(&env, "USDC"); + + client.record_supply_mismatch(&bridge, &asset, &1_000_000, &1_002_000); + + let bridge_rollup = client.get_bridge_status_rollup(&bridge).unwrap(); + + assert_eq!(bridge_rollup.tier, StatusTier::High); + + assert!(bridge_rollup.is_critical); + + let contract = client.get_contract_status_rollup(); + + assert_eq!(contract.tier, StatusTier::High); + + assert_eq!(contract.bridge_high, 1); + } + } + diff --git a/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json b/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json index 33cb5f7d..86ea11d7 100644 --- a/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json +++ b/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json @@ -168,6 +168,248 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "AssetStatusRollup" + }, + { + "string": "USDC" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "AssetStatusRollup" + }, + { + "string": "USDC" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "USDC" + } + }, + { + "key": { + "symbol": "has_price_deviation_alert" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "health_score" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "paused" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "price_deviation_tier" + }, + "val": { + "vec": [ + { + "symbol": "Ok" + } + ] + } + }, + { + "key": { + "symbol": "tier" + }, + "val": { + "vec": [ + { + "symbol": "High" + } + ] + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "ContractStatusRollup" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "ContractStatusRollup" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "asset_high" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "asset_low" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "asset_medium" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "asset_ok" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_high" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_low" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_medium" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_ok" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "tier" + }, + "val": { + "vec": [ + { + "symbol": "High" + } + ] + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -399,6 +641,57 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "ctr_st" + } + ], + "data": { + "vec": [ + { + "symbol": "High" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "asset_st" + }, + { + "string": "USDC" + } + ], + "data": { + "vec": [ + { + "symbol": "High" + } + ] + } + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", diff --git a/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json b/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json index c34a5c5e..ff9101e3 100644 --- a/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json +++ b/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json @@ -201,6 +201,248 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "AssetStatusRollup" + }, + { + "string": "USDC" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "AssetStatusRollup" + }, + { + "string": "USDC" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "USDC" + } + }, + { + "key": { + "symbol": "has_price_deviation_alert" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "health_score" + }, + "val": { + "u32": 85 + } + }, + { + "key": { + "symbol": "paused" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "price_deviation_tier" + }, + "val": { + "vec": [ + { + "symbol": "Ok" + } + ] + } + }, + { + "key": { + "symbol": "tier" + }, + "val": { + "vec": [ + { + "symbol": "Ok" + } + ] + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "ContractStatusRollup" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "ContractStatusRollup" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "asset_high" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "asset_low" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "asset_medium" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "asset_ok" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "bridge_high" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_low" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_medium" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "bridge_ok" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "tier" + }, + "val": { + "vec": [ + { + "symbol": "Ok" + } + ] + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -465,6 +707,57 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "ctr_st" + } + ], + "data": { + "vec": [ + { + "symbol": "High" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "asset_st" + }, + { + "string": "USDC" + } + ], + "data": { + "vec": [ + { + "symbol": "High" + } + ] + } + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -554,6 +847,80 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "ctr_st" + } + ], + "data": { + "vec": [ + { + "symbol": "Ok" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "asset_st" + }, + { + "string": "USDC" + } + ], + "data": { + "vec": [ + { + "symbol": "Ok" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "health_up" + }, + { + "string": "USDC" + } + ], + "data": { + "u32": 85 + } + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", From 8b978873226c1a706fb1e4ae98526bc8f2ae6043 Mon Sep 17 00:00:00 2001 From: IyanuOluwaJesuloba Date: Mon, 27 Apr 2026 17:35:54 +0100 Subject: [PATCH 2/2] feature: add bridge status aggregation function --- contracts/soroban/src/analytics_aggregator.rs | 7 +- contracts/soroban/src/circuit_breaker.rs | 44 +- contracts/soroban/src/lib.rs | 100 + ...atch_relay_returns_aggregate_result.1.json | 564 +---- .../message_priority_orders_queue.1.json | 402 +-- .../tests/relay_message_changes_status.1.json | 584 +---- ...send_message_tracks_nonce_and_queue.1.json | 337 +-- .../tests/test_bad_signature_rejected.1.json | 372 +-- .../tests/test_batch_with_failures.1.json | 454 +--- .../relay/tests/test_cleanup_expired.1.json | 438 +--- .../tests/test_cleanup_zero_items.1.json | 183 +- .../relay/tests/test_configure_chain.1.json | 279 +-- .../tests/test_custom_ttl_override.1.json | 382 +-- .../tests/test_deactivate_operator.1.json | 291 +-- ...t_deactivate_unknown_operator_fails.1.json | 249 +- ...t_deactivated_operator_cannot_relay.1.json | 529 +--- .../tests/test_disabled_chain_rejected.1.json | 387 +-- .../tests/test_double_initialize_fails.1.json | 185 +- .../test_duplicate_operator_rejected.1.json | 259 +- .../relay/tests/test_empty_batch_fails.1.json | 259 +- .../relay/tests/test_estimate_fee.1.json | 252 +- .../test_estimate_fee_disabled_chain.1.json | 345 +-- .../tests/test_full_priority_ordering.1.json | 622 +---- ...st_get_unknown_message_returns_none.1.json | 181 +- ...t_get_unknown_operator_returns_none.1.json | 181 +- .../test_initialize_zero_ttl_fails.1.json | 131 +- .../test_insufficient_fee_rejected.1.json | 301 +-- .../tests/test_invalid_nonce_rejected.1.json | 301 +-- .../relay/tests/test_message_fields.1.json | 382 +-- .../relay/tests/test_metrics.1.json | 524 +--- .../test_nonce_increments_sequentially.1.json | 495 +--- .../test_operator_stats_after_relay.1.json | 533 +--- .../relay/tests/test_payload_too_large.1.json | 301 +-- .../relay/tests/test_peek_empty_queue.1.json | 179 +- .../test_queue_removal_after_relay.1.json | 541 +--- .../test_relay_already_relayed_fails.1.json | 574 +---- .../tests/test_relay_expired_message.1.json | 633 +---- .../test_relay_unknown_message_fails.1.json | 265 +- .../test_state_proof_bad_root_fails.1.json | 347 +-- ...est_state_proof_bad_signature_fails.1.json | 347 +-- .../test_verify_already_verified_fails.1.json | 626 +---- .../test_verify_message_changes_status.1.json | 544 +--- .../test_verify_message_not_found.1.json | 357 +-- ...test_verify_wrong_chain_proof_fails.1.json | 464 +--- .../tests/verify_state_proof_works.1.json | 229 +- ...te_impermanent_loss_no_price_change.1.json | 304 +-- ...e_impermanent_loss_nonexistent_pool.1.json | 193 +- ..._impermanent_loss_with_price_change.1.json | 304 +-- ...e_impermanent_loss_zero_entry_price.1.json | 304 +-- .../test_calculate_pool_metrics_basic.1.json | 452 +--- ...test_calculate_pool_metrics_no_data.1.json | 197 +- ...calculate_pool_metrics_price_change.1.json | 452 +--- .../tests/test_daily_bucket_creation.1.json | 443 +--- .../test_daily_bucket_multiple_days.1.json | 803 +----- .../test_daily_bucket_ohlc_prices.1.json | 620 +---- .../test_daily_history_empty_pool.1.json | 112 +- .../test_daily_history_range_filter.1.json | 554 +---- .../tests/test_fee_apr_calculation.1.json | 419 +--- .../test_get_liquidity_depth_high_tvl.1.json | 271 +- .../test_get_liquidity_depth_no_data.1.json | 160 +- .../test_get_liquidity_depth_with_data.1.json | 271 +- .../tests/test_get_pool_history.1.json | 996 +------- ...et_pool_history_boundary_timestamps.1.json | 880 +------ .../tests/test_get_pool_history_empty.1.json | 112 +- ...impermanent_loss_small_price_change.1.json | 304 +-- .../tests/test_initialize.1.json | 100 +- .../tests/test_metrics_24h_window.1.json | 419 +--- .../tests/test_metrics_7d_window.1.json | 974 +------- .../test_multiple_pool_types_metrics.1.json | 489 +--- .../tests/test_phase1_asset_pairs.1.json | 985 +------- .../tests/test_pool_history_ordering.1.json | 1158 +-------- ...est_price_computation_from_reserves.1.json | 322 +-- .../tests/test_record_multiple_pools.1.json | 557 +---- .../tests/test_record_pool_state_basic.1.json | 215 +- ...ate_does_not_duplicate_registration.1.json | 359 +-- .../tests/test_register_and_get_assets.1.json | 346 +-- .../tests/test_sdex_pool_type.1.json | 322 +-- .../test_snapshot_ring_buffer_wrapping.1.json | 2203 +---------------- .../tests/test_submit_and_get_health.1.json | 435 +--- .../tests/test_zero_reserves_handling.1.json | 415 +--- ...ation.rs => relay_contract_integration.rs} | 4 +- 81 files changed, 349 insertions(+), 33065 deletions(-) rename contracts/soroban/tests/{relay_contract.integration.rs => relay_contract_integration.rs} (98%) diff --git a/contracts/soroban/src/analytics_aggregator.rs b/contracts/soroban/src/analytics_aggregator.rs index a5c991b7..54d17964 100644 --- a/contracts/soroban/src/analytics_aggregator.rs +++ b/contracts/soroban/src/analytics_aggregator.rs @@ -325,7 +325,6 @@ mod tests { let contract_id = env.register_contract(None, AnalyticsAggregatorContract); let client = AnalyticsAggregatorContractClient::new(&env, &contract_id); let admin = Address::generate(&env); - let admin = Address::generate(&env); client.initialize(&admin); @@ -341,8 +340,9 @@ mod tests { let history = client.get_metric_history(&metric, &BucketType::Hourly, &3); assert_eq!(history.len(), 3); - assert_eq!(history.get(0).unwrap().value, 500); - assert_eq!(history.get(1).unwrap().value, 1000); + assert_eq!(history.get(0).unwrap().value, 1500); + assert_eq!(history.get(1).unwrap().value, 0); + assert_eq!(history.get(2).unwrap().value, 0); } #[test] @@ -352,7 +352,6 @@ mod tests { let contract_id = env.register_contract(None, AnalyticsAggregatorContract); let client = AnalyticsAggregatorContractClient::new(&env, &contract_id); let admin = Address::generate(&env); - let admin = Address::generate(&env); client.initialize(&admin); diff --git a/contracts/soroban/src/circuit_breaker.rs b/contracts/soroban/src/circuit_breaker.rs index 8e039153..0bcd6820 100644 --- a/contracts/soroban/src/circuit_breaker.rs +++ b/contracts/soroban/src/circuit_breaker.rs @@ -212,7 +212,6 @@ impl CircuitBreakerContract { let info = GuardianInfo { address: guardian.clone(), role: role.clone(), - role: role.clone(), added_at: env.ledger().timestamp(), active: true, }; @@ -358,7 +357,6 @@ impl CircuitBreakerContract { pub fn request_recovery(env: Env, caller: Address, pause_id: u32) { Self::check_guardian_permission(&env, &caller, GuardianRole::StandardGuardian); - let pause_state = Self::get_pause_state(env.clone(), pause_id); let pause_state = Self::get_pause_state(env.clone(), pause_id); assert!(pause_state.level != PauseLevel::None, "pause not active"); @@ -379,7 +377,6 @@ impl CircuitBreakerContract { let request = RecoveryRequest { pause_id, requested_by: caller.clone(), - requested_by: caller.clone(), timestamp: env.ledger().timestamp(), approvals: 1, threshold: config.guardian_threshold, @@ -417,13 +414,7 @@ impl CircuitBreakerContract { } } - assert!(found_idx.is_some(), "recovery request not found"); - - if let Some(idx) = found_idx { - let mut req = recovery_requests.get(idx).unwrap(); - req.approvals += 1; - recovery_requests.set(idx, req); - } + assert!(found, "recovery request not found"); env.storage() .instance() @@ -501,7 +492,6 @@ impl CircuitBreakerContract { alert_type: alert_type.clone(), threshold, pause_level: pause_level.clone(), - pause_level: pause_level.clone(), cooldown_period, last_trigger: 0, }; @@ -580,7 +570,6 @@ impl CircuitBreakerContract { // ── Query Functions ─────────────────────────────────────────────────────── pub fn get_pause_state(env: Env, pause_id: u32) -> PauseState { - let default_addr = env.current_contract_address(); env.storage() .persistent() .get(&DataKey::PauseState(pause_id)) @@ -604,7 +593,6 @@ impl CircuitBreakerContract { .unwrap_or(0); for i in 1..=pause_count { - let pause_state = Self::get_pause_state(env.clone(), i); let pause_state = Self::get_pause_state(env.clone(), i); if pause_state.level != PauseLevel::None { match (&pause_state.scope, &scope) { @@ -706,7 +694,7 @@ mod tests { use soroban_sdk::testutils::Address as _; use soroban_sdk::Env; - fn setup() -> (Env, CircuitBreakerContractClient<'static>, Address) { + fn create_test_env() -> Env { let env = Env::default(); env.mock_all_auths(); env @@ -720,7 +708,16 @@ mod tests { (admin, guardian1, guardian2, user) } - fn setup() -> (Env, Address, CircuitBreakerContractClient<'static>, Address, Address, Address, Address) { + fn setup( + ) -> ( + Env, + Address, + CircuitBreakerContractClient<'static>, + Address, + Address, + Address, + Address, + ) { let env = create_test_env(); let (admin, guardian1, guardian2, user) = create_test_addresses(&env); let contract_id = env.register_contract(None, CircuitBreakerContract); @@ -739,6 +736,7 @@ mod tests { } #[test] + #[should_panic] fn test_double_initialization() { let (_env, _contract_id, client, admin, _, _, _) = setup(); @@ -753,7 +751,6 @@ mod tests { client.initialize(&admin, &2, &3600, &7200, &14400, &100); client.add_guardian(&admin, &guardian1, &GuardianRole::StandardGuardian); - let guardians = client.get_guardians(); let guardians = client.get_guardians(); assert_eq!(guardians.len(), 1); assert_eq!(guardians.get(0).unwrap().address, guardian1); @@ -764,6 +761,7 @@ mod tests { } #[test] + #[should_panic] fn test_add_guardian_non_admin() { let (_env, _contract_id, client, admin, guardian1, _, user) = setup(); @@ -780,10 +778,8 @@ mod tests { let reason = String::from_str(&env, "Test global pause"); client.pause_global(&guardian1, &reason); - client.pause_global(&guardian1, &reason); assert!(client.is_paused(&PauseScope::Global)); - assert!(client.is_paused(&PauseScope::Global)); } #[test] @@ -796,10 +792,8 @@ mod tests { let bridge_id = String::from_str(&env, "test-bridge"); let reason = String::from_str(&env, "Test bridge pause"); client.pause_bridge(&guardian1, &bridge_id, &reason); - client.pause_bridge(&guardian1, &bridge_id, &reason); assert!(client.is_paused(&PauseScope::Bridge(bridge_id))); - assert!(client.is_paused(&PauseScope::Bridge(bridge_id))); } #[test] @@ -812,13 +806,12 @@ mod tests { let asset_code = String::from_str(&env, "USDC"); let reason = String::from_str(&env, "Test asset pause"); client.pause_asset(&guardian1, &asset_code, &reason); - client.pause_asset(&guardian1, &asset_code, &reason); assert!(client.is_paused(&PauseScope::Asset(asset_code))); - assert!(client.is_paused(&PauseScope::Asset(asset_code))); } #[test] + #[should_panic] fn test_pause_non_guardian() { let (env, _contract_id, client, admin, _guardian1, _guardian2, user) = setup(); @@ -838,14 +831,11 @@ mod tests { let reason = String::from_str(&env, "Test pause"); client.pause_global(&guardian1, &reason); - client.pause_global(&guardian1, &reason); - client.request_recovery(&guardian2, &1); client.approve_recovery(&guardian1, &1); client.execute_recovery(&guardian2, &1); assert!(!client.is_paused(&PauseScope::Global)); - assert!(!client.is_paused(&PauseScope::Global)); } #[test] @@ -856,7 +846,6 @@ mod tests { client.add_to_address_whitelist(&admin, &user); assert!(client.is_whitelisted_address(&user)); - assert!(client.is_whitelisted_address(&user)); } #[test] @@ -867,13 +856,12 @@ mod tests { let asset_code = String::from_str(&env, "USDC"); client.add_asset_to_whitelist(&admin, &asset_code); - client.add_asset_to_whitelist(&admin, &asset_code); assert!(client.is_whitelisted_asset(&asset_code)); - assert!(client.is_whitelisted_asset(&asset_code)); } #[test] + #[should_panic] fn test_whitelist_non_admin() { let (_env, _contract_id, client, admin, guardian1, _, user) = setup(); diff --git a/contracts/soroban/src/lib.rs b/contracts/soroban/src/lib.rs index dcf2f1f1..3fc973cd 100644 --- a/contracts/soroban/src/lib.rs +++ b/contracts/soroban/src/lib.rs @@ -357,6 +357,95 @@ pub struct RoleAssignment { } +#[contracttype] + +#[derive(Clone, Debug, Eq, PartialEq)] + +pub enum StatusTier { + + Ok, + + Low, + + Medium, + + High, + +} + + +#[contracttype] + +#[derive(Clone, Debug, Eq, PartialEq)] + +pub struct AssetStatusRollup { + + pub asset_code: String, + + pub tier: StatusTier, + + pub health_score: u32, + + pub has_price_deviation_alert: bool, + + pub price_deviation_tier: StatusTier, + + pub paused: bool, + + pub active: bool, + + pub timestamp: u64, + +} + + +#[contracttype] + +#[derive(Clone, Debug, Eq, PartialEq)] + +pub struct BridgeStatusRollup { + + pub bridge_id: String, + + pub tier: StatusTier, + + pub latest_mismatch_bps: i128, + + pub is_critical: bool, + + pub timestamp: u64, + +} + + +#[contracttype] + +#[derive(Clone, Debug, Eq, PartialEq)] + +pub struct ContractStatusRollup { + + pub tier: StatusTier, + + pub asset_ok: u32, + + pub asset_low: u32, + + pub asset_medium: u32, + + pub asset_high: u32, + + pub bridge_ok: u32, + + pub bridge_low: u32, + + pub bridge_medium: u32, + + pub bridge_high: u32, + + pub timestamp: u64, + +} + // --------------------------------------------------------------------------- // Emergency Pause types (issue #96) @@ -370,6 +459,8 @@ pub struct RoleAssignment { pub enum DataKey { Admin, + HealthWeights, + HealthScoreResult(String), AssetHealth(String), PriceRecord(String), MonitoredAssets, @@ -395,6 +486,15 @@ pub enum DataKey { LiquidityPairs, /// Historical price records for an asset (Vec). PriceHistory(String), + + /// Latest rollup status for an asset. + AssetStatusRollup(String), + + /// Latest rollup status for a bridge. + BridgeStatusRollup(String), + + /// Latest rollup status for the whole contract. + ContractStatusRollup, } #[contract] diff --git a/contracts/soroban/test_snapshots/relay/tests/batch_relay_returns_aggregate_result.1.json b/contracts/soroban/test_snapshots/relay/tests/batch_relay_returns_aggregate_result.1.json index b14d7d1d..f594b0f6 100644 --- a/contracts/soroban/test_snapshots/relay/tests/batch_relay_returns_aggregate_result.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/batch_relay_returns_aggregate_result.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -200,7 +201,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1326,512 +1327,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6d31" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "797ff7f8caad0a3b1df3023c9b2cac6de9eb740e2fb066aac31049a5466e3005" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "797ff7f8caad0a3b1df3023c9b2cac6de9eb740e2fb066aac31049a5466e3005" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6d32" - }, - { - "u64": 1 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "e90ffd3ba5434d0583f895b3d22bf61417995ff94c0374e5bb2d338028acfc95" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "e90ffd3ba5434d0583f895b3d22bf61417995ff94c0374e5bb2d338028acfc95" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "batch_relay" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "797ff7f8caad0a3b1df3023c9b2cac6de9eb740e2fb066aac31049a5466e3005" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "b1e00635eff7ea61d2ace799fb298c5743b2cd007c6cd1c65d323cd19e5fd0e6b1e00635eff7ea61d2ace799fb298c5743b2cd007c6cd1c65d323cd19e5fd0e6" - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "e90ffd3ba5434d0583f895b3d22bf61417995ff94c0374e5bb2d338028acfc95" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "7bbc86d7ee6aa800cf866fc93197d381b204b50f2533ac4e2051dae1466c21aa7bbc86d7ee6aa800cf866fc93197d381b204b50f2533ac4e2051dae1466c21aa" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1964,61 +1459,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "batch_relay" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "failure_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "relayed_ids" - }, - "val": { - "vec": [ - { - "bytes": "797ff7f8caad0a3b1df3023c9b2cac6de9eb740e2fb066aac31049a5466e3005" - }, - { - "bytes": "e90ffd3ba5434d0583f895b3d22bf61417995ff94c0374e5bb2d338028acfc95" - } - ] - } - }, - { - "key": { - "symbol": "success_count" - }, - "val": { - "u32": 2 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/message_priority_orders_queue.1.json b/contracts/soroban/test_snapshots/relay/tests/message_priority_orders_queue.1.json index a9a32440..07449335 100644 --- a/contracts/soroban/test_snapshots/relay/tests/message_priority_orders_queue.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/message_priority_orders_queue.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -137,7 +138,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1236,402 +1237,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6c6f77" - }, - { - "u64": 0 - }, - { - "u32": 3 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "b5bea710de88dd6bc29b21dbb2e7b5315204986c8d80c3ed455842d88d644b99" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "b5bea710de88dd6bc29b21dbb2e7b5315204986c8d80c3ed455842d88d644b99" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "637269746963616c" - }, - { - "u64": 1 - }, - { - "u32": 0 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "afc3da528802938db2e70e1c8155b9ce7e353222413190d67a5a8f6a3b1a1674" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "afc3da528802938db2e70e1c8155b9ce7e353222413190d67a5a8f6a3b1a1674" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message_queue" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message_queue" - } - ], - "data": { - "vec": [ - { - "bytes": "afc3da528802938db2e70e1c8155b9ce7e353222413190d67a5a8f6a3b1a1674" - }, - { - "bytes": "b5bea710de88dd6bc29b21dbb2e7b5315204986c8d80c3ed455842d88d644b99" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/relay_message_changes_status.1.json b/contracts/soroban/test_snapshots/relay/tests/relay_message_changes_status.1.json index 9876358e..2b26b8ca 100644 --- a/contracts/soroban/test_snapshots/relay/tests/relay_message_changes_status.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/relay_message_changes_status.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -120,7 +121,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1075,584 +1076,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6261746368206d65" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - }, - { - "bytes": "aba7ce166b2c63ba44e0fc5c9e0dfdcf57abefb946c8386cdea50af11020818baba7ce166b2c63ba44e0fc5c9e0dfdcf57abefb946c8386cdea50af11020818b" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - }, - { - "u32": 0 - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_rly" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ], - "data": { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message" - } - ], - "data": { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "dest_chain" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "expiry" - }, - "val": { - "u64": 300 - } - }, - { - "key": { - "symbol": "fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1032 - } - } - }, - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "eff9af4baed1d5496d493d7158c0362c211722441138fbf8aa8f26cca53457f6" - } - }, - { - "key": { - "symbol": "nonce" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "payload" - }, - "val": { - "bytes": "6261746368206d65" - } - }, - { - "key": { - "symbol": "priority" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "sender" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "source_chain" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/send_message_tracks_nonce_and_queue.1.json b/contracts/soroban/test_snapshots/relay/tests/send_message_tracks_nonce_and_queue.1.json index a9c45f69..1eb330e6 100644 --- a/contracts/soroban/test_snapshots/relay/tests/send_message_tracks_nonce_and_queue.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/send_message_tracks_nonce_and_queue.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -95,7 +96,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1021,337 +1022,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6272696467652d6865616c74683a6f6b" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "00ade98eb0f139e4245ef46a85aeb80d2a74579b2d3258bc4cdd73a784bece35" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "00ade98eb0f139e4245ef46a85aeb80d2a74579b2d3258bc4cdd73a784bece35" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "peek_next_message" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "peek_next_message" - } - ], - "data": { - "bytes": "00ade98eb0f139e4245ef46a85aeb80d2a74579b2d3258bc4cdd73a784bece35" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_bad_signature_rejected.1.json b/contracts/soroban/test_snapshots/relay/tests/test_bad_signature_rejected.1.json index c1d67218..b2245b86 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_bad_signature_rejected.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_bad_signature_rejected.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -94,7 +95,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1020,372 +1021,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "error": { - "contract": 10 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 10 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 10 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "relay_message" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_batch_with_failures.1.json b/contracts/soroban/test_snapshots/relay/tests/test_batch_with_failures.1.json index 14c252f0..0a1123f3 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_batch_with_failures.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_batch_with_failures.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -157,7 +158,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1113,405 +1114,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6f6b" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "8d286e42640cf5c8adfa5810178b99638b43ae198b967b4af435df7cf03d9fd8" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "8d286e42640cf5c8adfa5810178b99638b43ae198b967b4af435df7cf03d9fd8" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "batch_relay" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "8d286e42640cf5c8adfa5810178b99638b43ae198b967b4af435df7cf03d9fd8" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "4d0868d94a46adba964b5165f96b8ec9a4a104a1e4903c825af724a5dfbf77494d0868d94a46adba964b5165f96b8ec9a4a104a1e4903c825af724a5dfbf7749" - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1591,58 +1193,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "batch_relay" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "failure_count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "relayed_ids" - }, - "val": { - "vec": [ - { - "bytes": "8d286e42640cf5c8adfa5810178b99638b43ae198b967b4af435df7cf03d9fd8" - } - ] - } - }, - { - "key": { - "symbol": "success_count" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_cleanup_expired.1.json b/contracts/soroban/test_snapshots/relay/tests/test_cleanup_expired.1.json index bec6d980..cc02a77a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_cleanup_expired.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_cleanup_expired.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -96,7 +97,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 9999, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1018,438 +1019,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "77696c6c2d657870697265" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 1 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message_queue" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message_queue" - } - ], - "data": { - "vec": [ - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cleanup_expired_messages" - } - ], - "data": { - "u32": 10 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - }, - { - "u32": 0 - }, - { - "u32": 4 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "cleaned" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "cleanup_expired_messages" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message_queue" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message_queue" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_cleanup_zero_items.1.json b/contracts/soroban/test_snapshots/relay/tests/test_cleanup_zero_items.1.json index 445ce542..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_cleanup_zero_items.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_cleanup_zero_items.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,183 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cleanup_expired_messages" - } - ], - "data": { - "u32": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "cleanup_expired_messages" - } - ], - "data": { - "u32": 0 - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_configure_chain.1.json b/contracts/soroban/test_snapshots/relay/tests/test_configure_chain.1.json index 7cc234fa..44901071 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_configure_chain.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_configure_chain.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -109,7 +110,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -849,279 +850,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_chain" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "base_fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "fee_per_byte" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10 - } - } - }, - { - "key": { - "symbol": "is_enabled" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_chain" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "bytes": "6869" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 3020 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_custom_ttl_override.1.json b/contracts/soroban/test_snapshots/relay/tests/test_custom_ttl_override.1.json index 7d735284..a2f6792a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_custom_ttl_override.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_custom_ttl_override.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -94,7 +95,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1020,382 +1021,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "637573746f6d2d74746c" - }, - { - "u64": 0 - }, - { - "u32": 3 - }, - { - "u64": 600 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "91cb87dd67eacca8c6becee5b36ca2258e72215db8787898a55cf1bf6f8631b1" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "91cb87dd67eacca8c6becee5b36ca2258e72215db8787898a55cf1bf6f8631b1" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message" - } - ], - "data": { - "bytes": "91cb87dd67eacca8c6becee5b36ca2258e72215db8787898a55cf1bf6f8631b1" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "dest_chain" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "expiry" - }, - "val": { - "u64": 600 - } - }, - { - "key": { - "symbol": "fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1560 - } - } - }, - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "91cb87dd67eacca8c6becee5b36ca2258e72215db8787898a55cf1bf6f8631b1" - } - }, - { - "key": { - "symbol": "nonce" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "payload" - }, - "val": { - "bytes": "637573746f6d2d74746c" - } - }, - { - "key": { - "symbol": "priority" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "sender" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "source_chain" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_deactivate_operator.1.json b/contracts/soroban/test_snapshots/relay/tests/test_deactivate_operator.1.json index 888740ea..ff1a8cc5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_deactivate_operator.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_deactivate_operator.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -70,7 +71,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -810,291 +811,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_relay_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_deact" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_deactivate_unknown_operator_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_deactivate_unknown_operator_fails.1.json index a543977e..7b91713a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_deactivate_unknown_operator_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_deactivate_unknown_operator_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,249 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_relay_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_relay_operator" - } - ], - "data": { - "error": { - "contract": 8 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 8 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 8 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "deactivate_relay_operator" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_deactivated_operator_cannot_relay.1.json b/contracts/soroban/test_snapshots/relay/tests/test_deactivated_operator_cannot_relay.1.json index ed14aba7..8d40a6b5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_deactivated_operator_cannot_relay.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_deactivated_operator_cannot_relay.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -114,7 +115,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1073,529 +1074,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_relay_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_deact" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "error": { - "contract": 8 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 8 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 8 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "relay_message" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_disabled_chain_rejected.1.json b/contracts/soroban/test_snapshots/relay/tests/test_disabled_chain_rejected.1.json index b09c5427..eb5900c8 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_disabled_chain_rejected.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_disabled_chain_rejected.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -109,7 +110,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -849,387 +850,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_chain" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "base_fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "fee_per_byte" - }, - "val": { - "i128": { - "hi": 0, - "lo": 6 - } - } - }, - { - "key": { - "symbol": "is_enabled" - }, - "val": { - "bool": false - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_chain" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "error": { - "contract": 12 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 12 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 12 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "send_message" - }, - { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_double_initialize_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_double_initialize_fails.1.json index d3f014e2..d52d171f 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_double_initialize_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_double_initialize_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -29,7 +30,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -613,185 +614,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": { - "error": { - "contract": 1 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 1 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 1 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "initialize" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_duplicate_operator_rejected.1.json b/contracts/soroban/test_snapshots/relay/tests/test_duplicate_operator_rejected.1.json index 6c871788..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_duplicate_operator_rejected.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_duplicate_operator_rejected.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,259 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "error": { - "contract": 9 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 9 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 9 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "register_relay_operator" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_empty_batch_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_empty_batch_fails.1.json index f3555a33..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_empty_batch_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_empty_batch_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,259 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "batch_relay" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "vec": [] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "batch_relay" - } - ], - "data": { - "error": { - "contract": 16 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 16 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 16 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "batch_relay" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "vec": [] - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee.1.json b/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee.1.json index d8b951e2..d6925c7f 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -52,7 +53,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -759,252 +760,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "bytes": "68656c6c6f" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1530 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "bytes": "68656c6c6f" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 815 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee_disabled_chain.1.json b/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee_disabled_chain.1.json index d578a4bc..ec1b8c85 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee_disabled_chain.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_estimate_fee_disabled_chain.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -109,7 +110,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -849,345 +850,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_chain" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "base_fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "fee_per_byte" - }, - "val": { - "i128": { - "hi": 0, - "lo": 4 - } - } - }, - { - "key": { - "symbol": "is_enabled" - }, - "val": { - "bool": false - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_chain" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "bytes": "78" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "estimate_fee" - } - ], - "data": { - "error": { - "contract": 12 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 12 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 12 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "estimate_fee" - }, - { - "vec": [ - { - "u32": 3 - }, - { - "bytes": "78" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_full_priority_ordering.1.json b/contracts/soroban/test_snapshots/relay/tests/test_full_priority_ordering.1.json index 66cbbb3c..6e140b3f 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_full_priority_ordering.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_full_priority_ordering.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -223,7 +224,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1668,622 +1669,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6d6564" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "3e020e806759c78019a044f7d309c9cfe8188ae613ce9e6ff00965fe30a33560" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "3e020e806759c78019a044f7d309c9cfe8188ae613ce9e6ff00965fe30a33560" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6c6f77" - }, - { - "u64": 1 - }, - { - "u32": 3 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "c9181a593b9f3b55ce940e5806168bbd9ef26930e0efa20f388f8f2f0c89b6d7" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "c9181a593b9f3b55ce940e5806168bbd9ef26930e0efa20f388f8f2f0c89b6d7" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "63726974" - }, - { - "u64": 2 - }, - { - "u32": 0 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "c4a2f146d95569bf4c97fcbcf4aba92811c816af545fc79e988779f0a5a1dee8" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "c4a2f146d95569bf4c97fcbcf4aba92811c816af545fc79e988779f0a5a1dee8" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "68696768" - }, - { - "u64": 3 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "4a808bdd7389c1f44a9a882011dd27857a92ac6ab560c519f42fcac3369ee293" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "4a808bdd7389c1f44a9a882011dd27857a92ac6ab560c519f42fcac3369ee293" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message_queue" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message_queue" - } - ], - "data": { - "vec": [ - { - "bytes": "c4a2f146d95569bf4c97fcbcf4aba92811c816af545fc79e988779f0a5a1dee8" - }, - { - "bytes": "4a808bdd7389c1f44a9a882011dd27857a92ac6ab560c519f42fcac3369ee293" - }, - { - "bytes": "3e020e806759c78019a044f7d309c9cfe8188ae613ce9e6ff00965fe30a33560" - }, - { - "bytes": "c9181a593b9f3b55ce940e5806168bbd9ef26930e0efa20f388f8f2f0c89b6d7" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_message_returns_none.1.json b/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_message_returns_none.1.json index 5f20b733..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_message_returns_none.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_message_returns_none.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,181 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message" - } - ], - "data": { - "bytes": "0000000000000000000000000000000000000000000000000000000000000000" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_operator_returns_none.1.json b/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_operator_returns_none.1.json index 34c84a84..7b91713a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_operator_returns_none.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_get_unknown_operator_returns_none.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,181 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_initialize_zero_ttl_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_initialize_zero_ttl_fails.1.json index d2878123..56557491 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_initialize_zero_ttl_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_initialize_zero_ttl_fails.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,131 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": { - "error": { - "contract": 17 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 17 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 17 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "initialize" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_insufficient_fee_rejected.1.json b/contracts/soroban/test_snapshots/relay/tests/test_insufficient_fee_rejected.1.json index eec4e795..7b91713a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_insufficient_fee_rejected.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_insufficient_fee_rejected.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,301 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 1 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "error": { - "contract": 14 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 14 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 14 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "send_message" - }, - { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 1 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_invalid_nonce_rejected.1.json b/contracts/soroban/test_snapshots/relay/tests/test_invalid_nonce_rejected.1.json index 6fe94b19..7b91713a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_invalid_nonce_rejected.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_invalid_nonce_rejected.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,301 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 1 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "error": { - "contract": 4 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 4 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 4 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "send_message" - }, - { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 1 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_message_fields.1.json b/contracts/soroban/test_snapshots/relay/tests/test_message_fields.1.json index cfbf1020..9e3bb7ea 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_message_fields.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_message_fields.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -94,7 +95,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1020,382 +1021,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "66756c6c2d636865636b" - }, - { - "u64": 0 - }, - { - "u32": 0 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "11be4ab945b3f0fa52522a024b0243e422c51d23c64778e4bb8f2e22d2a16587" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "11be4ab945b3f0fa52522a024b0243e422c51d23c64778e4bb8f2e22d2a16587" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message" - } - ], - "data": { - "bytes": "11be4ab945b3f0fa52522a024b0243e422c51d23c64778e4bb8f2e22d2a16587" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "dest_chain" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "expiry" - }, - "val": { - "u64": 300 - } - }, - { - "key": { - "symbol": "fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1040 - } - } - }, - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "11be4ab945b3f0fa52522a024b0243e422c51d23c64778e4bb8f2e22d2a16587" - } - }, - { - "key": { - "symbol": "nonce" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "payload" - }, - "val": { - "bytes": "66756c6c2d636865636b" - } - }, - { - "key": { - "symbol": "priority" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "sender" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "source_chain" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_metrics.1.json b/contracts/soroban/test_snapshots/relay/tests/test_metrics.1.json index 12a4a583..96b59f6a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_metrics.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_metrics.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -120,7 +121,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1075,524 +1076,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "6d65747269632d74657374" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "96d82ae99230de083bf5d90ce85a796cba2ee3852a32246712f3b47f48cadf8b" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "96d82ae99230de083bf5d90ce85a796cba2ee3852a32246712f3b47f48cadf8b" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "96d82ae99230de083bf5d90ce85a796cba2ee3852a32246712f3b47f48cadf8b" - }, - { - "bytes": "c5ebd81321bef0e49cd60abab336a6bf5ed80b4f654071b5b288fb708286012cc5ebd81321bef0e49cd60abab336a6bf5ed80b4f654071b5b288fb708286012c" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "96d82ae99230de083bf5d90ce85a796cba2ee3852a32246712f3b47f48cadf8b" - }, - { - "u32": 0 - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_rly" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ], - "data": { - "bytes": "96d82ae99230de083bf5d90ce85a796cba2ee3852a32246712f3b47f48cadf8b" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_metrics" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "bytes": "746f74616c5f66656573" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1566 - } - } - }, - { - "key": { - "bytes": "746f74616c5f6d65737361676573" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1 - } - } - }, - { - "key": { - "bytes": "746f74616c5f72656c61796564" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_nonce_increments_sequentially.1.json b/contracts/soroban/test_snapshots/relay/tests/test_nonce_increments_sequentially.1.json index 118d145e..cce64742 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_nonce_increments_sequentially.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_nonce_increments_sequentially.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -139,7 +140,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1238,495 +1239,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "u64": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "61" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "ab1dbf77d90391033c160eefef300bc90ef5ca2c44b3fdd416c7986c7d687b6e" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "ab1dbf77d90391033c160eefef300bc90ef5ca2c44b3fdd416c7986c7d687b6e" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "62" - }, - { - "u64": 1 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "3d81e280cccd30e1309e8508f3991b9706f6808bf84475627862d19f71c25a27" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "3d81e280cccd30e1309e8508f3991b9706f6808bf84475627862d19f71c25a27" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_sender_nonce" - } - ], - "data": { - "u64": 2 - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_operator_stats_after_relay.1.json b/contracts/soroban/test_snapshots/relay/tests/test_operator_stats_after_relay.1.json index cbf09ebe..9e70f359 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_operator_stats_after_relay.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_operator_stats_after_relay.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -120,7 +121,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1075,533 +1076,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "737461742d74657374" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "b52e64cb0a3b565b9917743aa988f18dec1412ab7a8c0020c40604217d7f6337" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "b52e64cb0a3b565b9917743aa988f18dec1412ab7a8c0020c40604217d7f6337" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "b52e64cb0a3b565b9917743aa988f18dec1412ab7a8c0020c40604217d7f6337" - }, - { - "bytes": "ba5b21d4a646316c465da66757a7665317b5301d623df1987e25acbe5956bcb7ba5b21d4a646316c465da66757a7665317b5301d623df1987e25acbe5956bcb7" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "b52e64cb0a3b565b9917743aa988f18dec1412ab7a8c0020c40604217d7f6337" - }, - { - "u32": 0 - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_rly" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ], - "data": { - "bytes": "b52e64cb0a3b565b9917743aa988f18dec1412ab7a8c0020c40604217d7f6337" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_payload_too_large.1.json b/contracts/soroban/test_snapshots/relay/tests/test_payload_too_large.1.json index f7640be9..7b91713a 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_payload_too_large.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_payload_too_large.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,301 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 1000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "error": { - "contract": 15 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 15 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 15 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "send_message" - }, - { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "4141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 1000000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_peek_empty_queue.1.json b/contracts/soroban/test_snapshots/relay/tests/test_peek_empty_queue.1.json index 4c7d6dd7..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_peek_empty_queue.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_peek_empty_queue.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,179 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "peek_next_message" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "peek_next_message" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_queue_removal_after_relay.1.json b/contracts/soroban/test_snapshots/relay/tests/test_queue_removal_after_relay.1.json index 5896ebed..04ae1b69 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_queue_removal_after_relay.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_queue_removal_after_relay.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -121,7 +122,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1076,541 +1077,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "746f2d72656d6f7665" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "c891513c1defad573cf89b69e67e4ef603e11ac4890236084157d7591b9235ea" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "c891513c1defad573cf89b69e67e4ef603e11ac4890236084157d7591b9235ea" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message_queue" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message_queue" - } - ], - "data": { - "vec": [ - { - "bytes": "c891513c1defad573cf89b69e67e4ef603e11ac4890236084157d7591b9235ea" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "c891513c1defad573cf89b69e67e4ef603e11ac4890236084157d7591b9235ea" - }, - { - "bytes": "edfb9dfbf0a9e15ed7a298372b17ee4dc7d8f32ab352602245c66e45e4e6a4bfedfb9dfbf0a9e15ed7a298372b17ee4dc7d8f32ab352602245c66e45e4e6a4bf" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "c891513c1defad573cf89b69e67e4ef603e11ac4890236084157d7591b9235ea" - }, - { - "u32": 0 - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_rly" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ], - "data": { - "bytes": "c891513c1defad573cf89b69e67e4ef603e11ac4890236084157d7591b9235ea" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message_queue" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message_queue" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_relay_already_relayed_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_relay_already_relayed_fails.1.json index 4d866744..849f3e9e 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_relay_already_relayed_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_relay_already_relayed_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -120,7 +121,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1075,574 +1076,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "u32": 0 - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_rly" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ], - "data": { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "error": { - "contract": 7 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 7 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 7 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "relay_message" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "277aafec26b11d732f839fa7ac126c2364fca4e2fbe8d71dcafc64b1fc6e304f" - }, - { - "bytes": "810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229810fcd6baeb097eaa7a7320c1568ece28c92df3d6ecb7eb70dc6eb1e8f602229" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_relay_expired_message.1.json b/contracts/soroban/test_snapshots/relay/tests/test_relay_expired_message.1.json index 5d7691f0..ba4849f7 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_relay_expired_message.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_relay_expired_message.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -96,7 +97,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 9999, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1022,633 +1023,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "77696c6c2d657870697265" - }, - { - "u64": 0 - }, - { - "u32": 2 - }, - { - "u64": 1 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_operator" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "is_active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "messages_relayed" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "operator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "public_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - }, - { - "key": { - "symbol": "registered_at" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - }, - { - "bytes": "5aa8d32cb054100e7ee05492ee44a6b18eda4c867f635871d99759104c6ec9b35aa8d32cb054100e7ee05492ee44a6b18eda4c867f635871d99759104c6ec9b3" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - }, - { - "u32": 0 - }, - { - "u32": 4 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "error": { - "contract": 5 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "relay_message" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - }, - { - "bytes": "5aa8d32cb054100e7ee05492ee44a6b18eda4c867f635871d99759104c6ec9b35aa8d32cb054100e7ee05492ee44a6b18eda4c867f635871d99759104c6ec9b3" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message" - } - ], - "data": { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "dest_chain" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "expiry" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1566 - } - } - }, - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "25b21f601eeec81a04f23d02799a5431c35cb378882b34c1e9c113f1d02f8f68" - } - }, - { - "key": { - "symbol": "nonce" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "payload" - }, - "val": { - "bytes": "77696c6c2d657870697265" - } - }, - { - "key": { - "symbol": "priority" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "sender" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "source_chain" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_relay_unknown_message_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_relay_unknown_message_fails.1.json index f573cc91..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_relay_unknown_message_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_relay_unknown_message_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,265 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "6363636363636363636363636363636363636363636363636363636363636363" - }, - { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "relay_message" - } - ], - "data": { - "error": { - "contract": 6 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 6 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 6 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "relay_message" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "6363636363636363636363636363636363636363636363636363636363636363" - }, - { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_root_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_root_fails.1.json index 5eaa2e1a..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_root_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_root_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,347 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_state_proof" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 100 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "616e797468696e67" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "0101010101010101010101010101010101010101010101010101010101010101" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_state_proof" - } - ], - "data": { - "error": { - "contract": 11 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 11 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 11 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "verify_state_proof" - }, - { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 100 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "616e797468696e67" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "0101010101010101010101010101010101010101010101010101010101010101" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_signature_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_signature_fails.1.json index 94515813..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_signature_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_state_proof_bad_signature_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,347 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_state_proof" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 42 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "736f6d652d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "ec6aaf610fea31bb8e6ef704e4c6203fc90b978a6faf125cb793203113d0877a" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_state_proof" - } - ], - "data": { - "error": { - "contract": 10 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 10 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 10 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "verify_state_proof" - }, - { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 42 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "736f6d652d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "ec6aaf610fea31bb8e6ef704e4c6203fc90b978a6faf125cb793203113d0877a" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_verify_already_verified_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_verify_already_verified_fails.1.json index f6887bbc..0ee752a6 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_verify_already_verified_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_verify_already_verified_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -95,7 +96,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1021,626 +1022,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "646f75626c652d766572696679" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "8bec11a3b94ba6b243b8b1679e31279e8897b6c9708aa1e10fbf0f33ca488779" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "8bec11a3b94ba6b243b8b1679e31279e8897b6c9708aa1e10fbf0f33ca488779" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "vec": [ - { - "bytes": "8bec11a3b94ba6b243b8b1679e31279e8897b6c9708aa1e10fbf0f33ca488779" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 500 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "6574682d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "32c9cfa7dcf17d3d67116beff3f933f6d81030da31259812044fd098a5f8798e32c9cfa7dcf17d3d67116beff3f933f6d81030da31259812044fd098a5f8798e" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "dd050fb0169f24a09634f4b57ca1c5e726fc6aa359b40e61573c8242a9103d41" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "st_proof" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u64": 500 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "8bec11a3b94ba6b243b8b1679e31279e8897b6c9708aa1e10fbf0f33ca488779" - }, - { - "u32": 0 - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "vec": [ - { - "bytes": "8bec11a3b94ba6b243b8b1679e31279e8897b6c9708aa1e10fbf0f33ca488779" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 500 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "6574682d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "32c9cfa7dcf17d3d67116beff3f933f6d81030da31259812044fd098a5f8798e32c9cfa7dcf17d3d67116beff3f933f6d81030da31259812044fd098a5f8798e" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "dd050fb0169f24a09634f4b57ca1c5e726fc6aa359b40e61573c8242a9103d41" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "error": { - "contract": 7 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 7 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 7 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "verify_message" - }, - { - "vec": [ - { - "bytes": "8bec11a3b94ba6b243b8b1679e31279e8897b6c9708aa1e10fbf0f33ca488779" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 500 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "6574682d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "32c9cfa7dcf17d3d67116beff3f933f6d81030da31259812044fd098a5f8798e32c9cfa7dcf17d3d67116beff3f933f6d81030da31259812044fd098a5f8798e" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "dd050fb0169f24a09634f4b57ca1c5e726fc6aa359b40e61573c8242a9103d41" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_verify_message_changes_status.1.json b/contracts/soroban/test_snapshots/relay/tests/test_verify_message_changes_status.1.json index 74c74962..9336a6be 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_verify_message_changes_status.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_verify_message_changes_status.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -95,7 +96,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1021,544 +1022,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "7665726966792d6d65" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "b47ea7fde47b8de6d8a2d84457fd818de41f9a29ec689e7afabb0743f2b21fe6" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "b47ea7fde47b8de6d8a2d84457fd818de41f9a29ec689e7afabb0743f2b21fe6" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "vec": [ - { - "bytes": "b47ea7fde47b8de6d8a2d84457fd818de41f9a29ec689e7afabb0743f2b21fe6" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "6574682d70726f6f662d64617461" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "4c1d48302727f17b86efc79908a811f22d3fde037b9f2fddf492334180aefae94c1d48302727f17b86efc79908a811f22d3fde037b9f2fddf492334180aefae9" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "1dff001f9305e16cbcf24cfc9ca5a44dbe7b863848371348b8de63c33a139474" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "st_proof" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u64": 1000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_stat" - } - ], - "data": { - "vec": [ - { - "bytes": "b47ea7fde47b8de6d8a2d84457fd818de41f9a29ec689e7afabb0743f2b21fe6" - }, - { - "u32": 0 - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_message" - } - ], - "data": { - "bytes": "b47ea7fde47b8de6d8a2d84457fd818de41f9a29ec689e7afabb0743f2b21fe6" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_message" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "dest_chain" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "expiry" - }, - "val": { - "u64": 300 - } - }, - { - "key": { - "symbol": "fee" - }, - "val": { - "i128": { - "hi": 0, - "lo": 827 - } - } - }, - { - "key": { - "symbol": "message_id" - }, - "val": { - "bytes": "b47ea7fde47b8de6d8a2d84457fd818de41f9a29ec689e7afabb0743f2b21fe6" - } - }, - { - "key": { - "symbol": "nonce" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "payload" - }, - "val": { - "bytes": "7665726966792d6d65" - } - }, - { - "key": { - "symbol": "priority" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "sender" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "source_chain" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_verify_message_not_found.1.json b/contracts/soroban/test_snapshots/relay/tests/test_verify_message_not_found.1.json index 1b9cc2ac..e4df8bd5 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_verify_message_not_found.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_verify_message_not_found.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,357 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "vec": [ - { - "bytes": "2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "78" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "0000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "error": { - "contract": 6 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 6 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 6 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "verify_message" - }, - { - "vec": [ - { - "bytes": "2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "78" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "0000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/test_verify_wrong_chain_proof_fails.1.json b/contracts/soroban/test_snapshots/relay/tests/test_verify_wrong_chain_proof_fails.1.json index 43679249..95b7d712 100644 --- a/contracts/soroban/test_snapshots/relay/tests/test_verify_wrong_chain_proof_fails.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/test_verify_wrong_chain_proof_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -94,7 +95,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1020,464 +1021,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "send_message" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "bytes": "74657374" - }, - { - "u64": 0 - }, - { - "u32": 1 - }, - { - "u64": 0 - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "msg_sent" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ], - "data": { - "vec": [ - { - "bytes": "aed9debe20ebed2c0df5b8cc11cc9d082ee8cebc40f42a3ce189f22f6e7f5d02" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "send_message" - } - ], - "data": { - "bytes": "aed9debe20ebed2c0df5b8cc11cc9d082ee8cebc40f42a3ce189f22f6e7f5d02" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "vec": [ - { - "bytes": "aed9debe20ebed2c0df5b8cc11cc9d082ee8cebc40f42a3ce189f22f6e7f5d02" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "706f6c792d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "3214a32b74f179f822ba4ac17e78566cc0a66a1b7b1046146ba65aa610016606" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_message" - } - ], - "data": { - "error": { - "contract": 11 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 11 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 11 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "verify_message" - }, - { - "vec": [ - { - "bytes": "aed9debe20ebed2c0df5b8cc11cc9d082ee8cebc40f42a3ce189f22f6e7f5d02" - }, - { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "706f6c792d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "3214a32b74f179f822ba4ac17e78566cc0a66a1b7b1046146ba65aa610016606" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/relay/tests/verify_state_proof_works.1.json b/contracts/soroban/test_snapshots/relay/tests/verify_state_proof_works.1.json index 78744f5a..4686dd99 100644 --- a/contracts/soroban/test_snapshots/relay/tests/verify_state_proof_works.1.json +++ b/contracts/soroban/test_snapshots/relay/tests/verify_state_proof_works.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -51,7 +52,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -759,209 +760,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 300 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "op_reg" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_relay_operator" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "verify_state_proof" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "block_number" - }, - "val": { - "u64": 123 - } - }, - { - "key": { - "symbol": "chain_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "proof_data" - }, - "val": { - "bytes": "6d6f636b2d6d65726b6c652d70726f6f66" - } - }, - { - "key": { - "symbol": "signature" - }, - "val": { - "bytes": "ce3380c0859581db6d7ce125de1de86044b0f5149998341330a6dc9f56039ffbce3380c0859581db6d7ce125de1de86044b0f5149998341330a6dc9f56039ffb" - } - }, - { - "key": { - "symbol": "state_root" - }, - "val": { - "bytes": "d52c4047c09eade849e7845ac41c6b0488284aad17edc1f1b5a46eb062ff4af6" - } - }, - { - "key": { - "symbol": "validator_key" - }, - "val": { - "bytes": "0707070707070707070707070707070707070707070707070707070707070707" - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -988,29 +786,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "verify_state_proof" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_no_price_change.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_no_price_change.1.json index 9fdc6047..0b400eb8 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_no_price_change.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_no_price_change.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,304 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 50000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "current_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "current_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - }, - { - "key": { - "symbol": "entry_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "hodl_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - }, - { - "key": { - "symbol": "il_percentage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "net_loss" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_nonexistent_pool.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_nonexistent_pool.1.json index 968e7e61..eef9a589 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_nonexistent_pool.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_nonexistent_pool.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,193 +149,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "vec": [ - { - "string": "NONEXISTENT" - }, - { - "i128": { - "hi": 0, - "lo": 50000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "current_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "current_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - }, - { - "key": { - "symbol": "entry_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "hodl_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - }, - { - "key": { - "symbol": "il_percentage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "net_loss" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "NONEXISTENT" - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_with_price_change.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_with_price_change.1.json index dddd470b..ebed2efb 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_with_price_change.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_with_price_change.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,304 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 200000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 50000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "current_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000000 - } - } - }, - { - "key": { - "symbol": "current_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000000000 - } - } - }, - { - "key": { - "symbol": "entry_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "hodl_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250000000000 - } - } - }, - { - "key": { - "symbol": "il_percentage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000000 - } - } - }, - { - "key": { - "symbol": "net_loss" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_zero_entry_price.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_zero_entry_price.1.json index 28298b8d..0b400eb8 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_zero_entry_price.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_impermanent_loss_zero_entry_price.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,304 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "current_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "current_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - }, - { - "key": { - "symbol": "entry_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "hodl_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - }, - { - "key": { - "symbol": "il_percentage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "net_loss" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_basic.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_basic.1.json index d812bd1b..df72cdbe 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_basic.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_basic.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -138,7 +139,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1003600, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -957,452 +958,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 21000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1200000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 12000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1003600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1003600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 7200 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 31500000000000 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30590476 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 22000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2200000000000 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 1003600 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 996400 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_no_data.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_no_data.1.json index 0ae133d9..eef9a589 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_no_data.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_no_data.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,197 +149,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_price_change.1.json b/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_price_change.1.json index 90d46efa..46e50d8e 100644 --- a/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_price_change.1.json +++ b/contracts/soroban/test_snapshots/tests/test_calculate_pool_metrics_price_change.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -138,7 +139,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1003600, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -957,452 +958,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 60000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 1666 - } - }, - { - "u64": 1003600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1003600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 7200 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 32500000000000 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2695384 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000000 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000000000 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 1003600 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 996400 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_daily_bucket_creation.1.json b/contracts/soroban/test_snapshots/tests/test_daily_bucket_creation.1.json index 725fb174..f7ed8dbe 100644 --- a/contracts/soroban/test_snapshots/tests/test_daily_bucket_creation.1.json +++ b/contracts/soroban/test_snapshots/tests/test_daily_bucket_creation.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -138,7 +139,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 90100, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -957,443 +958,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 86500 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 9000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 54000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 11000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 90100 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 0 - }, - { - "u64": 200000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "avg_reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 9500000000000 - } - } - }, - { - "key": { - "symbol": "avg_reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 52000000000000 - } - } - }, - { - "key": { - "symbol": "close_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 60000000 - } - } - }, - { - "key": { - "symbol": "day_timestamp" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "high_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 60000000 - } - } - }, - { - "key": { - "symbol": "low_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "open_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "snapshot_count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 21000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_daily_bucket_multiple_days.1.json b/contracts/soroban/test_snapshots/tests/test_daily_bucket_multiple_days.1.json index aa604f3a..2edc40da 100644 --- a/contracts/soroban/test_snapshots/tests/test_daily_bucket_multiple_days.1.json +++ b/contracts/soroban/test_snapshots/tests/test_daily_bucket_multiple_days.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -194,7 +195,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 172900, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1504,803 +1505,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 100 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 21000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 600000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 6000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 86500 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 86500 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 12000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 60000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 22000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 700000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 7000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 172900 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 0 - }, - { - "u64": 300000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "avg_reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "avg_reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "close_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "day_timestamp" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "high_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "low_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "open_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "snapshot_count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "avg_reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - } - }, - { - "key": { - "symbol": "avg_reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - } - }, - { - "key": { - "symbol": "close_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "day_timestamp" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "high_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "low_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "open_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "snapshot_count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 6000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 600000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "avg_reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000000000000 - } - } - }, - { - "key": { - "symbol": "avg_reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 60000000000000 - } - } - }, - { - "key": { - "symbol": "close_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "day_timestamp" - }, - "val": { - "u64": 172800 - } - }, - { - "key": { - "symbol": "high_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "low_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "open_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "snapshot_count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 700000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_daily_bucket_ohlc_prices.1.json b/contracts/soroban/test_snapshots/tests/test_daily_bucket_ohlc_prices.1.json index f3aedeb4..1d514278 100644 --- a/contracts/soroban/test_snapshots/tests/test_daily_bucket_ohlc_prices.1.json +++ b/contracts/soroban/test_snapshots/tests/test_daily_bucket_ohlc_prices.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -194,7 +195,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 93700, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1192,620 +1193,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 86500 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 70000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 3333 - } - }, - { - "u64": 90100 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 90100 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 3750 - } - }, - { - "u64": 93700 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 93700 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 0 - }, - { - "u64": 200000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "avg_reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "avg_reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 53333333333333 - } - } - }, - { - "key": { - "symbol": "close_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000000 - } - } - }, - { - "key": { - "symbol": "day_timestamp" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "high_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 70000000 - } - } - }, - { - "key": { - "symbol": "low_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000000 - } - } - }, - { - "key": { - "symbol": "open_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "snapshot_count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_daily_history_empty_pool.1.json b/contracts/soroban/test_snapshots/tests/test_daily_history_empty_pool.1.json index 84775adc..eef9a589 100644 --- a/contracts/soroban/test_snapshots/tests/test_daily_history_empty_pool.1.json +++ b/contracts/soroban/test_snapshots/tests/test_daily_history_empty_pool.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,112 +149,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "string": "NONEXISTENT" - }, - { - "u64": 0 - }, - { - "u64": 999999 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_daily_history_range_filter.1.json b/contracts/soroban/test_snapshots/tests/test_daily_history_range_filter.1.json index ffb1c538..a642fe90 100644 --- a/contracts/soroban/test_snapshots/tests/test_daily_history_range_filter.1.json +++ b/contracts/soroban/test_snapshots/tests/test_daily_history_range_filter.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -194,7 +195,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 172900, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1504,554 +1505,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 100 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 86500 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 172900 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 86400 - }, - { - "u64": 172799 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_daily_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "avg_reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "avg_reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "close_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "day_timestamp" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "high_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "low_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "open_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "snapshot_count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_fee_apr_calculation.1.json b/contracts/soroban/test_snapshots/tests/test_fee_apr_calculation.1.json index c94aff1e..1674c9d7 100644 --- a/contracts/soroban/test_snapshots/tests/test_fee_apr_calculation.1.json +++ b/contracts/soroban/test_snapshots/tests/test_fee_apr_calculation.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -138,7 +139,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 86400, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1113,419 +1114,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 86400 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 172800 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000000000000 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12166666 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000000000000 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_high_tvl.1.json b/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_high_tvl.1.json index 72f2bde5..2a696f39 100644 --- a/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_high_tvl.1.json +++ b/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_high_tvl.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,271 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 200000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "USDC_XLM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_no_data.1.json b/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_no_data.1.json index c93a30b3..eef9a589 100644 --- a/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_no_data.1.json +++ b/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_no_data.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,160 +149,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "NONEXISTENT" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "NONEXISTENT" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_with_data.1.json b/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_with_data.1.json index f87fb090..478543a9 100644 --- a/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_with_data.1.json +++ b/contracts/soroban/test_snapshots/tests/test_get_liquidity_depth_with_data.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,271 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 5000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 25000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "USDC_XLM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 25000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_get_pool_history.1.json b/contracts/soroban/test_snapshots/tests/test_get_pool_history.1.json index 3fe277c0..5e7f4897 100644 --- a/contracts/soroban/test_snapshots/tests/test_get_pool_history.1.json +++ b/contracts/soroban/test_snapshots/tests/test_get_pool_history.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -195,7 +196,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1007200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1193,996 +1194,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1010000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10100000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1003600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10200000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 51000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1020000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10200000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1007200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 1000000 - }, - { - "u64": 1010000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10100000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10100000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50500000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1003600 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1010000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10200000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10200000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 51000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1007200 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1020000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 1003600 - }, - { - "u64": 1007200 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10100000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10100000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50500000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1003600 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1010000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10200000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10200000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 51000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1007200 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1020000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_get_pool_history_boundary_timestamps.1.json b/contracts/soroban/test_snapshots/tests/test_get_pool_history_boundary_timestamps.1.json index 50c7fb34..3b4d6768 100644 --- a/contracts/soroban/test_snapshots/tests/test_get_pool_history_boundary_timestamps.1.json +++ b/contracts/soroban/test_snapshots/tests/test_get_pool_history_boundary_timestamps.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -140,7 +141,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 2000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -959,880 +960,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 2000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 2000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 1000 - }, - { - "u64": 2000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 2000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 1001 - }, - { - "u64": 2000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 2000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 1000 - }, - { - "u64": 1999 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_get_pool_history_empty.1.json b/contracts/soroban/test_snapshots/tests/test_get_pool_history_empty.1.json index e0e9c16d..eef9a589 100644 --- a/contracts/soroban/test_snapshots/tests/test_get_pool_history_empty.1.json +++ b/contracts/soroban/test_snapshots/tests/test_get_pool_history_empty.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,112 +149,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "NONEXISTENT" - }, - { - "u64": 0 - }, - { - "u64": 9999999 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_impermanent_loss_small_price_change.1.json b/contracts/soroban/test_snapshots/tests/test_impermanent_loss_small_price_change.1.json index f0341e44..bde91520 100644 --- a/contracts/soroban/test_snapshots/tests/test_impermanent_loss_small_price_change.1.json +++ b/contracts/soroban/test_snapshots/tests/test_impermanent_loss_small_price_change.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,304 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 55000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 50000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_impermanent_loss" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "current_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 55000000 - } - } - }, - { - "key": { - "symbol": "current_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 104880877500 - } - } - }, - { - "key": { - "symbol": "entry_price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "hodl_value" - }, - "val": { - "i128": { - "hi": 0, - "lo": 105000000000 - } - } - }, - { - "key": { - "symbol": "il_percentage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 11345 - } - } - }, - { - "key": { - "symbol": "net_loss" - }, - "val": { - "i128": { - "hi": 0, - "lo": 119122500 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_initialize.1.json b/contracts/soroban/test_snapshots/tests/test_initialize.1.json index d60c349b..eef9a589 100644 --- a/contracts/soroban/test_snapshots/tests/test_initialize.1.json +++ b/contracts/soroban/test_snapshots/tests/test_initialize.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,100 +149,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_monitored_assets" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_monitored_assets" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_metrics_24h_window.1.json b/contracts/soroban/test_snapshots/tests/test_metrics_24h_window.1.json index 4174066f..6e16cc17 100644 --- a/contracts/soroban/test_snapshots/tests/test_metrics_24h_window.1.json +++ b/contracts/soroban/test_snapshots/tests/test_metrics_24h_window.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -138,7 +139,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 43200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -957,419 +958,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 52500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 550000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5500000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 43200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30750000000000 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1246341 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10500000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1050000000000 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 43200 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_metrics_7d_window.1.json b/contracts/soroban/test_snapshots/tests/test_metrics_7d_window.1.json index 0482329b..2afebfa9 100644 --- a/contracts/soroban/test_snapshots/tests/test_metrics_7d_window.1.json +++ b/contracts/soroban/test_snapshots/tests/test_metrics_7d_window.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -418,7 +419,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 518500, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -3068,974 +3069,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 100 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 550000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5500000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 86500 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10200000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 51000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 600000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 6000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 172900 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10300000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 51500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 650000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 6500000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 259300 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10400000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 52000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 700000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 7000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 345700 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 52500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 750000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 7500000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 432100 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10600000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 53000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 800000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 8000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 518500 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 604800 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30900000000000 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 7 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 767799 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 45500000000 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 4550000000000 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 518500 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_multiple_pool_types_metrics.1.json b/contracts/soroban/test_snapshots/tests/test_multiple_pool_types_metrics.1.json index a9cf0e4d..b659a596 100644 --- a/contracts/soroban/test_snapshots/tests/test_multiple_pool_types_metrics.1.json +++ b/contracts/soroban/test_snapshots/tests/test_multiple_pool_types_metrics.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -139,7 +140,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1257,489 +1258,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM_AMM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM_AMM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM_SDEX" - }, - { - "i128": { - "hi": 0, - "lo": 8000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 16000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 800000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 8000000000 - } - }, - { - "vec": [ - { - "symbol": "Sdex" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM_SDEX" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "USDC_XLM_AMM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM_AMM" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "USDC_XLM_SDEX" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM_SDEX" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 8000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 80000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_phase1_asset_pairs.1.json b/contracts/soroban/test_snapshots/tests/test_phase1_asset_pairs.1.json index a99bd4d0..8fea1e2f 100644 --- a/contracts/soroban/test_snapshots/tests/test_phase1_asset_pairs.1.json +++ b/contracts/soroban/test_snapshots/tests/test_phase1_asset_pairs.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -254,7 +255,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -2328,985 +2329,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "EURC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "EURC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "PYUSD_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "PYUSD_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "FOBXX_USDC" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "FOBXX_USDC" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "string": "EURC_XLM" - }, - { - "string": "PYUSD_XLM" - }, - { - "string": "FOBXX_USDC" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "USDC_XLM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "EURC_XLM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "EURC_XLM" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "PYUSD_XLM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "PYUSD_XLM" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "FOBXX_USDC" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "FOBXX_USDC" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_pool_history_ordering.1.json b/contracts/soroban/test_snapshots/tests/test_pool_history_ordering.1.json index 9c718f68..dfdffc66 100644 --- a/contracts/soroban/test_snapshots/tests/test_pool_history_ordering.1.json +++ b/contracts/soroban/test_snapshots/tests/test_pool_history_ordering.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -306,7 +307,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1014400, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1662,1158 +1663,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1003600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10200000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1007200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10300000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1010800 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10400000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1014400 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 0 - }, - { - "u64": 2000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 49504950 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10100000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1003600 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 49019607 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10200000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1007200 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 48543689 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10300000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1010800 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 48076923 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10400000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1014400 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_price_computation_from_reserves.1.json b/contracts/soroban/test_snapshots/tests/test_price_computation_from_reserves.1.json index a444e62f..d6179afc 100644 --- a/contracts/soroban/test_snapshots/tests/test_price_computation_from_reserves.1.json +++ b/contracts/soroban/test_snapshots/tests/test_price_computation_from_reserves.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,322 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 0 - }, - { - "u64": 2000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_record_multiple_pools.1.json b/contracts/soroban/test_snapshots/tests/test_record_multiple_pools.1.json index a909e73e..5520f03a 100644 --- a/contracts/soroban/test_snapshots/tests/test_record_multiple_pools.1.json +++ b/contracts/soroban/test_snapshots/tests/test_record_multiple_pools.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -250,7 +251,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -2324,557 +2325,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 15000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "EURC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 15000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "EURC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "PYUSD_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 15000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "PYUSD_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "FOBXX_USDC" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 15000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "FOBXX_USDC" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "string": "EURC_XLM" - }, - { - "string": "PYUSD_XLM" - }, - { - "string": "FOBXX_USDC" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_record_pool_state_basic.1.json b/contracts/soroban/test_snapshots/tests/test_record_pool_state_basic.1.json index 08387002..4c9a1388 100644 --- a/contracts/soroban/test_snapshots/tests/test_record_pool_state_basic.1.json +++ b/contracts/soroban/test_snapshots/tests/test_record_pool_state_basic.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,215 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_record_pool_state_does_not_duplicate_registration.1.json b/contracts/soroban/test_snapshots/tests/test_record_pool_state_does_not_duplicate_registration.1.json index 613a7cfa..8592ae48 100644 --- a/contracts/soroban/test_snapshots/tests/test_record_pool_state_does_not_duplicate_registration.1.json +++ b/contracts/soroban/test_snapshots/tests/test_record_pool_state_does_not_duplicate_registration.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -138,7 +139,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1003600, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -957,359 +958,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 22000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 11000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 120000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1200000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "liq_chg" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1003600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1003600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_registered_pools" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json b/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json index 86ea11d7..7fd0e375 100644 --- a/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json +++ b/contracts/soroban/test_snapshots/tests/test_register_and_get_assets.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -49,7 +50,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -560,346 +561,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_asset" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "USDC" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "ctr_st" - } - ], - "data": { - "vec": [ - { - "symbol": "High" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "asset_st" - }, - { - "string": "USDC" - } - ], - "data": { - "vec": [ - { - "symbol": "High" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "asset_reg" - }, - { - "string": "USDC" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_monitored_assets" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_monitored_assets" - } - ], - "data": { - "vec": [ - { - "string": "USDC" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_health" - } - ], - "data": { - "string": "USDC" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_health" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "asset_code" - }, - "val": { - "string": "USDC" - } - }, - { - "key": { - "symbol": "bridge_uptime_score" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "liquidity_score" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paused" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "price_stability_score" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_sdex_pool_type.1.json b/contracts/soroban/test_snapshots/tests/test_sdex_pool_type.1.json index b98c3fe9..0de49056 100644 --- a/contracts/soroban/test_snapshots/tests/test_sdex_pool_type.1.json +++ b/contracts/soroban/test_snapshots/tests/test_sdex_pool_type.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -722,322 +723,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM_SDEX" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - }, - { - "vec": [ - { - "symbol": "Sdex" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM_SDEX" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM_SDEX" - }, - { - "u64": 0 - }, - { - "u64": 2000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM_SDEX" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Sdex" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_snapshot_ring_buffer_wrapping.1.json b/contracts/soroban/test_snapshots/tests/test_snapshot_ring_buffer_wrapping.1.json index 6dbfa295..dd62261f 100644 --- a/contracts/soroban/test_snapshots/tests/test_snapshot_ring_buffer_wrapping.1.json +++ b/contracts/soroban/test_snapshots/tests/test_snapshot_ring_buffer_wrapping.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -586,7 +587,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1032400, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -2837,2203 +2838,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10010000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50050000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1003600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10020000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1007200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10030000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50150000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1010800 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10040000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50200000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1014400 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10050000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50250000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1018000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10060000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50300000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1021600 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10070000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50350000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1025200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10080000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50400000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1028800 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "i128": { - "hi": 0, - "lo": 10090000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 50450000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000000000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000000000 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "USDC_XLM" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1032400 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "string": "USDC_XLM" - }, - { - "u64": 0 - }, - { - "u64": 2000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pool_history" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10010000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50050000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1003600 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10020000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50100000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1007200 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10030000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50150000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1010800 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10040000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50200000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1014400 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10050000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50250000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1018000 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10060000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50300000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1021600 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10070000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50350000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1025200 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10080000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50400000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1028800 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "fees_collected" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000000000 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "USDC_XLM" - } - }, - { - "key": { - "symbol": "pool_type" - }, - "val": { - "vec": [ - { - "symbol": "Amm" - } - ] - } - }, - { - "key": { - "symbol": "price" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000000 - } - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10090000000000 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50450000000000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1032400 - } - }, - { - "key": { - "symbol": "total_shares" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000000000000 - } - } - }, - { - "key": { - "symbol": "volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000000000 - } - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json b/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json index ff9101e3..141c4458 100644 --- a/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json +++ b/contracts/soroban/test_snapshots/tests/test_submit_and_get_health.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -82,7 +83,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -626,435 +627,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "register_asset" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "USDC" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "ctr_st" - } - ], - "data": { - "vec": [ - { - "symbol": "High" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "asset_st" - }, - { - "string": "USDC" - } - ], - "data": { - "vec": [ - { - "symbol": "High" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "asset_reg" - }, - { - "string": "USDC" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "register_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "submit_health" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "USDC" - }, - { - "u32": 85 - }, - { - "u32": 90 - }, - { - "u32": 80 - }, - { - "u32": 85 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "ctr_st" - } - ], - "data": { - "vec": [ - { - "symbol": "Ok" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "asset_st" - }, - { - "string": "USDC" - } - ], - "data": { - "vec": [ - { - "symbol": "Ok" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "health_up" - }, - { - "string": "USDC" - } - ], - "data": { - "u32": 85 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "submit_health" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_health" - } - ], - "data": { - "string": "USDC" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_health" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "asset_code" - }, - "val": { - "string": "USDC" - } - }, - { - "key": { - "symbol": "bridge_uptime_score" - }, - "val": { - "u32": 85 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "u32": 85 - } - }, - { - "key": { - "symbol": "liquidity_score" - }, - "val": { - "u32": 90 - } - }, - { - "key": { - "symbol": "paused" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "price_stability_score" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/test_snapshots/tests/test_zero_reserves_handling.1.json b/contracts/soroban/test_snapshots/tests/test_zero_reserves_handling.1.json index 5d30776c..6de6995b 100644 --- a/contracts/soroban/test_snapshots/tests/test_zero_reserves_handling.1.json +++ b/contracts/soroban/test_snapshots/tests/test_zero_reserves_handling.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -83,7 +84,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -723,415 +724,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "record_pool_state" - } - ], - "data": { - "vec": [ - { - "string": "EMPTY_POOL" - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "vec": [ - { - "symbol": "Amm" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "string": "EMPTY_POOL" - }, - { - "symbol": "snapshot" - } - ], - "data": { - "u64": 1000000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "record_pool_state" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "string": "EMPTY_POOL" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_liquidity_depth" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "depth_score" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "EMPTY_POOL" - } - }, - { - "key": { - "symbol": "reserve_a" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "reserve_b" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "total_value_locked" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "vec": [ - { - "string": "EMPTY_POOL" - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_pool_metrics" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "avg_depth" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "data_points" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "fee_apr" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "pool_id" - }, - "val": { - "string": "EMPTY_POOL" - } - }, - { - "key": { - "symbol": "price_change" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_fees" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_volume" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "window_end" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "window_start" - }, - "val": { - "u64": 913600 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/contracts/soroban/tests/relay_contract.integration.rs b/contracts/soroban/tests/relay_contract_integration.rs similarity index 98% rename from contracts/soroban/tests/relay_contract.integration.rs rename to contracts/soroban/tests/relay_contract_integration.rs index 7fc8c8b7..237a1baa 100644 --- a/contracts/soroban/tests/relay_contract.integration.rs +++ b/contracts/soroban/tests/relay_contract_integration.rs @@ -10,7 +10,7 @@ use relay::{ use soroban_sdk::{ symbol_short, testutils::{Address as _, Events, Ledger}, - Address, Bytes, BytesN, Env, IntoVal, Symbol, Vec, + Address, Bytes, BytesN, Env, IntoVal, Symbol, Val, Vec, }; fn setup_context() -> (Env, soroban_sdk::Address, Address, Address) { @@ -114,7 +114,7 @@ fn assert_has_event(env: &Env, contract: &Address, expected_topic: Symbol) { let (addr, topics, _data) = events.get(i).unwrap(); if addr == *contract && !topics.is_empty() { let topic_val = topics.get(0).unwrap(); - let expected_val = expected_topic.into_val(env); + let expected_val: Val = expected_topic.into_val(env); if topic_val.get_payload() == expected_val.get_payload() { found = true; break;