diff --git a/Cargo.lock b/Cargo.lock index 0bebd45..acdfe36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -338,6 +338,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "dlmalloc" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5208a115eaba24916f7456929832e310a81518c641f93fee4f89aa93aa3675" +dependencies = [ + "cfg-if", + "libc", + "windows-sys", +] + [[package]] name = "downcast-rs" version = "1.2.1" @@ -1329,6 +1340,7 @@ name = "sorosusu-contracts" version = "0.1.0" dependencies = [ "arbitrary", + "dlmalloc", "proptest", "soroban-sdk", ] diff --git a/Cargo.toml b/Cargo.toml index 0dad84d..7f2adb0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ crate-type = ["cdylib", "rlib"] # Essential for WASM compilation and integration testutils = [] [dependencies] +dlmalloc = { version = "0.2.14", features = ["global"] } soroban-sdk = "21.0.0" [dev-dependencies] @@ -24,3 +25,7 @@ proptest = "1.4" opt-level = "z" # Optimize for small binary size lto = true codegen-units = 1 + +[[test]] +name = "griefing_resistance_test" +path = "tests/slashing/griefing_resistance_test.rs" diff --git a/src/lib.rs b/src/lib.rs index 1c40987..865b16c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,15 +1,15 @@ -#![no_std] +#![cfg_attr(target_family = "wasm", no_std)] extern crate alloc; -pub mod reputation; -pub mod network; -pub mod slashing; -pub mod attestation_core; use soroban_sdk::{ contract, contractclient, contracterror, contractimpl, contracttype, token, Address, Env, String, Vec, }; pub mod slashing_core; +pub mod slashing; +pub mod network; +pub mod reputation; +pub mod attestation_core; // Cryptographic primitives and attestation signature verification. // `crypto` provides a dependency-free SHA-256, SSZ-style merkleization, and // domain separation; `attestation` computes domain-separated signing roots so @@ -883,7 +883,7 @@ impl SoroSusuTrait for SoroSusu { // Check if voting should be finalized early (if majority reached) let total_possible_votes = (circle.member_count - 1) as u32; // Exclude requester - let votes_needed_for_majority = if total_possible_votes == 0 { 0 } else { ((total_possible_votes * SIMPLE_MAJORITY_THRESHOLD) + 99) / 100 }; + let votes_needed_for_majority = (total_possible_votes * SIMPLE_MAJORITY_THRESHOLD + 99) / 100; if votes_needed_for_majority > 0 && request.approve_votes >= votes_needed_for_majority { request.status = LeniencyRequestStatus::Approved; @@ -1093,7 +1093,7 @@ impl SoroSusuTrait for SoroSusu { // Check quorum let circle_key = DataKey::Circle(proposal.circle_id); let circle: CircleInfo = env.storage().instance().get(&circle_key).expect("Circle not found"); - let required_quorum = (circle.member_count * QUADRATIC_QUORUM) / 100; + let required_quorum = (circle.member_count * QUADRATIC_QUORUM + 99) / 100; proposal.quorum_met = proposal.total_voting_power >= required_quorum as u64; env.storage().instance().set(&proposal_key, &proposal); @@ -1123,6 +1123,26 @@ impl SoroSusuTrait for SoroSusu { // Calculate result and update stats let total_votes = proposal.for_votes + proposal.against_votes; + if total_votes == 0 { + proposal.status = ProposalStatus::Rejected; + } else { + let approval_percentage = (proposal.for_votes * 100) / total_votes; + if approval_percentage >= QUADRATIC_MAJORITY as u64 { + proposal.status = ProposalStatus::Approved; + + // Execute the proposal based on type + SoroSusu::execute_proposal_logic(&env, &proposal); + // The logic above marks the proposal as Executed in storage. + // We update our local copy so the subsequent set() persists it correctly. + proposal.status = ProposalStatus::Executed; + } else { + proposal.status = ProposalStatus::Rejected; + } + } + + env.storage().instance().set(&proposal_key, &proposal); + + // Update stats let stats_key = DataKey::ProposalStats(proposal.circle_id); let mut stats: ProposalStats = env.storage().instance().get(&stats_key).unwrap_or(ProposalStats { total_proposals: 0, @@ -1133,20 +1153,14 @@ impl SoroSusuTrait for SoroSusu { average_voting_time: 0, }); - if total_votes == 0 { - proposal.status = ProposalStatus::Rejected; - stats.rejected_proposals += 1; - } else { - let approval_percentage = (proposal.for_votes * 100) / total_votes; - if approval_percentage >= QUADRATIC_MAJORITY as u64 { - SoroSusu::execute_proposal_logic(&env, &proposal); - proposal.status = ProposalStatus::Executed; + match proposal.status { + ProposalStatus::Approved => stats.approved_proposals += 1, + ProposalStatus::Rejected => stats.rejected_proposals += 1, + ProposalStatus::Executed => { stats.approved_proposals += 1; stats.executed_proposals += 1; - } else { - proposal.status = ProposalStatus::Rejected; - stats.rejected_proposals += 1; - } + }, + _ => {} } env.storage().instance().set(&proposal_key, &proposal); @@ -1365,19 +1379,19 @@ impl SoroSusuTrait for SoroSusu { impl SoroSusu { fn finalize_leniency_vote_internal(env: &Env, circle_id: &u64, requester: &Address, request: &mut LeniencyRequest) { - let total_possible_votes = request.total_votes_cast; - let minimum_participation = (total_possible_votes * MINIMUM_VOTING_PARTICIPATION) / 100; + let circle_key = DataKey::Circle(*circle_id); + let mut circle: CircleInfo = env.storage().instance().get(&circle_key).expect("Circle not found"); - let mut final_status = LeniencyRequestStatus::Rejected; + let total_possible_votes = (circle.member_count - 1) as u32; // Exclude requester + let minimum_participation = (total_possible_votes * MINIMUM_VOTING_PARTICIPATION + 99) / 100; + + let mut final_status = LeniencyRequestStatus::Expired; - if request.total_votes_cast >= minimum_participation { + if request.total_votes_cast > 0 && request.total_votes_cast >= minimum_participation { let approval_percentage = (request.approve_votes * 100) / request.total_votes_cast; if approval_percentage >= SIMPLE_MAJORITY_THRESHOLD { final_status = LeniencyRequestStatus::Approved; - let circle_key = DataKey::Circle(*circle_id); - let mut circle: CircleInfo = env.storage().instance().get(&circle_key).expect("Circle not found"); - let extension_seconds = request.extension_hours * 3600; let grace_period_end = circle.deadline_timestamp + extension_seconds; circle.grace_period_end = Some(grace_period_end); @@ -1396,6 +1410,8 @@ impl SoroSusu { social_capital.leniency_received += 1; social_capital.trust_score = (social_capital.trust_score + 5).min(100); env.storage().instance().set(&social_capital_key, &social_capital); + } else { + final_status = LeniencyRequestStatus::Rejected; } } diff --git a/src/slashing/mempool.rs b/src/slashing/mempool.rs new file mode 100644 index 0000000..78526bb --- /dev/null +++ b/src/slashing/mempool.rs @@ -0,0 +1,59 @@ +use alloc::collections::BTreeMap; +use alloc::vec::Vec; + +// Mocking required types since the original codebase is absent +pub type ValidatorIndex = u64; + +#[derive(Debug, PartialEq)] +pub enum OverflowError { + RateLimitReached, + MempoolFull, +} + +#[derive(Clone, Debug)] +pub struct Evidence { + pub validator_index: ValidatorIndex, + pub data: Vec, +} + +pub const MAX_EVIDENCE_PER_VALIDATOR_PER_EPOCH: u8 = 1; +const MEMPOOL_CAPACITY: usize = 1024; + +pub struct SlashingMempool { + evidence: Vec, + rate_limits: BTreeMap, +} + +impl SlashingMempool { + pub fn new() -> Self { + Self { + evidence: Vec::with_capacity(MEMPOOL_CAPACITY), + rate_limits: BTreeMap::new(), + } + } + + pub fn push_evidence(&mut self, evidence: Evidence) -> Result<(), OverflowError> { + let count = self.rate_limits.entry(evidence.validator_index).or_insert(0); + + if *count >= MAX_EVIDENCE_PER_VALIDATOR_PER_EPOCH { + return Err(OverflowError::RateLimitReached); + } + + if self.evidence.len() >= MEMPOOL_CAPACITY { + return Err(OverflowError::MempoolFull); + } + + *count += 1; + self.evidence.push(evidence); + + Ok(()) + } + + pub fn drain_all(&mut self) -> Vec { + self.evidence.drain(..).collect() + } + + pub fn reset_epoch(&mut self) { + self.rate_limits.clear(); + } +} diff --git a/src/slashing/mod.rs b/src/slashing/mod.rs index 0892a77..0b967ca 100644 --- a/src/slashing/mod.rs +++ b/src/slashing/mod.rs @@ -1,2 +1,3 @@ pub mod cross_chain_relay; +pub mod mempool; pub mod types; diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_event_store_unique_constraint.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_event_store_unique_constraint.1.json new file mode 100644 index 0000000..ba2f75a --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_event_store_unique_constraint.1.json @@ -0,0 +1,158 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 100 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Pending" + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_executor_idempotency_already_slashed.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_executor_idempotency_already_slashed.1.json new file mode 100644 index 0000000..e20a200 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_executor_idempotency_already_slashed.1.json @@ -0,0 +1,265 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Rejected" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": "void" + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_executor_insufficient_pool_balance.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_executor_insufficient_pool_balance.1.json new file mode 100644 index 0000000..b9aa248 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_executor_insufficient_pool_balance.1.json @@ -0,0 +1,265 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Failed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": "void" + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_multi_condition_creates_single_event_with_all_reasons.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_multi_condition_creates_single_event_with_all_reasons.1.json new file mode 100644 index 0000000..1b98ea9 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_multi_condition_creates_single_event_with_all_reasons.1.json @@ -0,0 +1,314 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + }, + { + "vec": [ + { + "symbol": "ExtendedDowntime" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 740800 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_multiple_nodes_independent_events.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_multiple_nodes_independent_events.1.json new file mode 100644 index 0000000..aa901ea --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_multiple_nodes_independent_events.1.json @@ -0,0 +1,629 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [], + [], + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + }, + { + "vec": [ + { + "symbol": "ExtendedDowntime" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "FraudProof" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 740800 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": "void" + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_no_conditions_triggered_no_event.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_no_conditions_triggered_no_event.1.json new file mode 100644 index 0000000..4bc5595 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_no_conditions_triggered_no_event.1.json @@ -0,0 +1,208 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": "void" + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 1 + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_node_can_be_slashed_again_after_interval.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_node_can_be_slashed_again_after_interval.1.json new file mode 100644 index 0000000..ece759c --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_node_can_be_slashed_again_after_interval.1.json @@ -0,0 +1,390 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1021601, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 2 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1021601 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 2 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1021601 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1021601 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_pre_check_gate_skips_recently_slashed_node.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_pre_check_gate_skips_recently_slashed_node.1.json new file mode 100644 index 0000000..e072cc2 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_pre_check_gate_skips_recently_slashed_node.1.json @@ -0,0 +1,307 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_single_double_signing_condition.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_single_double_signing_condition.1.json new file mode 100644 index 0000000..09a0391 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_single_double_signing_condition.1.json @@ -0,0 +1,307 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_single_extended_downtime_condition.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_single_extended_downtime_condition.1.json new file mode 100644 index 0000000..a60cc82 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_single_extended_downtime_condition.1.json @@ -0,0 +1,307 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "ExtendedDowntime" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 740800 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_triple_condition_creates_single_event.1.json b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_triple_condition_creates_single_event.1.json new file mode 100644 index 0000000..021a67c --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/monitor_tests/test_triple_condition_creates_single_event.1.json @@ -0,0 +1,321 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 1000000, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "BondPool" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "penalty_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "reasons" + }, + "val": { + "vec": [ + { + "vec": [ + { + "symbol": "DoubleSigning" + } + ] + }, + { + "vec": [ + { + "symbol": "ExtendedDowntime" + } + ] + }, + { + "vec": [ + { + "symbol": "FraudProof" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "scan_epoch" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Executed" + } + ] + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastScanTime" + } + ] + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Node" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "bond_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "double_sign_detected" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "fraud_proof_submitted" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "is_active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "last_activity_time" + }, + "val": { + "u64": 740800 + } + }, + { + "key": { + "symbol": "last_slash_time" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "node_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "slashed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "slashing_in_progress" + }, + "val": { + "bool": false + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ScanEpoch" + } + ] + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SlashingLock" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/pool_tests/create_pool_is_idempotent.1.json b/test_snapshots/slashing_core/slashing/tests/pool_tests/create_pool_is_idempotent.1.json new file mode 100644 index 0000000..2d127a2 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/pool_tests/create_pool_is_idempotent.1.json @@ -0,0 +1,178 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "PoolClaimedCount" + }, + { + "u64": 5 + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 5 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 5 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporterCount" + }, + { + "u64": 5 + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPerValidator" + }, + { + "u64": 5 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 500 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPool" + }, + { + "u64": 5 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/pool_tests/fixed_reward_debits_pool_by_exact_share.1.json b/test_snapshots/slashing_core/slashing/tests/pool_tests/fixed_reward_debits_pool_by_exact_share.1.json new file mode 100644 index 0000000..ba36277 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/pool_tests/fixed_reward_debits_pool_by_exact_share.1.json @@ -0,0 +1,322 @@ +{ + "generators": { + "address": 6, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimedCount" + }, + { + "u64": 7 + } + ] + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporterCount" + }, + { + "u64": 7 + } + ] + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPerValidator" + }, + { + "u64": 7 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 200 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPool" + }, + { + "u64": 7 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/pool_tests/indivisible_pool_remainder_goes_to_final_claimant.1.json b/test_snapshots/slashing_core/slashing/tests/pool_tests/indivisible_pool_remainder_goes_to_final_claimant.1.json new file mode 100644 index 0000000..c751aed --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/pool_tests/indivisible_pool_remainder_goes_to_final_claimant.1.json @@ -0,0 +1,250 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimedCount" + }, + { + "u64": 9 + } + ] + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporterCount" + }, + { + "u64": 9 + } + ] + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPerValidator" + }, + { + "u64": 9 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 333 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPool" + }, + { + "u64": 9 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/pool_tests/non_reporter_cannot_claim.1.json b/test_snapshots/slashing_core/slashing/tests/pool_tests/non_reporter_cannot_claim.1.json new file mode 100644 index 0000000..5cc57c4 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/pool_tests/non_reporter_cannot_claim.1.json @@ -0,0 +1,214 @@ +{ + "generators": { + "address": 6, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "PoolClaimedCount" + }, + { + "u64": 3 + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporterCount" + }, + { + "u64": 3 + } + ] + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPerValidator" + }, + { + "u64": 3 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 250 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPool" + }, + { + "u64": 3 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/slashing_core/slashing/tests/pool_tests/ten_validators_fully_distribute_pool_without_double_claim.1.json b/test_snapshots/slashing_core/slashing/tests/pool_tests/ten_validators_fully_distribute_pool_without_double_claim.1.json new file mode 100644 index 0000000..4dac1f6 --- /dev/null +++ b/test_snapshots/slashing_core/slashing/tests/pool_tests/ten_validators_fully_distribute_pool_without_double_claim.1.json @@ -0,0 +1,502 @@ +{ + "generators": { + "address": 11, + "nonce": 0 + }, + "auth": [ + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimed" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolClaimedCount" + }, + { + "u64": 1 + } + ] + }, + "val": { + "u32": 10 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporter" + }, + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "PoolReporterCount" + }, + { + "u64": 1 + } + ] + }, + "val": { + "u32": 10 + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPerValidator" + }, + { + "u64": 1 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 100 + } + } + }, + { + "key": { + "vec": [ + { + "symbol": "RewardPool" + }, + { + "u64": 1 + } + ] + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/test_snapshots/test_cannot_vote_for_own_request.1.json b/test_snapshots/test_cannot_vote_for_own_request.1.json index 2ffafc2..f60b67a 100644 --- a/test_snapshots/test_cannot_vote_for_own_request.1.json +++ b/test_snapshots/test_cannot_vote_for_own_request.1.json @@ -739,6 +739,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -960,68 +992,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1163,7 +1146,7 @@ "data": { "vec": [ { - "string": "caught panic 'Cannot vote for own request' from contract function 'Symbol(obj#387)'" + "string": "caught panic 'Cannot vote for own request' from contract function 'Symbol(obj#391)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" diff --git a/test_snapshots/test_create_proposal.1.json b/test_snapshots/test_create_proposal.1.json index 5bdbb69..0bf67ba 100644 --- a/test_snapshots/test_create_proposal.1.json +++ b/test_snapshots/test_create_proposal.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -184,7 +184,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -370,7 +370,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -801,6 +801,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -898,7 +930,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -1022,68 +1054,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_create_proposal_fails_for_small_groups.1.json b/test_snapshots/test_create_proposal_fails_for_small_groups.1.json index c59be53..96bdcb3 100644 --- a/test_snapshots/test_create_proposal_fails_for_small_groups.1.json +++ b/test_snapshots/test_create_proposal_fails_for_small_groups.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 1000000 + "lo": 100000 } }, { @@ -146,7 +146,7 @@ "val": { "i128": { "hi": 0, - "lo": 1000000 + "lo": 100000 } } }, @@ -332,7 +332,7 @@ "val": { "i128": { "hi": 0, - "lo": 5000000 + "lo": 500000 } } } @@ -522,6 +522,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -619,7 +651,7 @@ { "i128": { "hi": 0, - "lo": 1000000 + "lo": 100000 } }, { @@ -743,68 +775,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -895,7 +878,7 @@ "data": { "vec": [ { - "string": "caught panic 'Quadratic voting not enabled for this circle' from contract function 'Symbol(obj#253)'" + "string": "caught panic 'Quadratic voting not enabled for this circle' from contract function 'Symbol(obj#257)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" diff --git a/test_snapshots/test_double_voting_prevention.1.json b/test_snapshots/test_double_voting_prevention.1.json index 7a3251a..bd1ae5a 100644 --- a/test_snapshots/test_double_voting_prevention.1.json +++ b/test_snapshots/test_double_voting_prevention.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -243,7 +243,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -429,7 +429,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -1139,6 +1139,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1236,7 +1268,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -1360,68 +1392,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1524,68 +1507,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1866,7 +1800,7 @@ "data": { "vec": [ { - "string": "caught panic 'Already voted on this proposal' from contract function 'Symbol(obj#1029)'" + "string": "caught panic 'Already voted on this proposal' from contract function 'Symbol(obj#1035)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/test_snapshots/test_grace_period_prevents_late_fees.1.json b/test_snapshots/test_grace_period_prevents_late_fees.1.json index 5edfacb..5bf1f36 100644 --- a/test_snapshots/test_grace_period_prevents_late_fees.1.json +++ b/test_snapshots/test_grace_period_prevents_late_fees.1.json @@ -1104,6 +1104,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1325,68 +1357,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1489,68 +1472,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_insufficient_voting_power.1.json b/test_snapshots/test_insufficient_voting_power.1.json index 5f6427f..dbc4047 100644 --- a/test_snapshots/test_insufficient_voting_power.1.json +++ b/test_snapshots/test_insufficient_voting_power.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -244,7 +244,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -430,7 +430,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -948,7 +948,7 @@ "symbol": "quadratic_power" }, "val": { - "u64": 50 + "u64": 25 } }, { @@ -958,7 +958,7 @@ "val": { "i128": { "hi": 0, - "lo": 50000 + "lo": 25000 } } } @@ -1140,6 +1140,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1237,7 +1269,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -1361,68 +1393,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1525,68 +1508,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1714,7 +1648,7 @@ { "i128": { "hi": 0, - "lo": 50000 + "lo": 25000 } } ] @@ -1803,7 +1737,7 @@ "data": { "vec": [ { - "string": "caught panic 'Insufficient voting power' from contract function 'Symbol(obj#795)'" + "string": "caught panic 'Insufficient voting power' from contract function 'Symbol(obj#801)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/test_snapshots/test_leniency_stats_tracking.1.json b/test_snapshots/test_leniency_stats_tracking.1.json index 125a614..b9a7442 100644 --- a/test_snapshots/test_leniency_stats_tracking.1.json +++ b/test_snapshots/test_leniency_stats_tracking.1.json @@ -1880,6 +1880,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -2101,68 +2133,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2265,68 +2248,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2429,68 +2363,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "u128": { - "hi": 1, - "lo": 2 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2593,68 +2478,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "u128": { - "hi": 1, - "lo": 3 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_max_vote_weight_enforcement.1.json b/test_snapshots/test_max_vote_weight_enforcement.1.json index 778eeac..11316dd 100644 --- a/test_snapshots/test_max_vote_weight_enforcement.1.json +++ b/test_snapshots/test_max_vote_weight_enforcement.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -244,7 +244,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -430,7 +430,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -1140,6 +1140,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1237,7 +1269,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -1361,68 +1393,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1525,68 +1508,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1803,7 +1737,7 @@ "data": { "vec": [ { - "string": "caught panic 'Vote weight exceeds maximum' from contract function 'Symbol(obj#795)'" + "string": "caught panic 'Vote weight exceeds maximum' from contract function 'Symbol(obj#801)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/test_snapshots/test_minimum_participation_requirement.1.json b/test_snapshots/test_minimum_participation_requirement.1.json index 09a946e..b777913 100644 --- a/test_snapshots/test_minimum_participation_requirement.1.json +++ b/test_snapshots/test_minimum_participation_requirement.1.json @@ -1104,6 +1104,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1325,68 +1357,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1489,68 +1472,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_proposal_execution.1.json b/test_snapshots/test_proposal_execution.1.json index 6844292..544357d 100644 --- a/test_snapshots/test_proposal_execution.1.json +++ b/test_snapshots/test_proposal_execution.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -384,7 +384,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -570,7 +570,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -1871,6 +1871,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1968,7 +2000,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -2092,68 +2124,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2256,68 +2239,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2420,68 +2354,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "u128": { - "hi": 1, - "lo": 2 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2584,68 +2469,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "u128": { - "hi": 1, - "lo": 3 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_proposal_rejection_insufficient_majority.1.json b/test_snapshots/test_proposal_rejection_insufficient_majority.1.json index 0c71205..42027da 100644 --- a/test_snapshots/test_proposal_rejection_insufficient_majority.1.json +++ b/test_snapshots/test_proposal_rejection_insufficient_majority.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -325,7 +325,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -511,7 +511,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -1533,6 +1533,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1630,7 +1662,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -1754,68 +1786,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1918,68 +1901,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2082,68 +2016,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "u128": { - "hi": 1, - "lo": 2 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_quadratic_vote_cost_calculation.1.json b/test_snapshots/test_quadratic_vote_cost_calculation.1.json index c56b4a2..db86f2b 100644 --- a/test_snapshots/test_quadratic_vote_cost_calculation.1.json +++ b/test_snapshots/test_quadratic_vote_cost_calculation.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -243,7 +243,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -429,7 +429,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -1139,6 +1139,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1236,7 +1268,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -1360,68 +1392,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1524,68 +1507,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_quadratic_voting_enabled_for_large_groups.1.json b/test_snapshots/test_quadratic_voting_enabled_for_large_groups.1.json index 1af599d..3b54cb3 100644 --- a/test_snapshots/test_quadratic_voting_enabled_for_large_groups.1.json +++ b/test_snapshots/test_quadratic_voting_enabled_for_large_groups.1.json @@ -1,6 +1,6 @@ { "generators": { - "address": 5, + "address": 6, "nonce": 0 }, "auth": [ @@ -20,14 +20,14 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { "u32": 15 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" }, { "u64": 86400 @@ -36,7 +36,7 @@ "u32": 100 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" } ] } @@ -48,7 +48,7 @@ [], [ [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", { "function": { "contract_fn": { @@ -56,19 +56,19 @@ "function_name": "create_circle", "args": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" }, { "i128": { "hi": 0, - "lo": 1000000 + "lo": 100000 } }, { "u32": 5 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" }, { "u64": 86400 @@ -77,7 +77,7 @@ "u32": 100 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" } ] } @@ -91,7 +91,7 @@ "ledger": { "protocol_version": 21, "sequence_number": 0, - "timestamp": 301, + "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 0, "min_persistent_entry_ttl": 4096, @@ -161,7 +161,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -305,7 +305,7 @@ "symbol": "nft_contract" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" } }, { @@ -337,7 +337,7 @@ "symbol": "token" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" } }, { @@ -347,7 +347,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -382,7 +382,7 @@ "val": { "i128": { "hi": 0, - "lo": 1000000 + "lo": 100000 } } }, @@ -399,7 +399,7 @@ "symbol": "creator" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" } }, { @@ -429,7 +429,7 @@ "symbol": "deadline_timestamp" }, "val": { - "u64": 86701 + "u64": 86400 } }, { @@ -526,7 +526,7 @@ "symbol": "nft_contract" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" } }, { @@ -558,7 +558,7 @@ "symbol": "token" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" } }, { @@ -568,7 +568,7 @@ "val": { "i128": { "hi": 0, - "lo": 5000000 + "lo": 500000 } } } @@ -599,7 +599,22 @@ ] }, "val": { - "u64": 301 + "u64": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "LastCreatedTimestamp" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "val": { + "u64": 0 } } ] @@ -648,7 +663,7 @@ [ { "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { "nonce": 5541220902715666415 @@ -663,7 +678,7 @@ "data": { "contract_data": { "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { "nonce": 5541220902715666415 @@ -678,6 +693,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -775,14 +822,14 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { "u32": 15 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" }, { "u64": 86400 @@ -791,7 +838,7 @@ "u32": 100 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" } ] } @@ -844,19 +891,19 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" }, { "i128": { "hi": 0, - "lo": 1000000 + "lo": 100000 } }, { "u32": 5 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" }, { "u64": 86400 @@ -865,7 +912,7 @@ "u32": 100 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" } ] } diff --git a/test_snapshots/test_quorum_requirement.1.json b/test_snapshots/test_quorum_requirement.1.json index 3c939d5..f2a5ec8 100644 --- a/test_snapshots/test_quorum_requirement.1.json +++ b/test_snapshots/test_quorum_requirement.1.json @@ -1,6 +1,6 @@ { "generators": { - "address": 10, + "address": 20, "nonce": 0 }, "auth": [ @@ -20,14 +20,14 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { "u32": 15 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" }, { "u64": 86400 @@ -36,7 +36,7 @@ "u32": 100 }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" } ] } @@ -125,7 +125,45 @@ ], [ [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_proposal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u64": 1 + }, + { + "vec": [ + { + "symbol": "ChangeLateFee" + } + ] + }, + { + "string": "Test proposal" + }, + { + "string": "Test description" + }, + { + "string": "{}" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", { "function": { "contract_fn": { @@ -133,7 +171,7 @@ "function_name": "join_circle", "args": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" }, { "u64": 1 @@ -151,7 +189,7 @@ ], [ [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", { "function": { "contract_fn": { @@ -159,7 +197,7 @@ "function_name": "join_circle", "args": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" }, { "u64": 1 @@ -177,35 +215,49 @@ ], [ [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N", { "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "create_proposal", + "function_name": "join_circle", "args": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" }, { "u64": 1 }, { - "vec": [ - { - "symbol": "ChangeLateFee" - } - ] + "u32": 1 }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ { - "string": "Test proposal" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5" }, { - "string": "Test description" + "u64": 1 }, { - "string": "{}" - } + "u32": 1 + }, + "void" ] } }, @@ -213,33 +265,51 @@ } ] ], - [], - [], [ [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN", { "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "quadratic_vote", + "function_name": "join_circle", "args": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN" }, { - "u64": 2 + "u64": 1 }, { "u32": 1 }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5" + }, { - "vec": [ - { - "symbol": "For" - } - ] - } + "u64": 1 + }, + { + "u32": 1 + }, + "void" ] } }, @@ -247,32 +317,51 @@ } ] ], - [], [ [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N", { "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "quadratic_vote", + "function_name": "join_circle", "args": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N" }, { - "u64": 2 + "u64": 1 }, { - "u32": 3 + "u32": 1 + }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO" }, { - "vec": [ - { - "symbol": "For" - } - ] - } + "u64": 1 + }, + { + "u32": 1 + }, + "void" ] } }, @@ -280,110 +369,240 @@ } ] ], - [] - ], - "ledger": { - "protocol_version": 21, - "sequence_number": 0, - "timestamp": 0, - "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 0, - "min_persistent_entry_ttl": 4096, - "min_temp_entry_ttl": 16, - "max_entry_ttl": 6312000, - "ledger_entries": [ + [ [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6", { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent", - "val": { - "contract_instance": { - "executable": { - "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "storage": [ - { - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "vec": [ - { - "symbol": "Circle" - }, - { - "u64": 1 - } - ] - }, - "val": { - "map": [ - { - "key": { - "symbol": "collateral_bps" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "contribution_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500000 - } - } - }, - { - "key": { - "symbol": "contribution_bitmap" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "creator" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "current_pot_recipient" - }, - "val": "void" - }, + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "join_circle", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "quadratic_vote", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u64": 2 + }, + { + "u32": 2 + }, + { + "vec": [ + { + "symbol": "For" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "quadratic_vote", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u64": 2 + }, + { + "u32": 3 + }, + { + "vec": [ + { + "symbol": "For" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Circle" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ { "key": { - "symbol": "current_recipient_index" + "symbol": "collateral_bps" }, "val": { "u32": 0 @@ -391,51 +610,92 @@ }, { "key": { - "symbol": "cycle_duration" + "symbol": "contribution_amount" }, "val": { - "u64": 86400 + "i128": { + "hi": 0, + "lo": 100000 + } } }, { "key": { - "symbol": "deadline_timestamp" + "symbol": "contribution_bitmap" }, "val": { - "u64": 86400 + "u64": 0 } }, { "key": { - "symbol": "grace_period_end" + "symbol": "creator" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "current_pot_recipient" }, "val": "void" }, { "key": { - "symbol": "id" + "symbol": "current_recipient_index" }, "val": { - "u64": 1 + "u32": 0 } }, { "key": { - "symbol": "insurance_balance" + "symbol": "cycle_duration" }, "val": { - "i128": { - "hi": 0, - "lo": 0 - } + "u64": 86400 } }, { "key": { - "symbol": "insurance_fee_bps" + "symbol": "deadline_timestamp" }, "val": { - "u32": 100 + "u64": 86400 + } + }, + { + "key": { + "symbol": "grace_period_end" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "insurance_balance" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "insurance_fee_bps" + }, + "val": { + "u32": 100 } }, { @@ -491,7 +751,7 @@ "symbol": "member_count" }, "val": { - "u32": 5 + "u32": 15 } }, { @@ -499,7 +759,7 @@ "symbol": "nft_contract" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" } }, { @@ -531,7 +791,7 @@ "symbol": "token" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" } }, { @@ -541,7 +801,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -822,7 +1082,7 @@ "symbol": "Member" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" } ] }, @@ -833,7 +1093,7 @@ "symbol": "address" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" } }, { @@ -902,7 +1162,7 @@ "symbol": "Member" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" } ] }, @@ -913,7 +1173,7 @@ "symbol": "address" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" } }, { @@ -979,10 +1239,10 @@ "key": { "vec": [ { - "symbol": "Proposal" + "symbol": "Member" }, { - "u64": 2 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" } ] }, @@ -990,130 +1250,146 @@ "map": [ { "key": { - "symbol": "against_votes" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "circle_id" + "symbol": "address" }, "val": { - "u64": 1 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" } }, { "key": { - "symbol": "created_timestamp" + "symbol": "buddy" }, - "val": { - "u64": 0 - } + "val": "void" }, { "key": { - "symbol": "description" + "symbol": "contribution_count" }, "val": { - "string": "Test description" + "u32": 0 } }, { "key": { - "symbol": "execution_data" + "symbol": "index" }, "val": { - "string": "{}" + "u32": 5 } }, { "key": { - "symbol": "for_votes" + "symbol": "last_contribution_time" }, "val": { - "u64": 10 + "u64": 0 } }, { "key": { - "symbol": "id" + "symbol": "referrer" }, - "val": { - "u64": 2 - } + "val": "void" }, { "key": { - "symbol": "proposal_type" + "symbol": "status" }, "val": { "vec": [ { - "symbol": "ChangeLateFee" + "symbol": "Active" } ] } }, { "key": { - "symbol": "proposer" + "symbol": "tier_multiplier" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "u32": 1 } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Member" }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5" + } + ] + }, + "val": { + "map": [ { "key": { - "symbol": "quorum_met" + "symbol": "address" }, "val": { - "bool": true + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5" } }, { "key": { - "symbol": "status" + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" }, "val": { - "vec": [ - { - "symbol": "Active" - } - ] + "u32": 0 } }, { "key": { - "symbol": "title" + "symbol": "index" }, "val": { - "string": "Test proposal" + "u32": 6 } }, { "key": { - "symbol": "total_voting_power" + "symbol": "last_contribution_time" }, "val": { - "u64": 10 + "u64": 0 } }, { "key": { - "symbol": "voting_end_timestamp" + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" }, "val": { - "u64": 604800 + "vec": [ + { + "symbol": "Active" + } + ] } }, { "key": { - "symbol": "voting_start_timestamp" + "symbol": "tier_multiplier" }, "val": { - "u64": 0 + "u32": 1 } } ] @@ -1123,10 +1399,10 @@ "key": { "vec": [ { - "symbol": "ProposalStats" + "symbol": "Member" }, { - "u64": 1 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN" } ] }, @@ -1134,15 +1410,21 @@ "map": [ { "key": { - "symbol": "approved_proposals" + "symbol": "address" }, "val": { - "u32": 0 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN" } }, { "key": { - "symbol": "average_participation" + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" }, "val": { "u32": 0 @@ -1150,31 +1432,41 @@ }, { "key": { - "symbol": "average_voting_time" + "symbol": "index" }, "val": { - "u64": 0 + "u32": 7 } }, { "key": { - "symbol": "executed_proposals" + "symbol": "last_contribution_time" }, "val": { - "u32": 0 + "u64": 0 } }, { "key": { - "symbol": "rejected_proposals" + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" }, "val": { - "u32": 0 + "vec": [ + { + "symbol": "Active" + } + ] } }, { "key": { - "symbol": "total_proposals" + "symbol": "tier_multiplier" }, "val": { "u32": 1 @@ -1187,13 +1479,10 @@ "key": { "vec": [ { - "symbol": "QuadraticVote" - }, - { - "u64": 2 + "symbol": "Member" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5" } ] }, @@ -1201,54 +1490,66 @@ "map": [ { "key": { - "symbol": "proposal_id" + "symbol": "address" }, "val": { - "u64": 2 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5" } }, { "key": { - "symbol": "timestamp" + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" }, "val": { - "u64": 0 + "u32": 0 } }, { "key": { - "symbol": "vote_choice" + "symbol": "index" }, "val": { - "vec": [ - { - "symbol": "For" - } - ] + "u32": 8 } }, { "key": { - "symbol": "vote_weight" + "symbol": "last_contribution_time" }, "val": { - "u32": 1 + "u64": 0 } }, { "key": { - "symbol": "voter" + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "vec": [ + { + "symbol": "Active" + } + ] } }, { "key": { - "symbol": "voting_power_used" + "symbol": "tier_multiplier" }, "val": { - "u64": 1 + "u32": 1 } } ] @@ -1258,13 +1559,10 @@ "key": { "vec": [ { - "symbol": "QuadraticVote" - }, - { - "u64": 2 + "symbol": "Member" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N" } ] }, @@ -1272,54 +1570,66 @@ "map": [ { "key": { - "symbol": "proposal_id" + "symbol": "address" }, "val": { - "u64": 2 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N" } }, { "key": { - "symbol": "timestamp" + "symbol": "buddy" }, - "val": { - "u64": 0 - } + "val": "void" }, { "key": { - "symbol": "vote_choice" + "symbol": "contribution_count" }, "val": { - "vec": [ - { - "symbol": "For" - } - ] + "u32": 0 } }, { "key": { - "symbol": "vote_weight" + "symbol": "index" }, "val": { - "u32": 3 + "u32": 9 } }, { "key": { - "symbol": "voter" + "symbol": "last_contribution_time" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "u64": 0 } }, { "key": { - "symbol": "voting_power_used" + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" }, "val": { - "u64": 9 + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "tier_multiplier" + }, + "val": { + "u32": 1 } } ] @@ -1329,13 +1639,10 @@ "key": { "vec": [ { - "symbol": "VotingPower" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "symbol": "Member" }, { - "u64": 1 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO" } ] }, @@ -1343,45 +1650,66 @@ "map": [ { "key": { - "symbol": "circle_id" + "symbol": "address" }, "val": { - "u64": 1 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO" } }, { "key": { - "symbol": "last_updated" + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" }, "val": { - "u64": 0 + "u32": 0 } }, { "key": { - "symbol": "member" + "symbol": "index" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "u32": 10 } }, { "key": { - "symbol": "quadratic_power" + "symbol": "last_contribution_time" }, "val": { - "u64": 10000 + "u64": 0 } }, { "key": { - "symbol": "token_balance" + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" }, "val": { - "i128": { - "hi": 0, - "lo": 10000000 - } + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "tier_multiplier" + }, + "val": { + "u32": 1 } } ] @@ -1391,13 +1719,90 @@ "key": { "vec": [ { - "symbol": "VotingPower" + "symbol": "Member" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "address" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6" + } }, { - "u64": 1 + "key": { + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "index" + }, + "val": { + "u32": 11 + } + }, + { + "key": { + "symbol": "last_contribution_time" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "tier_multiplier" + }, + "val": { + "u32": 1 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Member" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O" } ] }, @@ -1405,381 +1810,2281 @@ "map": [ { "key": { - "symbol": "circle_id" + "symbol": "address" }, "val": { - "u64": 1 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O" } }, { "key": { - "symbol": "last_updated" + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" }, "val": { - "u64": 0 + "u32": 0 } }, { "key": { - "symbol": "member" + "symbol": "index" }, "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "u32": 12 } }, { "key": { - "symbol": "quadratic_power" + "symbol": "last_contribution_time" }, "val": { - "u64": 10000 + "u64": 0 } }, { "key": { - "symbol": "token_balance" + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" }, "val": { - "i128": { - "hi": 0, - "lo": 10000000 - } + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "tier_multiplier" + }, + "val": { + "u32": 1 } } ] } - } - ] - } - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", - "key": { - "ledger_key_nonce": { - "nonce": 801925984706572462 - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", - "key": { - "ledger_key_nonce": { - "nonce": 801925984706572462 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": 5541220902715666415 - } - }, - "durability": "temporary" - } - }, + }, + { + "key": { + "vec": [ + { + "symbol": "Member" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "address" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6" + } + }, + { + "key": { + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "index" + }, + "val": { + "u32": 13 + } + }, + { + "key": { + "symbol": "last_contribution_time" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "tier_multiplier" + }, + "val": { + "u32": 1 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Member" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "address" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO" + } + }, + { + "key": { + "symbol": "buddy" + }, + "val": "void" + }, + { + "key": { + "symbol": "contribution_count" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "index" + }, + "val": { + "u32": 14 + } + }, + { + "key": { + "symbol": "last_contribution_time" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "referrer" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "tier_multiplier" + }, + "val": { + "u32": 1 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Proposal" + }, + { + "u64": 2 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "against_votes" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "circle_id" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "created_timestamp" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "description" + }, + "val": { + "string": "Test description" + } + }, + { + "key": { + "symbol": "execution_data" + }, + "val": { + "string": "{}" + } + }, + { + "key": { + "symbol": "for_votes" + }, + "val": { + "u64": 13 + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": 2 + } + }, + { + "key": { + "symbol": "proposal_type" + }, + "val": { + "vec": [ + { + "symbol": "ChangeLateFee" + } + ] + } + }, + { + "key": { + "symbol": "proposer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "quorum_met" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "title" + }, + "val": { + "string": "Test proposal" + } + }, + { + "key": { + "symbol": "total_voting_power" + }, + "val": { + "u64": 13 + } + }, + { + "key": { + "symbol": "voting_end_timestamp" + }, + "val": { + "u64": 604800 + } + }, + { + "key": { + "symbol": "voting_start_timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "ProposalStats" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "approved_proposals" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "average_participation" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "average_voting_time" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "executed_proposals" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "rejected_proposals" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "total_proposals" + }, + "val": { + "u32": 1 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "QuadraticVote" + }, + { + "u64": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "proposal_id" + }, + "val": { + "u64": 2 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "vote_choice" + }, + "val": { + "vec": [ + { + "symbol": "For" + } + ] + } + }, + { + "key": { + "symbol": "vote_weight" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "voter" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "symbol": "voting_power_used" + }, + "val": { + "u64": 4 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "QuadraticVote" + }, + { + "u64": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "proposal_id" + }, + "val": { + "u64": 2 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "vote_choice" + }, + "val": { + "vec": [ + { + "symbol": "For" + } + ] + } + }, + { + "key": { + "symbol": "vote_weight" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "voter" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + }, + { + "key": { + "symbol": "voting_power_used" + }, + "val": { + "u64": 9 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "VotingPower" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "circle_id" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "last_updated" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "member" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "symbol": "quadratic_power" + }, + "val": { + "u64": 10000 + } + }, + { + "key": { + "symbol": "token_balance" + }, + "val": { + "i128": { + "hi": 0, + "lo": 10000000 + } + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "VotingPower" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u64": 1 + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "circle_id" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "last_updated" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "member" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + }, + { + "key": { + "symbol": "quadratic_power" + }, + "val": { + "u64": 10000 + } + }, + { + "key": { + "symbol": "token_balance" + }, + "val": { + "i128": { + "hi": 0, + "lo": 10000000 + } + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 6391496069076573377 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 6391496069076573377 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 4571470874178140630 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 4571470874178140630 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O", + "key": { + "ledger_key_nonce": { + "nonce": 7270604957039011794 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O", + "key": { + "ledger_key_nonce": { + "nonce": 7270604957039011794 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6", + "key": { + "ledger_key_nonce": { + "nonce": 2781962168096793370 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6", + "key": { + "ledger_key_nonce": { + "nonce": 2781962168096793370 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO", + "key": { + "ledger_key_nonce": { + "nonce": 2307661404550649928 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO", + "key": { + "ledger_key_nonce": { + "nonce": 2307661404550649928 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, [ { "last_modified_ledger_seq": 0, "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": 5541220902715666415 + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "init" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "init" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_circle" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 100000 + } + }, + { + "u32": 15 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "u64": 86400 + }, + { + "u32": 100 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_circle" + } + ], + "data": { + "u64": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u128": { + "hi": 1, + "lo": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "join_circle" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u128": { + "hi": 1, + "lo": 1 } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "join_circle" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" }, - "durability": "temporary", - "val": "void" + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": 8370022561469687789 + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u128": { + "hi": 1, + "lo": 2 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "join_circle" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_proposal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u64": 1 + }, + { + "vec": [ + { + "symbol": "ChangeLateFee" + } + ] + }, + { + "string": "Test proposal" + }, + { + "string": "Test description" + }, + { + "string": "{}" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_proposal" } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": 8370022561469687789 - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", - "key": { - "ledger_key_nonce": { - "nonce": 1033654523790656264 - } - }, - "durability": "temporary" + "u64": 2 + } } - }, - [ - { - "last_modified_ledger_seq": 0, + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" + } + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", - "key": { - "ledger_key_nonce": { - "nonce": 1033654523790656264 - } + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } - }, - "durability": "temporary" + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } } - }, - [ - { - "last_modified_ledger_seq": 0, + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", - "key": { - "ledger_key_nonce": { - "nonce": 6277191135259896685 - } + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" }, - "durability": "temporary", - "val": "void" + { + "u128": { + "hi": 1, + "lo": 3 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 4837995959683129791 + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "join_circle" } - }, - "durability": "temporary" + ], + "data": "void" } - }, - [ - { - "last_modified_ledger_seq": 0, + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" + } + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 4837995959683129791 - } + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 5806905060045992000 - } - }, - "durability": "temporary" + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } } - }, - [ - { - "last_modified_ledger_seq": 0, + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", - "key": { - "ledger_key_nonce": { - "nonce": 5806905060045992000 - } + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" }, - "durability": "temporary", - "val": "void" + { + "u128": { + "hi": 1, + "lo": 4 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", - "key": { - "ledger_key_nonce": { - "nonce": 2032731177588607455 + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "join_circle" } - }, - "durability": "temporary" + ], + "data": "void" } - }, - [ - { - "last_modified_ledger_seq": 0, + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" + } + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", - "key": { - "ledger_key_nonce": { - "nonce": 2032731177588607455 - } + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", - "key": { - "ledger_key_nonce": { - "nonce": 4270020994084947596 - } - }, - "durability": "temporary" + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } } - }, - [ - { - "last_modified_ledger_seq": 0, + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", - "key": { - "ledger_key_nonce": { - "nonce": 4270020994084947596 - } + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N" }, - "durability": "temporary", - "val": "void" + { + "u128": { + "hi": 1, + "lo": 5 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_code": { - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + ], + "data": "void" } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_code": { - "ext": "v0", - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "code": "" + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "join_circle" } - }, - "ext": "v0" - }, - 4095 - ] - ] - ] - }, - "events": [ + ], + "data": "void" + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -1795,17 +4100,85 @@ "bytes": "0000000000000000000000000000000000000000000000000000000000000001" }, { - "symbol": "init" + "symbol": "join_circle" } ], "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5" + }, + { + "u128": { + "hi": 1, + "lo": 6 + } + } + ] } } } }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -1818,7 +4191,7 @@ "symbol": "fn_return" }, { - "symbol": "init" + "symbol": "join_circle" } ], "data": "void" @@ -1842,34 +4215,56 @@ "bytes": "0000000000000000000000000000000000000000000000000000000000000001" }, { - "symbol": "create_circle" + "symbol": "join_circle" } ], "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 500000 - } - }, - { - "u32": 15 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + "u64": 1 }, { - "u64": 86400 + "u32": 1 }, + "void" + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" + } + ], + "data": { + "vec": [ { - "u32": 100 + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZMN" }, { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5" + "u128": { + "hi": 1, + "lo": 7 + } } ] } @@ -1878,6 +4273,27 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -1890,12 +4306,10 @@ "symbol": "fn_return" }, { - "symbol": "create_circle" + "symbol": "join_circle" } ], - "data": { - "u64": 1 - } + "data": "void" } } }, @@ -1922,7 +4336,7 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5" }, { "u64": 1 @@ -1950,7 +4364,7 @@ "symbol": "fn_call" }, { - "bytes": "000000000000000000000000000000000000000000000000000000000000000a" + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" }, { "symbol": "mint" @@ -1959,12 +4373,12 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4BV5" }, { "u128": { "hi": 1, - "lo": 0 + "lo": 8 } } ] @@ -1974,6 +4388,27 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -1983,16 +4418,49 @@ "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "join_circle" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "join_circle" } ], "data": { - "string": "trying to get non-existing value for contract instance" + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] } } } @@ -2008,34 +4476,25 @@ "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_call" }, { - "error": { - "storage": "missing_value" - } + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" + }, + { + "symbol": "mint" } ], "data": { "vec": [ { - "string": "contract try_call failed" - }, - { - "symbol": "mint" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6J5N" }, { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] + "u128": { + "hi": 1, + "lo": 9 + } } ] } @@ -2044,6 +4503,27 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -2086,7 +4566,7 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO" }, { "u64": 1 @@ -2114,7 +4594,7 @@ "symbol": "fn_call" }, { - "bytes": "000000000000000000000000000000000000000000000000000000000000000a" + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" }, { "symbol": "mint" @@ -2123,12 +4603,12 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB6KO" }, { "u128": { "hi": 1, - "lo": 1 + "lo": 10 } } ] @@ -2141,68 +4621,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2250,7 +4681,7 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6" }, { "u64": 1 @@ -2278,7 +4709,7 @@ "symbol": "fn_call" }, { - "bytes": "000000000000000000000000000000000000000000000000000000000000000a" + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" }, { "symbol": "mint" @@ -2287,12 +4718,12 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDWC6" }, { "u128": { "hi": 1, - "lo": 2 + "lo": 11 } } ] @@ -2305,68 +4736,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "u128": { - "hi": 1, - "lo": 2 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2414,7 +4796,7 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O" }, { "u64": 1 @@ -2442,7 +4824,7 @@ "symbol": "fn_call" }, { - "bytes": "000000000000000000000000000000000000000000000000000000000000000a" + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" }, { "symbol": "mint" @@ -2451,12 +4833,12 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFO3O" }, { "u128": { "hi": 1, - "lo": 3 + "lo": 12 } } ] @@ -2469,68 +4851,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "u128": { - "hi": 1, - "lo": 3 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2578,7 +4911,7 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6" }, { "u64": 1 @@ -2606,7 +4939,7 @@ "symbol": "fn_call" }, { - "bytes": "000000000000000000000000000000000000000000000000000000000000000a" + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" }, { "symbol": "mint" @@ -2615,12 +4948,12 @@ "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHGT6" }, { "u128": { "hi": 1, - "lo": 4 + "lo": 13 } } ] @@ -2633,23 +4966,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "string": "trying to get non-existing value for contract instance" - } + "data": "void" } } }, @@ -2664,37 +4993,13 @@ "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "join_circle" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - }, - { - "u128": { - "hi": 1, - "lo": 4 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2703,19 +5008,35 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": null, "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "fn_return" + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" }, { "symbol": "join_circle" } ], - "data": "void" + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO" + }, + { + "u64": 1 + }, + { + "u32": 1 + }, + "void" + ] + } } } }, @@ -2724,7 +5045,7 @@ { "event": { "ext": "v0", - "contract_id": null, + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", "type_": "diagnostic", "body": { "v0": { @@ -2733,35 +5054,22 @@ "symbol": "fn_call" }, { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + "bytes": "0000000000000000000000000000000000000000000000000000000000000008" }, { - "symbol": "create_proposal" + "symbol": "mint" } ], "data": { "vec": [ { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u64": 1 - }, - { - "vec": [ - { - "symbol": "ChangeLateFee" - } - ] - }, - { - "string": "Test proposal" - }, - { - "string": "Test description" + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7IO" }, { - "string": "{}" + "u128": { + "hi": 1, + "lo": 14 + } } ] } @@ -2770,6 +5078,27 @@ }, "failed_call": false }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000008", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, { "event": { "ext": "v0", @@ -2782,12 +5111,10 @@ "symbol": "fn_return" }, { - "symbol": "create_proposal" + "symbol": "join_circle" } ], - "data": { - "u64": 2 - } + "data": "void" } } }, @@ -2940,7 +5267,7 @@ "u64": 2 }, { - "u32": 1 + "u32": 2 }, { "vec": [ @@ -3065,7 +5392,7 @@ "symbol": "for_votes" }, "val": { - "u64": 1 + "u64": 4 } }, { @@ -3129,7 +5456,7 @@ "symbol": "total_voting_power" }, "val": { - "u64": 1 + "u64": 4 } }, { @@ -3307,7 +5634,7 @@ "symbol": "for_votes" }, "val": { - "u64": 10 + "u64": 13 } }, { @@ -3371,7 +5698,7 @@ "symbol": "total_voting_power" }, "val": { - "u64": 10 + "u64": 13 } }, { diff --git a/test_snapshots/test_request_leniency.1.json b/test_snapshots/test_request_leniency.1.json index aca8bab..a3b70b1 100644 --- a/test_snapshots/test_request_leniency.1.json +++ b/test_snapshots/test_request_leniency.1.json @@ -739,6 +739,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -960,68 +992,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_social_capital_tracking.1.json b/test_snapshots/test_social_capital_tracking.1.json index 85dd9a8..d5fdbe9 100644 --- a/test_snapshots/test_social_capital_tracking.1.json +++ b/test_snapshots/test_social_capital_tracking.1.json @@ -1105,6 +1105,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1326,68 +1358,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1490,68 +1473,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_vote_on_leniency_approval.1.json b/test_snapshots/test_vote_on_leniency_approval.1.json index 8246205..b63dd6e 100644 --- a/test_snapshots/test_vote_on_leniency_approval.1.json +++ b/test_snapshots/test_vote_on_leniency_approval.1.json @@ -1540,6 +1540,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1761,68 +1793,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1925,68 +1908,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2089,68 +2023,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "u128": { - "hi": 1, - "lo": 2 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2253,68 +2138,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "u128": { - "hi": 1, - "lo": 3 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_vote_on_leniency_rejection.1.json b/test_snapshots/test_vote_on_leniency_rejection.1.json index c3c9eb7..65eeb0f 100644 --- a/test_snapshots/test_vote_on_leniency_rejection.1.json +++ b/test_snapshots/test_vote_on_leniency_rejection.1.json @@ -1470,6 +1470,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1691,68 +1723,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1855,68 +1838,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2019,68 +1953,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "u128": { - "hi": 1, - "lo": 2 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -2183,68 +2068,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000009", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "u128": { - "hi": 1, - "lo": 3 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/test_snapshots/test_voting_period_expiration.1.json b/test_snapshots/test_voting_period_expiration.1.json index a225f34..fc67e26 100644 --- a/test_snapshots/test_voting_period_expiration.1.json +++ b/test_snapshots/test_voting_period_expiration.1.json @@ -937,6 +937,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -1158,68 +1190,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1322,68 +1305,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "u128": { - "hi": 1, - "lo": 1 - } - } - ] - } - ] - } + "data": "void" } } }, @@ -1525,7 +1459,7 @@ "data": { "vec": [ { - "string": "caught panic 'Voting period expired' from contract function 'Symbol(obj#561)'" + "string": "caught panic 'Voting period expired' from contract function 'Symbol(obj#567)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/test_snapshots/test_voting_power_calculation.1.json b/test_snapshots/test_voting_power_calculation.1.json index bbbd3dc..4994fe3 100644 --- a/test_snapshots/test_voting_power_calculation.1.json +++ b/test_snapshots/test_voting_power_calculation.1.json @@ -20,7 +20,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -149,7 +149,7 @@ "val": { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } } }, @@ -335,7 +335,7 @@ "val": { "i128": { "hi": 0, - "lo": 7500000 + "lo": 1500000 } } } @@ -587,6 +587,38 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_code": { @@ -684,7 +716,7 @@ { "i128": { "hi": 0, - "lo": 500000 + "lo": 100000 } }, { @@ -808,68 +840,19 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "storage": "missing_value" - } - } - ], - "data": { - "string": "trying to get non-existing value for contract instance" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", "type_": "diagnostic", "body": { "v0": { "topics": [ { - "symbol": "error" + "symbol": "fn_return" }, { - "error": { - "storage": "missing_value" - } + "symbol": "mint" } ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "mint" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u128": { - "hi": 1, - "lo": 0 - } - } - ] - } - ] - } + "data": "void" } } }, diff --git a/tests/leniency_voting_test.rs b/tests/leniency_voting_test.rs index 55b4dd7..8dcb7fa 100644 --- a/tests/leniency_voting_test.rs +++ b/tests/leniency_voting_test.rs @@ -2,6 +2,15 @@ use soroban_sdk::{Address, Env, String, Symbol}; use soroban_sdk::testutils::{Address as _, Ledger}; use sorosusu_contracts::{SoroSusu, SoroSusuClient, DataKey, LeniencyVote, LeniencyRequestStatus, MemberStatus}; +#[soroban_sdk::contract] +pub struct MockNft; + +#[soroban_sdk::contractimpl] +impl MockNft { + pub fn mint(_env: Env, _to: soroban_sdk::Address, _id: u128) {} + pub fn burn(_env: Env, _from: soroban_sdk::Address, _id: u128) {} +} + #[test] fn test_request_leniency() { let env = Env::default(); @@ -13,7 +22,7 @@ fn test_request_leniency() { let creator = Address::generate(&env); let requester = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -60,7 +69,7 @@ fn test_vote_on_leniency_approval() { let voter2 = Address::generate(&env); let voter3 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -97,11 +106,11 @@ fn test_vote_on_leniency_approval() { assert_eq!(request.reject_votes, 0); // Verify grace period was applied - let circle_key = DataKey::Circle(circle_id); env.as_contract(&contract_id, || { + let circle_key = DataKey::Circle(circle_id); let circle = env.storage().instance().get::<_, sorosusu_contracts::CircleInfo>(&circle_key).unwrap(); assert!(circle.grace_period_end.is_some()); - assert!(circle.grace_period_end.unwrap() > circle.deadline_timestamp); + assert_eq!(circle.grace_period_end.unwrap(), circle.deadline_timestamp + 172800); }); } @@ -119,7 +128,7 @@ fn test_vote_on_leniency_rejection() { let voter2 = Address::generate(&env); let voter3 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -167,7 +176,7 @@ fn test_cannot_vote_for_own_request() { let creator = Address::generate(&env); let requester = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -209,7 +218,7 @@ fn test_double_voting_prevention() { let requester = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -255,7 +264,7 @@ fn test_social_capital_tracking() { let requester = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -308,7 +317,7 @@ fn test_leniency_stats_tracking() { let voter1 = Address::generate(&env); let voter2 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -363,7 +372,7 @@ fn test_grace_period_prevents_late_fees() { let requester = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -392,8 +401,8 @@ fn test_grace_period_prevents_late_fees() { env.ledger().set_timestamp(env.ledger().timestamp() + 7200); // 2 hours later // Verify grace period is active - let circle_key = DataKey::Circle(circle_id); env.as_contract(&contract_id, || { + let circle_key = DataKey::Circle(circle_id); let circle = env.storage().instance().get::<_, sorosusu_contracts::CircleInfo>(&circle_key).unwrap(); assert!(circle.grace_period_end.is_some()); assert!(env.ledger().timestamp() < circle.grace_period_end.unwrap()); @@ -415,7 +424,7 @@ fn test_voting_period_expiration() { let requester = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -468,7 +477,7 @@ fn test_minimum_participation_requirement() { let requester = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); diff --git a/tests/quadratic_voting_test.rs b/tests/quadratic_voting_test.rs index 98c09c8..13bb2f1 100644 --- a/tests/quadratic_voting_test.rs +++ b/tests/quadratic_voting_test.rs @@ -1,7 +1,16 @@ -use soroban_sdk::{Address, Env, String}; +use soroban_sdk::{Address, Env, String, Symbol}; use soroban_sdk::testutils::Address as _; use soroban_sdk::testutils::Ledger; -use sorosusu_contracts::{CircleInfo, SoroSusu, SoroSusuClient, DataKey, ProposalType, ProposalStatus, QuadraticVoteChoice}; +use sorosusu_contracts::{SoroSusu, SoroSusuClient, DataKey, ProposalType, ProposalStatus, QuadraticVoteChoice}; + +#[soroban_sdk::contract] +pub struct MockNft; + +#[soroban_sdk::contractimpl] +impl MockNft { + pub fn mint(_env: Env, _to: soroban_sdk::Address, _id: u128) {} + pub fn burn(_env: Env, _from: soroban_sdk::Address, _id: u128) {} +} #[test] fn test_quadratic_voting_enabled_for_large_groups() { @@ -12,8 +21,9 @@ fn test_quadratic_voting_enabled_for_large_groups() { let admin = Address::generate(&env); let creator = Address::generate(&env); + let creator2 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -21,7 +31,7 @@ fn test_quadratic_voting_enabled_for_large_groups() { // Create large group (>= 10 members) - quadratic voting should be enabled let circle_id = client.create_circle( &creator, - &50_000_0, // 50 XLM - below high value threshold so no collateral needed + &10_000_0, // 10 XLM &15u32, // 15 members &token, &86400u64, @@ -30,18 +40,16 @@ fn test_quadratic_voting_enabled_for_large_groups() { ); // Verify quadratic voting is enabled - let circle: CircleInfo = env.as_contract(&contract_id, || { - env.storage().instance().get(&DataKey::Circle(circle_id)).unwrap() + env.as_contract(&contract_id, || { + let circle_key = DataKey::Circle(circle_id); + let circle = env.storage().instance().get::<_, sorosusu_contracts::CircleInfo>(&circle_key).unwrap(); + assert!(circle.quadratic_voting_enabled); }); - assert!(circle.quadratic_voting_enabled); - - // Advance ledger time past rate limit - env.ledger().set_timestamp(env.ledger().timestamp() + 301); // Create small group (< 10 members) - quadratic voting should be disabled let small_circle_id = client.create_circle( - &creator, - &100_000_0, + &creator2, + &10_000_0, &5u32, // 5 members &token, &86400u64, @@ -50,10 +58,11 @@ fn test_quadratic_voting_enabled_for_large_groups() { ); // Verify quadratic voting is disabled - let small_circle: CircleInfo = env.as_contract(&contract_id, || { - env.storage().instance().get(&DataKey::Circle(small_circle_id)).unwrap() + env.as_contract(&contract_id, || { + let small_circle_key = DataKey::Circle(small_circle_id); + let small_circle = env.storage().instance().get::<_, sorosusu_contracts::CircleInfo>(&small_circle_key).unwrap(); + assert!(!small_circle.quadratic_voting_enabled); }); - assert!(!small_circle.quadratic_voting_enabled); } #[test] @@ -67,7 +76,7 @@ fn test_create_proposal() { let creator = Address::generate(&env); let proposer = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -75,7 +84,7 @@ fn test_create_proposal() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -121,7 +130,7 @@ fn test_create_proposal_fails_for_small_groups() { let creator = Address::generate(&env); let proposer = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -129,7 +138,7 @@ fn test_create_proposal_fails_for_small_groups() { // Create small group let circle_id = client.create_circle( &creator, - &100_000_0, + &10_000_0, &5u32, // Small group &token, &86400u64, @@ -162,7 +171,7 @@ fn test_voting_power_calculation() { let creator = Address::generate(&env); let member = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -170,7 +179,7 @@ fn test_voting_power_calculation() { // Create circle let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -206,7 +215,7 @@ fn test_quadratic_vote_cost_calculation() { let proposer = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -214,7 +223,7 @@ fn test_quadratic_vote_cost_calculation() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -265,7 +274,7 @@ fn test_insufficient_voting_power() { let proposer = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -273,7 +282,7 @@ fn test_insufficient_voting_power() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -300,7 +309,7 @@ fn test_insufficient_voting_power() { ); // Set low voting power (only enough for weight 5 vote: 5^2 = 25) - client.update_voting_power(&voter, &circle_id, &50_000); // quadratic_power = 50_000/1000 = 50 + client.update_voting_power(&voter, &circle_id, &25_000); // Try to vote with weight 10 (cost = 10^2 = 100) - should fail let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { @@ -327,7 +336,7 @@ fn test_double_voting_prevention() { let proposer = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -335,7 +344,7 @@ fn test_double_voting_prevention() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -386,10 +395,8 @@ fn test_quorum_requirement() { let proposer = Address::generate(&env); let voter1 = Address::generate(&env); let voter2 = Address::generate(&env); - let voter3 = Address::generate(&env); - let voter4 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -397,7 +404,7 @@ fn test_quorum_requirement() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -405,12 +412,10 @@ fn test_quorum_requirement() { &nft_contract, ); - // Join circle (need 5+ members so quorum threshold > 1) + // Join circle client.join_circle(&proposer, &circle_id, &1u32, &None); client.join_circle(&voter1, &circle_id, &1u32, &None); client.join_circle(&voter2, &circle_id, &1u32, &None); - client.join_circle(&voter3, &circle_id, &1u32, &None); - client.join_circle(&voter4, &circle_id, &1u32, &None); // Create proposal let title = String::from_str(&env, "Test proposal"); @@ -426,22 +431,28 @@ fn test_quorum_requirement() { &execution_data, ); + // Add dummy members to reach 15 total members + for _ in 0..12 { + let dummy = Address::generate(&env); + client.join_circle(&dummy, &circle_id, &1u32, &None); + } + // Set up voting power client.update_voting_power(&voter1, &circle_id, &1_000_000_0); client.update_voting_power(&voter2, &circle_id, &1_000_000_0); // Vote with low participation (should not meet quorum) - client.quadratic_vote(&voter1, &proposal_id, &1u32, &QuadraticVoteChoice::For); // Cost: 1 + client.quadratic_vote(&voter1, &proposal_id, &2u32, &QuadraticVoteChoice::For); // Cost: 4 let proposal = client.get_proposal(&proposal_id); - assert!(!proposal.quorum_met); // 5 members: quorum=2, cost=1 < 2, not met + assert!(!proposal.quorum_met); // Should not meet 40% quorum // Add more votes to meet quorum client.quadratic_vote(&voter2, &proposal_id, &3u32, &QuadraticVoteChoice::For); // Cost: 9 let updated_proposal = client.get_proposal(&proposal_id); - assert_eq!(updated_proposal.for_votes, 10); // 1 + 9 - assert!(updated_proposal.quorum_met); // 10 >= 2, quorum met + assert_eq!(updated_proposal.for_votes, 13); // 4 + 9 + assert!(updated_proposal.quorum_met); // Should now meet quorum } #[test] @@ -458,7 +469,7 @@ fn test_proposal_execution() { let voter2 = Address::generate(&env); let voter3 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -466,7 +477,7 @@ fn test_proposal_execution() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -535,7 +546,7 @@ fn test_proposal_rejection_insufficient_majority() { let voter1 = Address::generate(&env); let voter2 = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -543,7 +554,7 @@ fn test_proposal_rejection_insufficient_majority() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, @@ -607,7 +618,7 @@ fn test_max_vote_weight_enforcement() { let proposer = Address::generate(&env); let voter = Address::generate(&env); let token = Address::generate(&env); - let nft_contract = Address::generate(&env); + let nft_contract = env.register_contract(None, MockNft); // Initialize contract client.init(&admin); @@ -615,7 +626,7 @@ fn test_max_vote_weight_enforcement() { // Create large group let circle_id = client.create_circle( &creator, - &50_000_0, + &10_000_0, &15u32, &token, &86400u64, diff --git a/tests/slashing/griefing_resistance_test.rs b/tests/slashing/griefing_resistance_test.rs new file mode 100644 index 0000000..08126ac --- /dev/null +++ b/tests/slashing/griefing_resistance_test.rs @@ -0,0 +1,28 @@ +#[cfg(test)] +mod tests { + use sorosusu_contracts::slashing::mempool::{SlashingMempool, Evidence, OverflowError}; + + #[test] + fn test_minimal_evidence_flood_griefing_resistance() { + let mut mempool = SlashingMempool::new(); + let victim_validator = 101; + + // 1. Submit the first evidence entry - must be accepted + let first_evidence = Evidence { validator_index: victim_validator, data: vec![] }; + assert!(mempool.push_evidence(first_evidence).is_ok(), "First evidence should be accepted"); + + // 2. Submit 99 additional duplicate/minimal evidence entries + for _ in 0..99 { + let redundant_evidence = Evidence { validator_index: victim_validator, data: vec![] }; + let result = mempool.push_evidence(redundant_evidence); + + // Assert they are all rejected with OverflowError + assert_eq!(result, Err(OverflowError::RateLimitReached)); + } + + // 3. Drain and assert only 1 evidence was actually processed into the mempool + let processed = mempool.drain_all(); + assert_eq!(processed.len(), 1, "Mempool should only contain 1 evidence entry"); + assert_eq!(processed[0].validator_index, victim_validator); + } +}