diff --git a/Cargo.toml b/Cargo.toml index 51ee2297..a00898e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,6 +17,7 @@ members = [ "cli", "scenarios", "integration_tests", + "emergency_killswitch", ] default-members = [ "remittance_split", diff --git a/bill_payments/tests/stress_test_large_amounts.rs b/bill_payments/tests/stress_test_large_amounts.rs deleted file mode 100644 index 0c9697fb..00000000 --- a/bill_payments/tests/stress_test_large_amounts.rs +++ /dev/null @@ -1,393 +0,0 @@ -#![cfg(test)] - -//! Stress tests for arithmetic operations with very large i128 values -//! -//! These tests verify that the bill_payments contract handles extreme values correctly: -//! - Values near i128::MAX/2 to avoid overflow in additions -//! - Proper error handling for overflow conditions -//! - No unexpected panics or wrap-around behavior -//! -//! ## Documented Limitations -//! - Maximum safe bill amount: i128::MAX/2 (to allow for safe addition operations) -//! - get_total_unpaid uses checked_add internally via += operator -//! - No explicit caps are imposed by the contract, but overflow will panic - -use bill_payments::{BillPayments, BillPaymentsClient}; -use soroban_sdk::testutils::{Address as AddressTrait, Ledger, LedgerInfo}; -use soroban_sdk::{Env, String}; - -fn set_time(env: &Env, timestamp: u64) { - let proto = env.ledger().protocol_version(); - env.ledger().set(LedgerInfo { - protocol_version: proto, - sequence_number: 1, - timestamp, - network_id: [0; 32], - base_reserve: 10, - min_temp_entry_ttl: 1, - min_persistent_entry_ttl: 1, - max_entry_ttl: 100000, - }); -} - -#[test] -fn test_create_bill_near_max_i128() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Test with i128::MAX / 2 - a very large but safe value - let large_amount = i128::MAX / 2; - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Large Bill"), - &large_amount, - &1000000, - &false, - &0, - ); - - let bill = client.get_bill(&bill_id).unwrap(); - assert_eq!(bill.amount, large_amount); - assert!(!bill.paid); -} - -#[test] -fn test_pay_bill_with_large_amount() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_amount = i128::MAX / 2; - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Large Bill"), - &large_amount, - &1000000, - &false, - &0, - ); - - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - let bill = client.get_bill(&bill_id).unwrap(); - assert!(bill.paid); - assert_eq!(bill.amount, large_amount); -} - -#[test] -fn test_recurring_bill_with_large_amount() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_amount = i128::MAX / 2; - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Large Recurring"), - &large_amount, - &1000000, - &true, - &30, - ); - - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Verify original bill is paid - let bill = client.get_bill(&bill_id).unwrap(); - assert!(bill.paid); - assert_eq!(bill.amount, large_amount); - - // Verify next recurring bill was created with same amount - let bill2 = client.get_bill(&2).unwrap(); - assert!(!bill2.paid); - assert_eq!(bill2.amount, large_amount); -} - -#[test] -fn test_get_total_unpaid_with_two_large_bills() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Create two bills, each at i128::MAX / 4 to safely add them - let amount = i128::MAX / 4; - - client.create_bill( - &owner, - &String::from_str(&env, "Bill1"), - &amount, - &1000000, - &false, - &0, - ); - - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill2"), - &amount, - &1000000, - &false, - &0, - ); - - let total = client.get_total_unpaid(&owner); - assert_eq!(total, amount + amount); -} - -#[test] -#[should_panic(expected = "overflow")] -fn test_get_total_unpaid_overflow_panics() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Create two bills that will overflow when added - let amount = i128::MAX / 2 + 1000; - - client.create_bill( - &owner, - &String::from_str(&env, "Bill1"), - &amount, - &1000000, - &false, - &0, - ); - - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill2"), - &amount, - &1000000, - &false, - &0, - ); - - // This should panic due to overflow - client.get_total_unpaid(&owner); -} - -#[test] -fn test_multiple_large_bills_different_owners() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner1 = ::generate(&env); - let owner2 = ::generate(&env); - - env.mock_all_auths(); - - let large_amount = i128::MAX / 2; - - // Each owner can have large bills independently - client.create_bill( - &owner1, - &String::from_str(&env, "Owner1 Bill"), - &large_amount, - &1000000, - &false, - &0, - ); - - env.mock_all_auths(); - client.create_bill( - &owner2, - &String::from_str(&env, "Owner2 Bill"), - &large_amount, - &1000000, - &false, - &0, - ); - - let total1 = client.get_total_unpaid(&owner1); - let total2 = client.get_total_unpaid(&owner2); - - assert_eq!(total1, large_amount); - assert_eq!(total2, large_amount); -} - -#[test] -fn test_archive_large_amount_bill() { - let env = Env::default(); - set_time(&env, 1000000); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_amount = i128::MAX / 2; - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Large Bill"), - &large_amount, - &1000000, - &false, - &0, - ); - - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - env.mock_all_auths(); - client.archive_paid_bills(&owner); - - let archived = client.get_archived_bill(&bill_id).unwrap(); - assert_eq!(archived.amount, large_amount); -} - -#[test] -fn test_batch_pay_large_bills() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let amount = i128::MAX / 10; // Safe for multiple bills - - let mut bill_ids = soroban_sdk::Vec::new(&env); - - for i in 0..5 { - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, &format!("Bill{}", i)), - &amount, - &1000000, - &false, - &0, - ); - bill_ids.push_back(bill_id); - env.mock_all_auths(); - } - - env.mock_all_auths(); - let paid_count = client.batch_pay_bills(&owner, &bill_ids); - - assert_eq!(paid_count, 5); - - // Verify all bills are paid - for bill_id in bill_ids.iter() { - let bill = client.get_bill(&bill_id).unwrap(); - assert!(bill.paid); - assert_eq!(bill.amount, amount); - } -} - -#[test] -fn test_overdue_bills_with_large_amounts() { - let env = Env::default(); - set_time(&env, 2_000_000); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_amount = i128::MAX / 2; - - client.create_bill( - &owner, - &String::from_str(&env, "Overdue Large"), - &large_amount, - &1000000, // Past due - &false, - &0, - ); - - let page = client.get_overdue_bills(&0, &10); - assert_eq!(page.count, 1); - assert_eq!(page.items.get(0).unwrap().amount, large_amount); -} - -#[test] -fn test_edge_case_i128_max_minus_one() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Test with i128::MAX - 1 - let edge_amount = i128::MAX - 1; - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Edge Case"), - &edge_amount, - &1000000, - &false, - &0, - ); - - let bill = client.get_bill(&bill_id).unwrap(); - assert_eq!(bill.amount, edge_amount); -} - -#[test] -fn test_pagination_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_amount = i128::MAX / 100; - - // Create multiple bills with large amounts - for i in 0..15 { - client.create_bill( - &owner, - &String::from_str(&env, &format!("Bill{}", i)), - &large_amount, - &1000000, - &false, - &0, - ); - env.mock_all_auths(); - } - - // Test pagination - let page1 = client.get_unpaid_bills(&owner, &0, &10); - assert_eq!(page1.count, 10); - assert!(page1.next_cursor > 0); - - let page2 = client.get_unpaid_bills(&owner, &page1.next_cursor, &10); - assert_eq!(page2.count, 5); - - // Verify all amounts are correct - for bill in page1.items.iter() { - assert_eq!(bill.amount, large_amount); - } - for bill in page2.items.iter() { - assert_eq!(bill.amount, large_amount); - } -} diff --git a/emergency_killswitch/Cargo.toml b/emergency_killswitch/Cargo.toml new file mode 100644 index 00000000..ab7f219e --- /dev/null +++ b/emergency_killswitch/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "emergency_killswitch" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] + +[dependencies] +soroban-sdk = "21.0.0" + +[dev-dependencies] +soroban-sdk = { version = "21.0.0", features = ["testutils"] } diff --git a/emergency_killswitch/src/lib.rs b/emergency_killswitch/src/lib.rs new file mode 100644 index 00000000..08a35b6b --- /dev/null +++ b/emergency_killswitch/src/lib.rs @@ -0,0 +1,197 @@ +#![no_std] + +use soroban_sdk::{contract, contracterror, contractimpl, symbol_short, Address, Env, Symbol}; + +// --------------------------------------------------------------------------- +// Storage Keyss +// --------------------------------------------------------------------------- + +const KEY_ADMIN: Symbol = symbol_short!("ADMIN"); +const KEY_PAUSED: Symbol = symbol_short!("PAUSED"); +const KEY_UNP_AT: Symbol = symbol_short!("UNP_AT"); + +// --------------------------------------------------------------------------- +// Error codes +// --------------------------------------------------------------------------- + +#[contracterror] +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] +#[repr(u32)] +pub enum Error { + /// `initialize` was never called. + NotInitialized = 1, + /// `initialize` has already been called. + AlreadyInitialized = 2, + /// Caller is not the current admin. + Unauthorized = 3, + /// The contract (or target function) is paused. + ContractPaused = 4, + InvalidSchedule = 5, +} + +// --------------------------------------------------------------------------- +// Events +// --------------------------------------------------------------------------- + +/// Thin helper – keeps event topic construction in one place. +fn emit(env: &Env, action: Symbol) { + env.events() + .publish((symbol_short!("killswtch"), action), ()); +} + +// --------------------------------------------------------------------------- +// Contract +// --------------------------------------------------------------------------- + +#[contract] +pub struct EmergencyKillswitch; + +#[contractimpl] +impl EmergencyKillswitch { + // ----------------------------------------------------------------------- + // Initialization + // ----------------------------------------------------------------------- + + /// One-shot setup. Stores `admin` and leaves the contract unpaused. + /// Fails with `AlreadyInitialized` if called a second time. + pub fn initialize(env: Env, admin: Address) -> Result<(), Error> { + if env + .storage() + .instance() + .get::<_, Address>(&KEY_ADMIN) + .is_some() + { + return Err(Error::AlreadyInitialized); + } + env.storage().instance().set(&KEY_ADMIN, &admin); + env.storage().instance().set(&KEY_PAUSED, &false); + Ok(()) + } + + // ----------------------------------------------------------------------- + // Internal helpers + // ----------------------------------------------------------------------- + + fn admin(env: &Env) -> Result { + env.storage() + .instance() + .get(&KEY_ADMIN) + .ok_or(Error::NotInitialized) + } + + fn check_admin(env: &Env, caller: &Address) -> Result<(), Error> { + let admin = Self::admin(env)?; + if admin != *caller { + return Err(Error::Unauthorized); + } + Ok(()) + } + + fn assert_not_paused(env: &Env) -> Result<(), Error> { + let paused: bool = env.storage().instance().get(&KEY_PAUSED).unwrap_or(false); + if paused { + Err(Error::ContractPaused) + } else { + Ok(()) + } + } + + // ----------------------------------------------------------------------- + // Pause controls + // ----------------------------------------------------------------------- + + /// Pause the contract. Only the admin may call this. + /// Emits a `"paused"` event. + pub fn pause(env: Env, caller: Address) -> Result<(), Error> { + caller.require_auth(); + Self::check_admin(&env, &caller)?; + env.storage().instance().set(&KEY_PAUSED, &true); + emit(&env, symbol_short!("paused")); + Ok(()) + } + + /// Unpause the contract. Only the admin may call this. + /// If a scheduled-unpause timestamp has been set, the current ledger time + /// must be ≥ that timestamp, otherwise returns `ContractPaused`. + /// Emits an `"unpaused"` event. + pub fn unpause(env: Env, caller: Address) -> Result<(), Error> { + caller.require_auth(); + Self::check_admin(&env, &caller)?; + + // Honour any scheduled delay. + let unp_at: Option = env.storage().instance().get(&KEY_UNP_AT); + if let Some(at) = unp_at { + if env.ledger().timestamp() < at { + return Err(Error::ContractPaused); + } + env.storage().instance().remove(&KEY_UNP_AT); + } + + env.storage().instance().set(&KEY_PAUSED, &false); + emit(&env, symbol_short!("unpaused")); + Ok(()) + } + + /// Set a future timestamp before which `unpause` will be rejected. + /// This gives operators a mandatory cooling-off period after an incident. + pub fn schedule_unpause(env: Env, caller: Address, at_timestamp: u64) -> Result<(), Error> { + caller.require_auth(); + Self::check_admin(&env, &caller)?; + + if at_timestamp <= env.ledger().timestamp() { + return Err(Error::InvalidSchedule); + } + env.storage().instance().set(&KEY_UNP_AT, &at_timestamp); + Ok(()) + } + + /// Transfer admin rights to `new_admin`. Only the current admin may call + /// this. The new admin takes effect immediately. + pub fn transfer_admin(env: Env, caller: Address, new_admin: Address) -> Result<(), Error> { + caller.require_auth(); + Self::check_admin(&env, &caller)?; + env.storage().instance().set(&KEY_ADMIN, &new_admin); + emit(&env, symbol_short!("adm_xfr")); + Ok(()) + } + + // ----------------------------------------------------------------------- + // Representative guarded operations + // (demonstrate the pause-check pattern; no real token movement) + // ----------------------------------------------------------------------- + + /// Simulated mutating transfer — blocked while paused. + pub fn do_transfer(env: Env, caller: Address, _amount: i128) -> Result<(), Error> { + caller.require_auth(); + Self::assert_not_paused(&env)?; + // Real implementation would move tokens here. + Ok(()) + } + + /// Simulated mint — blocked while paused. + pub fn do_mint(env: Env, caller: Address, _amount: i128) -> Result<(), Error> { + caller.require_auth(); + Self::assert_not_paused(&env)?; + // Real implementation would mint tokens here. + Ok(()) + } + + // ----------------------------------------------------------------------- + // Read-only queries (always available, even while paused) + // ----------------------------------------------------------------------- + + /// Returns `true` when the contract is globally paused. + pub fn is_paused(env: Env) -> bool { + env.storage().instance().get(&KEY_PAUSED).unwrap_or(false) + } + + /// Returns the current admin address, or `None` if not yet initialized. + pub fn get_admin(env: Env) -> Option
{ + env.storage().instance().get(&KEY_ADMIN) + } + + /// Returns the scheduled-unpause timestamp, if one has been set. + pub fn get_scheduled_unpause(env: Env) -> Option { + env.storage().instance().get(&KEY_UNP_AT) + } +} diff --git a/emergency_killswitch/test_snapshots/test_emergency_pause_emits_event.1.json b/emergency_killswitch/test_snapshots/test_emergency_pause_emits_event.1.json new file mode 100644 index 00000000..d035822b --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_emergency_pause_emits_event.1.json @@ -0,0 +1,260 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_non_admin_cannot_pause.1.json b/emergency_killswitch/test_snapshots/test_non_admin_cannot_pause.1.json new file mode 100644 index 00000000..641d2557 --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_non_admin_cannot_pause.1.json @@ -0,0 +1,256 @@ +{ + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "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": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": { + "error": { + "contract": 3 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 3 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 3 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "pause" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_non_admin_cannot_unpause.1.json b/emergency_killswitch/test_snapshots/test_non_admin_cannot_unpause.1.json new file mode 100644 index 00000000..0e8c64bd --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_non_admin_cannot_unpause.1.json @@ -0,0 +1,376 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unpause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unpause" + } + ], + "data": { + "error": { + "contract": 3 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 3 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 3 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "unpause" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_pause_blocks_mint.1.json b/emergency_killswitch/test_snapshots/test_pause_blocks_mint.1.json new file mode 100644 index 00000000..82fbe886 --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_pause_blocks_mint.1.json @@ -0,0 +1,392 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "do_mint" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "do_mint" + } + ], + "data": { + "error": { + "contract": 4 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 4 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 4 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "do_mint" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_pause_blocks_transfer.1.json b/emergency_killswitch/test_snapshots/test_pause_blocks_transfer.1.json new file mode 100644 index 00000000..e0e21b76 --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_pause_blocks_transfer.1.json @@ -0,0 +1,440 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "is_paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "is_paused" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "do_transfer" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 500 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "do_transfer" + } + ], + "data": { + "error": { + "contract": 4 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 4 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 4 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "do_transfer" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 500 + } + } + ] + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_read_only_works_while_paused.1.json b/emergency_killswitch/test_snapshots/test_read_only_works_while_paused.1.json new file mode 100644 index 00000000..97c7ca77 --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_read_only_works_while_paused.1.json @@ -0,0 +1,402 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": true + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "is_paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "is_paused" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_admin" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_admin" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_scheduled_unpause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_scheduled_unpause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_schedule_unpause_enforced.1.json b/emergency_killswitch/test_snapshots/test_schedule_unpause_enforced.1.json new file mode 100644 index 00000000..3e50317d --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_schedule_unpause_enforced.1.json @@ -0,0 +1,653 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "schedule_unpause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 3600 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "unpause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 3601, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "schedule_unpause" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 3600 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "schedule_unpause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unpause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unpause" + } + ], + "data": { + "error": { + "contract": 4 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 4 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 4 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "unpause" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unpause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "unpaused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unpause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "is_paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "is_paused" + } + ], + "data": { + "bool": false + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_transfer_admin.1.json b/emergency_killswitch/test_snapshots/test_transfer_admin.1.json new file mode 100644 index 00000000..588ebf5e --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_transfer_admin.1.json @@ -0,0 +1,674 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "transfer_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "unpause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "transfer_admin" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "adm_xfr" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "transfer_admin" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "is_paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "is_paused" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unpause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "unpaused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unpause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": { + "error": { + "contract": 3 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 3 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 3 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "pause" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/test_snapshots/test_unpause_restores_operations.1.json b/emergency_killswitch/test_snapshots/test_unpause_restores_operations.1.json new file mode 100644 index 00000000..643d8a8c --- /dev/null +++ b/emergency_killswitch/test_snapshots/test_unpause_restores_operations.1.json @@ -0,0 +1,658 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "pause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "unpause", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "do_transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 100 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "do_mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 200 + } + } + ] + } + }, + "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": { + "symbol": "ADMIN" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "PAUSED" + }, + "val": { + "bool": false + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "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": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "pause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "pause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unpause" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "killswtch" + }, + { + "symbol": "unpaused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unpause" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "is_paused" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "is_paused" + } + ], + "data": { + "bool": false + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "do_transfer" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 100 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "do_transfer" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "do_mint" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "i128": { + "hi": 0, + "lo": 200 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "do_mint" + } + ], + "data": "void" + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/emergency_killswitch/tests/test_killswitch.rs b/emergency_killswitch/tests/test_killswitch.rs new file mode 100644 index 00000000..3f81982c --- /dev/null +++ b/emergency_killswitch/tests/test_killswitch.rs @@ -0,0 +1,215 @@ +#![cfg(test)] + +use emergency_killswitch::{EmergencyKillswitch, EmergencyKillswitchClient}; +use soroban_sdk::{ + testutils::{Address as _, Events, Ledger}, + Address, Env, Symbol, TryFromVal, +}; + +/// Shared setup: register contract, mint admin, initialize, return (env, client, admin). +fn setup() -> (Env, EmergencyKillswitchClient<'static>, Address) { + let env = Env::default(); + env.mock_all_auths(); + + let contract_id = env.register_contract(None, EmergencyKillswitch); + let client = EmergencyKillswitchClient::new(&env, &contract_id); + + let admin = Address::generate(&env); + client.initialize(&admin); + + (env, client, admin) +} + +// --------------------------------------------------------------------------- +// 1. Mutating functions fail while paused — do_transfer +// --------------------------------------------------------------------------- +#[test] +fn test_pause_blocks_transfer() { + let (_, client, admin) = setup(); + + client.pause(&admin); + assert!(client.is_paused(), "contract should be paused"); + + let user = Address::generate(&client.env); + let result = client.try_do_transfer(&user, &500); + assert_eq!( + result, + Err(Ok(emergency_killswitch::Error::ContractPaused)), + "do_transfer must fail while paused" + ); +} + +// --------------------------------------------------------------------------- +// 2. Mutating functions fail while paused — do_mint +// --------------------------------------------------------------------------- +#[test] +fn test_pause_blocks_mint() { + let (_, client, admin) = setup(); + + client.pause(&admin); + + let minter = Address::generate(&client.env); + let result = client.try_do_mint(&minter, &1000); + assert_eq!( + result, + Err(Ok(emergency_killswitch::Error::ContractPaused)), + "do_mint must fail while paused" + ); +} + +// --------------------------------------------------------------------------- +// 3. Read-only functions still work while paused +// --------------------------------------------------------------------------- +#[test] +fn test_read_only_works_while_paused() { + let (_, client, admin) = setup(); + + client.pause(&admin); + + // is_paused returns the correct value + assert!(client.is_paused(), "is_paused should return true"); + + // get_admin resolves successfully + let stored_admin = client.get_admin(); + assert_eq!( + stored_admin, + Some(admin.clone()), + "get_admin must return the admin even while paused" + ); + + // get_scheduled_unpause doesn't panic when no schedule is set + assert!( + client.get_scheduled_unpause().is_none(), + "no schedule should be set" + ); +} + +// --------------------------------------------------------------------------- +// 4. Unpause restores mutating operations +// --------------------------------------------------------------------------- +#[test] +fn test_unpause_restores_operations() { + let (_, client, admin) = setup(); + + client.pause(&admin); + client.unpause(&admin); + + assert!(!client.is_paused(), "contract should be unpaused"); + + let user = Address::generate(&client.env); + // should not panic / return error + client.do_transfer(&user, &100); + client.do_mint(&user, &200); +} + +// --------------------------------------------------------------------------- +// 5. Non-admin cannot pause +// --------------------------------------------------------------------------- +#[test] +fn test_non_admin_cannot_pause() { + let (env, client, _admin) = setup(); + env.mock_all_auths(); // already set by setup, kept explicit for clarity + + let rando = Address::generate(&env); + let result = client.try_pause(&rando); + assert_eq!( + result, + Err(Ok(emergency_killswitch::Error::Unauthorized)), + "non-admin pause must be rejected" + ); +} + +// --------------------------------------------------------------------------- +// 6. Non-admin cannot unpause +// --------------------------------------------------------------------------- +#[test] +fn test_non_admin_cannot_unpause() { + let (env, client, admin) = setup(); + + client.pause(&admin); + + let rando = Address::generate(&env); + let result = client.try_unpause(&rando); + assert_eq!( + result, + Err(Ok(emergency_killswitch::Error::Unauthorized)), + "non-admin unpause must be rejected" + ); +} + +// --------------------------------------------------------------------------- +// 7. Scheduled-unpause timestamp is enforced +// --------------------------------------------------------------------------- +#[test] +fn test_schedule_unpause_enforced() { + let (env, client, admin) = setup(); + + client.pause(&admin); + + // Set an unpause schedule 1 hour in the future. + let now = env.ledger().timestamp(); + let future = now + 3600; + client.schedule_unpause(&admin, &future); + + // Unpause attempt before the scheduled time must fail. + let result = client.try_unpause(&admin); + assert_eq!( + result, + Err(Ok(emergency_killswitch::Error::ContractPaused)), + "unpause before scheduled time must be rejected" + ); + + // Advance ledger past the scheduled time and retry. + env.ledger().set_timestamp(future + 1); + client.unpause(&admin); // must succeed + assert!(!client.is_paused()); +} + +// --------------------------------------------------------------------------- +// 8. Admin transfer — new admin can pause; old admin cannot +// --------------------------------------------------------------------------- +#[test] +fn test_transfer_admin() { + let (env, client, old_admin) = setup(); + + let new_admin = Address::generate(&env); + client.transfer_admin(&old_admin, &new_admin); + + // New admin can pause. + client.pause(&new_admin); + assert!(client.is_paused()); + + // Old admin can no longer pause after transferring rights. + client.unpause(&new_admin); + let result = client.try_pause(&old_admin); + assert_eq!( + result, + Err(Ok(emergency_killswitch::Error::Unauthorized)), + "old admin must be rejected after transfer" + ); +} + +// --------------------------------------------------------------------------- +// 9. Emergency pause emits an event +// --------------------------------------------------------------------------- +#[test] +fn test_emergency_pause_emits_event() { + let (env, client, admin) = setup(); + + client.pause(&admin); + + let events = env.events().all(); + assert!(!events.is_empty(), "at least one event should be emitted"); + + // Find the "paused" event (last event emitted). + let last = events.last().unwrap(); + let topics = &last.1; + + // Topic[0] = "killswitch", Topic[1] = "paused" + let ns: Symbol = Symbol::try_from_val(&env, &topics.get(0).unwrap()).unwrap(); + let action: Symbol = Symbol::try_from_val(&env, &topics.get(1).unwrap()).unwrap(); + + use soroban_sdk::symbol_short; + assert_eq!(ns, symbol_short!("killswtch")); + assert_eq!(action, symbol_short!("paused")); +} diff --git a/remittance_split/tests/fuzz_tests.rs b/remittance_split/tests/fuzz_tests.rs deleted file mode 100644 index 052f3e09..00000000 --- a/remittance_split/tests/fuzz_tests.rs +++ /dev/null @@ -1,351 +0,0 @@ -#![cfg(test)] - -//! Fuzz/Property-based tests for numeric operations in remittance_split -//! -//! Note: Due to Soroban SDK's no_std environment and custom types, we use a simpler -//! fuzzing approach with handwritten test cases covering edge cases rather than -//! full proptest integration. This is documented per issue #109 requirements. -//! -//! These tests verify critical numeric invariants: -//! - Overflow protection -//! - Rounding behavior -//! - Sum preservation (split amounts always equal total) -//! - Edge cases with extreme values - -use remittance_split::{RemittanceSplit, RemittanceSplitClient}; -use soroban_sdk::{testutils::Address as _, Address, Env}; - -/// Test that calculate_split preserves sum across many random inputs -#[test] -fn fuzz_calculate_split_sum_preservation() { - // Test various amounts and percentage combinations - let test_cases = vec![ - // (amount, spending%, savings%, bills%, insurance%) - (1000, 50, 30, 15, 5), - (1, 25, 25, 25, 25), - (999, 33, 33, 33, 1), - (i128::MAX / 100, 25, 25, 25, 25), - (12345678, 17, 19, 23, 41), // Primes - (100, 1, 1, 1, 97), - (999999, 10, 20, 30, 40), - (7, 40, 30, 20, 10), - (543210, 70, 10, 10, 10), - (1000000, 0, 0, 0, 100), - ]; - - for (total_amount, spending_pct, savings_pct, bills_pct, insurance_pct) in test_cases { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - // Initialize split - let result = client.try_initialize_split( - &owner, - &0, - &spending_pct, - &savings_pct, - &bills_pct, - &insurance_pct, - ); - - if result.is_err() { - continue; - } - - // Calculate split - let result = client.try_calculate_split(&total_amount); - - if result.is_err() { - continue; // Skip if calculation fails - } - - let amounts = client.calculate_split(&total_amount); - - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); - let insurance = amounts.get(3).unwrap(); - - // Critical invariant: sum must equal total - let sum = spending + savings + bills + insurance; - assert_eq!( - sum, - total_amount, - "Sum mismatch: {} + {} + {} + {} = {} != {} (percentages: {}%, {}%, {}%, {}%)", - spending, - savings, - bills, - insurance, - sum, - total_amount, - spending_pct, - savings_pct, - bills_pct, - insurance_pct - ); - - // All amounts should be non-negative - assert!(spending >= 0, "Spending is negative: {}", spending); - assert!(savings >= 0, "Savings is negative: {}", savings); - assert!(bills >= 0, "Bills is negative: {}", bills); - assert!(insurance >= 0, "Insurance is negative: {}", insurance); - } -} - -/// Test edge cases with small amounts -#[test] -fn fuzz_calculate_split_small_amounts() { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - client.initialize_split(&owner, &0, &25, &25, &25, &25); - - // Test amounts 1-100 - for amount in 1..=100 { - let amounts = client.calculate_split(&amount); - - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); - let insurance = amounts.get(3).unwrap(); - - // Verify sum - let sum = spending + savings + bills + insurance; - assert_eq!( - sum, amount, - "Sum mismatch for amount {}: {} != {}", - amount, sum, amount - ); - - // Verify no amount exceeds total - assert!( - spending <= amount, - "Spending {} exceeds total {}", - spending, - amount - ); - assert!( - savings <= amount, - "Savings {} exceeds total {}", - savings, - amount - ); - assert!(bills <= amount, "Bills {} exceeds total {}", bills, amount); - assert!( - insurance <= amount, - "Insurance {} exceeds total {}", - insurance, - amount - ); - } -} - -/// Test with prime percentages that cause rounding -#[test] -fn fuzz_rounding_behavior() { - let prime_percentages = vec![ - (3, 7, 11, 79), - (13, 17, 23, 47), - (19, 23, 29, 29), - (31, 37, 11, 21), - (41, 43, 7, 9), - ]; - - for (spending_pct, savings_pct, bills_pct, insurance_pct) in prime_percentages { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - client.initialize_split( - &owner, - &0, - &spending_pct, - &savings_pct, - &bills_pct, - &insurance_pct, - ); - - // Test various amounts - for amount in &[100, 1000, 9999, 123456] { - let amounts = client.calculate_split(amount); - - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); - let insurance = amounts.get(3).unwrap(); - - let sum = spending + savings + bills + insurance; - assert_eq!( - sum, - *amount, - "Rounding error: {} + {} + {} + {} = {} != {} (percentages: {}%, {}%, {}%, {}%)", - spending, - savings, - bills, - insurance, - sum, - amount, - spending_pct, - savings_pct, - bills_pct, - insurance_pct - ); - } - } -} - -/// Test that invalid amounts are rejected -#[test] -fn fuzz_invalid_amounts() { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Test invalid amounts - for amount in &[0, -1, -100, -1000, i128::MIN] { - let result = client.try_calculate_split(amount); - assert!(result.is_err(), "Expected error for amount {}", amount); - } -} - -/// Test that invalid percentage sums are rejected -#[test] -fn fuzz_invalid_percentages() { - let invalid_percentages = vec![ - (50, 50, 10, 0), // Sum = 110 - (25, 25, 25, 24), // Sum = 99 - (100, 0, 0, 1), // Sum = 101 - (0, 0, 0, 0), // Sum = 0 - (30, 30, 30, 30), // Sum = 120 - ]; - - for (spending_pct, savings_pct, bills_pct, insurance_pct) in invalid_percentages { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - let result = client.try_initialize_split( - &owner, - &0, - &spending_pct, - &savings_pct, - &bills_pct, - &insurance_pct, - ); - - let total = spending_pct + savings_pct + bills_pct + insurance_pct; - if total != 100 { - assert!( - result.is_err(), - "Expected error for percentages summing to {}", - total - ); - } - } -} - -/// Test overflow protection with large amounts -#[test] -fn fuzz_large_amounts() { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - client.initialize_split(&owner, &0, &25, &25, &25, &25); - - // Test large amounts that are safe - let large_amounts = vec![ - i128::MAX / 1000, - i128::MAX / 100, - 1_000_000_000_000i128, - 999_999_999_999i128, - ]; - - for amount in large_amounts { - let result = client.try_calculate_split(&amount); - - // Should either succeed with correct sum, or fail with overflow - if result.is_ok() { - let amounts = client.calculate_split(&amount); - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); - let insurance = amounts.get(3).unwrap(); - - let sum = spending + savings + bills + insurance; - assert_eq!( - sum, amount, - "Sum mismatch for large amount: {} != {}", - sum, amount - ); - } - // Else overflow is acceptable for very large amounts - } -} - -/// Test all valid single-category splits (100% to one category) -#[test] -fn fuzz_single_category_splits() { - let single_category_splits = vec![ - (100, 0, 0, 0), // All to spending - (0, 100, 0, 0), // All to savings - (0, 0, 100, 0), // All to bills - (0, 0, 0, 100), // All to insurance - ]; - - for (spending_pct, savings_pct, bills_pct, insurance_pct) in single_category_splits { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = Address::generate(&env); - - client.initialize_split( - &owner, - &0, - &spending_pct, - &savings_pct, - &bills_pct, - &insurance_pct, - ); - - let amounts = client.calculate_split(&1000); - - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); - let insurance = amounts.get(3).unwrap(); - - // One should be 1000, others should be 0 - assert_eq!(spending + savings + bills + insurance, 1000); - - if spending_pct == 100 { - assert_eq!(spending, 1000); - assert_eq!(savings + bills + insurance, 0); - } else if savings_pct == 100 { - assert_eq!(savings, 1000); - assert_eq!(spending + bills + insurance, 0); - } else if bills_pct == 100 { - assert_eq!(bills, 1000); - assert_eq!(spending + savings + insurance, 0); - } else if insurance_pct == 100 { - assert_eq!(insurance, 1000); - assert_eq!(spending + savings + bills, 0); - } - } -} diff --git a/remittance_split/tests/gas_bench.rs b/remittance_split/tests/gas_bench.rs deleted file mode 100644 index 99b90703..00000000 --- a/remittance_split/tests/gas_bench.rs +++ /dev/null @@ -1,76 +0,0 @@ -use remittance_split::{AccountGroup, RemittanceSplit, RemittanceSplitClient}; -use soroban_sdk::testutils::{Address as AddressTrait, EnvTestConfig, Ledger, LedgerInfo}; -use soroban_sdk::token::StellarAssetClient; -use soroban_sdk::{Address, Env}; - -fn bench_env() -> Env { - let env = Env::new_with_config(EnvTestConfig { - capture_snapshot_at_drop: false, - }); - env.mock_all_auths(); - let proto = env.ledger().protocol_version(); - env.ledger().set(LedgerInfo { - protocol_version: proto, - sequence_number: 1, - timestamp: 1_700_000_000, - network_id: [0; 32], - base_reserve: 10, - min_temp_entry_ttl: 1, - min_persistent_entry_ttl: 1, - max_entry_ttl: 100_000, - }); - let mut budget = env.budget(); - budget.reset_unlimited(); - env -} - -fn measure(env: &Env, f: F) -> (u64, u64, R) -where - F: FnOnce() -> R, -{ - let mut budget = env.budget(); - budget.reset_unlimited(); - budget.reset_tracker(); - let result = f(); - let cpu = budget.cpu_instruction_cost(); - let mem = budget.memory_bytes_cost(); - (cpu, mem, result) -} - -#[test] -fn bench_distribute_usdc_worst_case() { - let env = bench_env(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - - let admin =
::generate(&env); - let token_contract = env.register_stellar_asset_contract_v2(admin.clone()); - - let payer =
::generate(&env); - let amount = 10_000i128; - StellarAssetClient::new(&env, &token_contract.address()).mint(&payer, &amount); - - let accounts = AccountGroup { - spending:
::generate(&env), - savings:
::generate(&env), - bills:
::generate(&env), - insurance:
::generate(&env), - }; - - let _nonce = 0u64; - let (cpu, mem, distributed) = measure(&env, || { - client.distribute_usdc( - &token_contract.address(), - &payer, - &_nonce, - &accounts, - &amount, - ) - }); - assert!(distributed); - - println!( - r#"{{"contract":"remittance_split","method":"distribute_usdc","scenario":"4_recipients_all_nonzero","cpu":{},"mem":{}}}"#, - cpu, mem - ); -} diff --git a/remittance_split/tests/stress_test_large_amounts.rs b/remittance_split/tests/stress_test_large_amounts.rs deleted file mode 100644 index b9fc58f9..00000000 --- a/remittance_split/tests/stress_test_large_amounts.rs +++ /dev/null @@ -1,317 +0,0 @@ -#![cfg(test)] - -//! Stress tests for arithmetic operations with very large i128 values in remittance_split -//! -//! These tests verify that the remittance_split contract handles extreme values correctly: -//! - Values near i128::MAX/2 to test multiplication and division operations -//! - Proper overflow detection using checked arithmetic -//! - No unexpected panics or wrap-around behavior -//! -//! ## Documented Limitations -//! - calculate_split uses checked_mul and checked_div to prevent overflow -//! - Maximum safe amount depends on split percentages (multiplication can overflow) -//! - Overflow returns RemittanceSplitError::Overflow rather than panicking -//! - For 100% total split, max safe value is approximately i128::MAX / 100 - -use remittance_split::{RemittanceSplit, RemittanceSplitClient, RemittanceSplitError}; -use soroban_sdk::testutils::Address as AddressTrait; -use soroban_sdk::{Env, String}; - -#[test] -fn test_calculate_split_with_large_amount() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Initialize with standard split: 50% spending, 30% savings, 15% bills, 5% insurance - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Test with i128::MAX / 200 to ensure multiplication by percentages doesn't overflow - let large_amount = i128::MAX / 200; - - let result = client.calculate_split(&large_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - assert_eq!(amounts.len(), 4); - - // Verify the split adds up correctly - let total: i128 = amounts.iter().sum(); - assert_eq!(total, large_amount); -} - -#[test] -fn test_calculate_split_near_max_safe_value() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Maximum safe value for multiplication by 100 (largest percentage) - let max_safe = i128::MAX / 100 - 1; - - let result = client.calculate_split(&max_safe); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - let total: i128 = amounts.iter().sum(); - - // Total should equal input (within rounding) - assert!((total - max_safe).abs() < 4); // Allow small rounding difference -} - -#[test] -fn test_calculate_split_overflow_detection() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Value that will overflow when multiplied by percentage - let overflow_amount = i128::MAX / 50; // Will overflow when multiplied by 50 - - let result = client.try_calculate_split(&overflow_amount); - - // Should return Overflow error, not panic - assert_eq!(result, Err(Ok(RemittanceSplitError::Overflow))); -} - -#[test] -fn test_calculate_split_with_minimal_percentages() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Use minimal percentages to allow larger amounts - client.initialize_split(&owner, &0, &1, &1, &1, &97); - - // With 1% multiplier, we can handle much larger values - let large_amount = i128::MAX / 150; - - let result = client.calculate_split(&large_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - let total: i128 = amounts.iter().sum(); - assert_eq!(total, large_amount); -} - -#[test] -fn test_get_split_allocations_with_large_amount() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - let large_amount = i128::MAX / 200; - - let result = client.get_split_allocations(&large_amount); - assert!(result.is_ok()); - - let allocations = result.unwrap(); - assert_eq!(allocations.len(), 4); - - // Verify each allocation has correct category and reasonable amount - let total: i128 = allocations.iter().map(|a| a.amount).sum(); - assert_eq!(total, large_amount); -} - -#[test] -fn test_multiple_splits_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - let large_amount = i128::MAX / 300; - - // Perform multiple splits to ensure no state corruption - for _ in 0..5 { - let result = client.calculate_split(&large_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - let total: i128 = amounts.iter().sum(); - assert_eq!(total, large_amount); - } -} - -#[test] -fn test_edge_case_i128_max_divided_by_100() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Exact edge case: i128::MAX / 100 - let edge_amount = i128::MAX / 100; - - let result = client.calculate_split(&edge_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - assert_eq!(amounts.len(), 4); -} - -#[test] -fn test_split_with_100_percent_to_one_category() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // 100% to spending, 0% to others - client.initialize_split(&owner, &0, &100, &0, &0, &0); - - let large_amount = i128::MAX / 150; - - let result = client.calculate_split(&large_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - // First amount should be the full amount - assert_eq!(amounts.get(0).unwrap(), large_amount); - // Others should be 0 - assert_eq!(amounts.get(1).unwrap(), 0); - assert_eq!(amounts.get(2).unwrap(), 0); - assert_eq!(amounts.get(3).unwrap(), 0); -} - -#[test] -fn test_rounding_behavior_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Use percentages that don't divide evenly - client.initialize_split(&owner, &0, &33, &33, &33, &1); - - let large_amount = i128::MAX / 200; - - let result = client.calculate_split(&large_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - let total: i128 = amounts.iter().sum(); - - // Due to rounding, total should equal input - assert_eq!(total, large_amount); -} - -#[test] -fn test_sequential_large_calculations() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Test with progressively larger amounts - let amounts_to_test = vec![ - i128::MAX / 1000, - i128::MAX / 500, - i128::MAX / 200, - i128::MAX / 150, - i128::MAX / 100, - ]; - - for amount in amounts_to_test { - let result = client.calculate_split(&amount); - assert!(result.is_ok(), "Failed for amount: {}", amount); - - let splits = result.unwrap(); - let total: i128 = splits.iter().sum(); - assert_eq!(total, amount); - } -} - -#[test] -fn test_checked_arithmetic_prevents_silent_overflow() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - // Test values that would overflow with unchecked arithmetic - let dangerous_amounts = vec![ - i128::MAX / 40, // Will overflow when multiplied by 50 - i128::MAX / 30, // Will overflow when multiplied by 50 - i128::MAX, // Will definitely overflow - ]; - - for amount in dangerous_amounts { - let result = client.try_calculate_split(&amount); - // Should return error, not panic or wrap around - assert!( - result.is_err(), - "Should have detected overflow for amount: {}", - amount - ); - } -} - -#[test] -fn test_insurance_remainder_calculation_with_large_values() { - let env = Env::default(); - let contract_id = env.register_contract(None, RemittanceSplit); - let client = RemittanceSplitClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Insurance gets the remainder after other allocations - client.initialize_split(&owner, &0, &40, &30, &20, &10); - - let large_amount = i128::MAX / 200; - - let result = client.calculate_split(&large_amount); - assert!(result.is_ok()); - - let amounts = result.unwrap(); - - // Verify insurance (last element) is calculated correctly as remainder - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); - let insurance = amounts.get(3).unwrap(); - - assert_eq!(spending + savings + bills + insurance, large_amount); -} diff --git a/savings_goals/test_snapshots/test_add_to_goal_multiple_large_contributions.1.json b/savings_goals/test_snapshots/test_add_to_goal_multiple_large_contributions.1.json new file mode 100644 index 00000000..c646c5e6 --- /dev/null +++ b/savings_goals/test_snapshots/test_add_to_goal_multiple_large_contributions.1.json @@ -0,0 +1,1210 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 2767011611056432742, + "lo": 7378697629483820644 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 1844674407370955161, + "lo": 11068046444225730968 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 1844674407370955161, + "lo": 11068046444225730968 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 2767011611056432742, + "lo": 7378697629483820644 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 2767011611056432742, + "lo": 7378697629483820644 + } + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_add_to_goal_overflow_panics.1.json b/savings_goals/test_snapshots/test_add_to_goal_overflow_panics.1.json new file mode 100644 index 00000000..2dba5c22 --- /dev/null +++ b/savings_goals/test_snapshots/test_add_to_goal_overflow_panics.1.json @@ -0,0 +1,851 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Overflow Goal" + }, + { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Overflow Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Overflow Goal" + }, + { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Overflow Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "error": { + "contract": 2 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 2 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 2 + } + } + ], + "data": { + "vec": [ + { + "string": "contract call failed" + }, + { + "symbol": "add_to_goal" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + ] + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 2 + } + } + ], + "data": { + "string": "escalating error to panic" + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_add_to_goal_with_large_amount.1.json b/savings_goals/test_snapshots/test_add_to_goal_with_large_amount.1.json new file mode 100644 index 00000000..89815559 --- /dev/null +++ b/savings_goals/test_snapshots/test_add_to_goal_with_large_amount.1.json @@ -0,0 +1,807 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_batch_add_with_large_amounts.1.json b/savings_goals/test_snapshots/test_batch_add_with_large_amounts.1.json new file mode 100644 index 00000000..2796c436 --- /dev/null +++ b/savings_goals/test_snapshots/test_batch_add_with_large_amounts.1.json @@ -0,0 +1,1967 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "batch_add_to_goals", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + } + ] + } + ] + } + ] + } + }, + "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": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + }, + { + "u32": 2 + }, + { + "u32": 3 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "batch_add_to_goals" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + } + ] + } + ] + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "symbol": "batch_add" + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "batch_add_to_goals" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_create_goal_near_max_i128.1.json b/savings_goals/test_snapshots/test_create_goal_near_max_i128.1.json new file mode 100644 index 00000000..794246a4 --- /dev/null +++ b/savings_goals/test_snapshots/test_create_goal_near_max_i128.1.json @@ -0,0 +1,537 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "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": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_edge_case_i128_max_minus_one.1.json b/savings_goals/test_snapshots/test_edge_case_i128_max_minus_one.1.json new file mode 100644 index 00000000..9cfbf994 --- /dev/null +++ b/savings_goals/test_snapshots/test_edge_case_i128_max_minus_one.1.json @@ -0,0 +1,537 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Edge Case" + }, + { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "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": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Edge Case" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Edge Case" + }, + { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Edge Case" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Edge Case" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_export_import_snapshot_with_large_amounts.1.json b/savings_goals/test_snapshots/test_export_import_snapshot_with_large_amounts.1.json new file mode 100644 index 00000000..0821a833 --- /dev/null +++ b/savings_goals/test_snapshots/test_export_import_snapshot_with_large_amounts.1.json @@ -0,0 +1,2061 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "export_snapshot", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "import_snapshot", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 0 + }, + { + "map": [ + { + "key": { + "symbol": "checksum" + }, + "val": { + "u64": 7378697629483820758 + } + }, + { + "key": { + "symbol": "goals" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "next_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "import" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "NONCES" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "u64": 1 + } + } + ] + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + }, + { + "u32": 2 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "export_snapshot" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "export_snapshot" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "checksum" + }, + "val": { + "u64": 7378697629483820758 + } + }, + { + "key": { + "symbol": "goals" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "next_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "import_snapshot" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u64": 0 + }, + { + "map": [ + { + "key": { + "symbol": "checksum" + }, + "val": { + "u64": 7378697629483820758 + } + }, + { + "key": { + "symbol": "goals" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 461168601842738790, + "lo": 7378697629483820646 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "next_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "import_snapshot" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_goal_completion_with_large_amounts.1.json b/savings_goals/test_snapshots/test_goal_completion_with_large_amounts.1.json new file mode 100644 index 00000000..db7c4f24 --- /dev/null +++ b/savings_goals/test_snapshots/test_goal_completion_with_large_amounts.1.json @@ -0,0 +1,947 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "completed" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "final_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCompleted" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "is_goal_completed" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "is_goal_completed" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_lock_unlock_with_large_amounts.1.json b/savings_goals/test_snapshots/test_lock_unlock_with_large_amounts.1.json new file mode 100644 index 00000000..631c65f5 --- /dev/null +++ b/savings_goals/test_snapshots/test_lock_unlock_with_large_amounts.1.json @@ -0,0 +1,1407 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "unlock_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "lock_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "unlock" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "lock" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Large Goal" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unlock_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalUnlocked" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unlock_goal" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "lock_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalLocked" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "lock_goal" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_multiple_goals_with_large_amounts.1.json b/savings_goals/test_snapshots/test_multiple_goals_with_large_amounts.1.json new file mode 100644 index 00000000..1cac89b8 --- /dev/null +++ b/savings_goals/test_snapshots/test_multiple_goals_with_large_amounts.1.json @@ -0,0 +1,2057 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 0" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 4" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "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": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 5 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + }, + { + "u32": 2 + }, + { + "u32": 3 + }, + { + "u32": 4 + }, + { + "u32": 5 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 0" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 4 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 4 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 4" + }, + { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 5 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 5 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_all_goals" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_all_goals" + } + ], + "data": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_pagination_with_large_amounts.1.json b/savings_goals/test_snapshots/test_pagination_with_large_amounts.1.json new file mode 100644 index 00000000..dfb9e977 --- /dev/null +++ b/savings_goals/test_snapshots/test_pagination_with_large_amounts.1.json @@ -0,0 +1,5968 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 0" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 4" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 5" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 6" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 7" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 8" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 9" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 10" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 11" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 12" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 13" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 14" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "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": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 5 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 6 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 6 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 5" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 7 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 6" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 8 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 8 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 7" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 9 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 9 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 8" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 10 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 10 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 9" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 11 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 11 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 10" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 12 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 12 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 11" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 13 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 13 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 12" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 14 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 14 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 13" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 15 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 15 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 14" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 15 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + }, + { + "u32": 2 + }, + { + "u32": 3 + }, + { + "u32": 4 + }, + { + "u32": 5 + }, + { + "u32": 6 + }, + { + "u32": 7 + }, + { + "u32": 8 + }, + { + "u32": 9 + }, + { + "u32": 10 + }, + { + "u32": 11 + }, + { + "u32": 12 + }, + { + "u32": 13 + }, + { + "u32": 14 + }, + { + "u32": 15 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 7270604957039011794 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 7270604957039011794 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 0" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 4 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 4 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 4" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 5 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 5 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 5" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 6 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 5" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 6 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 6 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 6" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 6" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 7 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 7 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 7" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 8 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 7" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 8 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 8 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 8" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 9 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 8" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 9 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 9 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 9" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 10 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 9" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 10 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 10 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 10" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 11 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 10" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 11 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 11 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 11" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 12 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 11" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 12 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 12 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 12" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 13 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 12" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 13 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 13 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 13" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 14 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 13" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 14 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 14 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 14" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 15 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 14" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 15 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 15 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goals" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 0 + }, + { + "u32": 10 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goals" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "count" + }, + "val": { + "u32": 10 + } + }, + { + "key": { + "symbol": "items" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 6 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 5" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 6" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 8 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 7" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 9 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 8" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 10 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 9" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "next_cursor" + }, + "val": { + "u32": 10 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goals" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 10 + }, + { + "u32": 10 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goals" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "count" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "items" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 11 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 10" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 12 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 11" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 13 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 12" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 14 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 13" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 15 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 14" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + ] + } + }, + { + "key": { + "symbol": "next_cursor" + }, + "val": { + "u32": 0 + } + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_sequential_large_operations.1.json b/savings_goals/test_snapshots/test_sequential_large_operations.1.json new file mode 100644 index 00000000..4b5ca703 --- /dev/null +++ b/savings_goals/test_snapshots/test_sequential_large_operations.1.json @@ -0,0 +1,3555 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 0" + }, + { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 18446744073709551, + "lo": 11363194349405083795 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 3 + }, + { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 4 + }, + { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 4" + }, + { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 5 + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + ] + } + }, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 18446744073709551, + "lo": 11363194349405083795 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + }, + { + "key": { + "u32": 5 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + }, + { + "u32": 2 + }, + { + "u32": 3 + }, + { + "u32": 4 + }, + { + "u32": 5 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 518400 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 0" + }, + { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 4611686018427387, + "lo": 16675856642633434660 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 0" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 1" + }, + { + "i128": { + "hi": 18446744073709551, + "lo": 11363194349405083795 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 18446744073709551, + "lo": 11363194349405083795 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 2 + }, + { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 2 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 2 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 9223372036854775, + "lo": 14904969211557317705 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 1" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 18446744073709551, + "lo": 11363194349405083795 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 2" + }, + { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 3 + }, + { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 3 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 3 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 23058430092136939, + "lo": 9592306918328966840 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 3 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 2" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 3" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 4 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 4 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 4 + }, + { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 4 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 4 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 46116860184273879, + "lo": 737869762948382064 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 4 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 3" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Goal 4" + }, + { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 5 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 5 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 5 + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 0 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 5 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "u32": 5 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_goal" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 5 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Goal 4" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 184467440737095516, + "lo": 2951479051793528258 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": "void" + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/test_snapshots/test_time_lock_with_large_amounts.1.json b/savings_goals/test_snapshots/test_time_lock_with_large_amounts.1.json new file mode 100644 index 00000000..3b84789a --- /dev/null +++ b/savings_goals/test_snapshots/test_time_lock_with_large_amounts.1.json @@ -0,0 +1,1364 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Time-locked Goal" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_to_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_time_lock", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "u64": 2000000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "unlock_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "withdraw_from_goal", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 1, + "timestamp": 2000001, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, + "max_entry_ttl": 100000, + "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": { + "symbol": "AUDIT" + }, + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "add" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 1000000 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "timelock" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 1000000 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "unlock" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 1000000 + } + } + ] + }, + { + "map": [ + { + "key": { + "symbol": "caller" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "operation" + }, + "val": { + "symbol": "withdraw" + } + }, + { + "key": { + "symbol": "success" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 2000001 + } + } + ] + } + ] + } + }, + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "map": [ + { + "key": { + "symbol": "current_amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709550615 + } + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "locked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Time-locked Goal" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "unlock_date" + }, + "val": { + "u64": 2000000 + } + } + ] + } + } + ] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "OWN_GOAL" + }, + "val": { + "map": [ + { + "key": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + "val": { + "vec": [ + { + "u32": 1 + } + ] + } + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 100000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 100000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 100000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 100000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 100000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 100000 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 100000 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "Time-locked Goal" + }, + { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "created" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Time-locked Goal" + } + }, + { + "key": { + "symbol": "target_amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "target_date" + }, + "val": { + "u64": 2000000 + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 1000000 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalCreated" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "create_goal" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "added" + } + ], + "data": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "goal_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "new_total" + }, + "val": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "timestamp" + }, + "val": { + "u64": 1000000 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsAdded" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "add_to_goal" + } + ], + "data": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709551615 + } + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "set_time_lock" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "u64": 2000000 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "set_time_lock" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "unlock_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "GoalUnlocked" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "unlock_goal" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "withdraw_from_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "withdraw_from_goal" + } + ], + "data": { + "error": { + "contract": 6 + } + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 6 + } + } + ], + "data": { + "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" + } + } + } + }, + "failed_call": true + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "error" + }, + { + "error": { + "contract": 6 + } + } + ], + "data": { + "vec": [ + { + "string": "contract try_call failed" + }, + { + "symbol": "withdraw_from_goal" + }, + { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000001" + }, + { + "symbol": "withdraw_from_goal" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 1 + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "savings" + }, + { + "vec": [ + { + "symbol": "FundsWithdrawn" + } + ] + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "withdraw_from_goal" + } + ], + "data": { + "i128": { + "hi": 1152921504606846975, + "lo": 18446744073709550615 + } + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/savings_goals/tests/stress_test_large_amounts.rs b/savings_goals/tests/stress_test_large_amounts.rs deleted file mode 100644 index 8d0d7c49..00000000 --- a/savings_goals/tests/stress_test_large_amounts.rs +++ /dev/null @@ -1,533 +0,0 @@ -#![cfg(test)] - -//! Stress tests for arithmetic operations with very large i128 values in savings_goals -//! -//! These tests verify that the savings_goals contract handles extreme values correctly: -//! - Values near i128::MAX/2 to avoid overflow in additions -//! - Proper error handling for overflow conditions using checked_add/checked_sub -//! - No unexpected panics or wrap-around behavior -//! -//! ## Documented Limitations -//! - Maximum safe goal amount: i128::MAX/2 (to allow for safe addition operations) -//! - add_to_goal uses checked_add internally and will panic with "overflow" on overflow -//! - withdraw_from_goal uses checked_sub internally and will panic with "underflow" on underflow -//! - No explicit caps are imposed by the contract, but overflow/underflow will panic -//! - batch_add_to_goals has same limitations as add_to_goal for each contribution - -use savings_goals::{ContributionItem, SavingsGoalContract, SavingsGoalContractClient}; -use soroban_sdk::testutils::{Address as AddressTrait, Ledger, LedgerInfo}; -use soroban_sdk::{Env, String, Vec}; - -fn set_time(env: &Env, timestamp: u64) { - let proto = env.ledger().protocol_version(); - env.ledger().set(LedgerInfo { - protocol_version: proto, - sequence_number: 1, - timestamp, - network_id: [0; 32], - base_reserve: 10, - min_temp_entry_ttl: 1, - min_persistent_entry_ttl: 1, - max_entry_ttl: 100000, - }); -} -#[test] -fn test_create_goal_near_max_i128() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Test with i128::MAX / 2 - a very large but safe value - let large_target = i128::MAX / 2; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Large Goal"), - &large_target, - &2000000, - ); - - let goal = client.get_goal(&goal_id).unwrap(); - assert_eq!(goal.target_amount, large_target); - assert_eq!(goal.current_amount, 0); -} -#[test] -fn test_add_to_goal_with_large_amount() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 2; - let large_contribution = i128::MAX / 4; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Large Goal"), - &large_target, - &2000000, - ); - - env.mock_all_auths(); - let new_total = client.add_to_goal(&owner, &goal_id, &large_contribution); - - assert_eq!(new_total, large_contribution); - - let goal = client.get_goal(&goal_id).unwrap(); - assert_eq!(goal.current_amount, large_contribution); -} -#[test] -fn test_add_to_goal_multiple_large_contributions() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 2; - let contribution = i128::MAX / 10; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Large Goal"), - &large_target, - &2000000, - ); - - // Add multiple times safely - env.mock_all_auths(); - let total1 = client.add_to_goal(&owner, &goal_id, &contribution); - assert_eq!(total1, contribution); - - env.mock_all_auths(); - let total2 = client.add_to_goal(&owner, &goal_id, &contribution); - assert_eq!(total2, contribution + contribution); - - env.mock_all_auths(); - let total3 = client.add_to_goal(&owner, &goal_id, &contribution); - assert_eq!(total3, contribution + contribution + contribution); -} -#[test] -#[should_panic(expected = "overflow")] -fn test_add_to_goal_overflow_panics() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX; - let overflow_amount = i128::MAX / 2 + 1000; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Overflow Goal"), - &large_target, - &2000000, - ); - - // First addition - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &overflow_amount); - - // Second addition should overflow - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &overflow_amount); -} -#[test] -fn test_withdraw_from_goal_with_large_amount() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 2; - let large_amount = i128::MAX / 4; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Large Goal"), - &large_target, - &2000000, - ); - - // Add funds - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &large_amount); - - // Unlock to allow withdrawal - env.mock_all_auths(); - client.unlock_goal(&owner, &goal_id); - - // Withdraw half - env.mock_all_auths(); - let remaining = client.withdraw_from_goal(&owner, &goal_id, &(large_amount / 2)); - - assert_eq!(remaining, large_amount / 2); -} -#[test] -fn test_goal_completion_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 4; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Large Goal"), - &large_target, - &2000000, - ); - - // Add exactly the target amount - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &large_target); - - // Verify goal is completed - let is_completed = client.is_goal_completed(&goal_id); - assert!(is_completed); - - let goal = client.get_goal(&goal_id).unwrap(); - assert_eq!(goal.current_amount, large_target); - assert!(goal.current_amount >= goal.target_amount); -} -#[test] -fn test_batch_add_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 10; - let contribution = i128::MAX / 50; - - // Create multiple goals - let goal1 = client.create_goal( - &owner, - &String::from_str(&env, "Goal 1"), - &large_target, - &2000000, - ); - - env.mock_all_auths(); - let goal2 = client.create_goal( - &owner, - &String::from_str(&env, "Goal 2"), - &large_target, - &2000000, - ); - - env.mock_all_auths(); - let goal3 = client.create_goal( - &owner, - &String::from_str(&env, "Goal 3"), - &large_target, - &2000000, - ); - - // Batch add to all goals - let mut contributions = Vec::new(&env); - contributions.push_back(ContributionItem { - goal_id: goal1, - amount: contribution, - }); - contributions.push_back(ContributionItem { - goal_id: goal2, - amount: contribution, - }); - contributions.push_back(ContributionItem { - goal_id: goal3, - amount: contribution, - }); - - env.mock_all_auths(); - let count = client.batch_add_to_goals(&owner, &contributions); - - assert_eq!(count, 3); - - // Verify all goals received the contribution - let g1 = client.get_goal(&goal1).unwrap(); - let g2 = client.get_goal(&goal2).unwrap(); - let g3 = client.get_goal(&goal3).unwrap(); - - assert_eq!(g1.current_amount, contribution); - assert_eq!(g2.current_amount, contribution); - assert_eq!(g3.current_amount, contribution); -} -#[test] -fn test_multiple_goals_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 10; - - // Create multiple goals with large targets - for i in 0..5 { - client.create_goal( - &owner, - &String::from_str(&env, &format!("Goal {}", i)), - &large_target, - &2000000, - ); - env.mock_all_auths(); - } - - // Verify all goals were created correctly - let goals = client.get_all_goals(&owner); - assert_eq!(goals.len(), 5); - - for goal in goals.iter() { - assert_eq!(goal.target_amount, large_target); - assert_eq!(goal.current_amount, 0); - } -} -#[test] -fn test_edge_case_i128_max_minus_one() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Test with i128::MAX - 1 - let edge_target = i128::MAX - 1; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Edge Case"), - &edge_target, - &2000000, - ); - - let goal = client.get_goal(&goal_id).unwrap(); - assert_eq!(goal.target_amount, edge_target); -} -#[test] -fn test_pagination_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 100; - - // Create multiple goals with large targets - for i in 0..15 { - client.create_goal( - &owner, - &String::from_str(&env, &format!("Goal {}", i)), - &large_target, - &2000000, - ); - env.mock_all_auths(); - } - - // Test pagination - let page1 = client.get_goals(&owner, &0, &10); - assert_eq!(page1.count, 10); - assert!(page1.next_cursor > 0); - - let page2 = client.get_goals(&owner, &page1.next_cursor, &10); - assert_eq!(page2.count, 5); - assert_eq!(page2.next_cursor, 0); // No more pages - - // Verify all amounts are correct - for goal in page1.items.iter() { - assert_eq!(goal.target_amount, large_target); - } - for goal in page2.items.iter() { - assert_eq!(goal.target_amount, large_target); - } -} -#[test] -fn test_lock_unlock_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 4; - let large_amount = i128::MAX / 8; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Large Goal"), - &large_target, - &2000000, - ); - - // Add funds - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &large_amount); - - // Goal starts locked - let goal = client.get_goal(&goal_id).unwrap(); - assert!(goal.locked); - - // Unlock - env.mock_all_auths(); - client.unlock_goal(&owner, &goal_id); - - let goal = client.get_goal(&goal_id).unwrap(); - assert!(!goal.locked); - - // Lock again - env.mock_all_auths(); - client.lock_goal(&owner, &goal_id); - - let goal = client.get_goal(&goal_id).unwrap(); - assert!(goal.locked); -} -#[test] -fn test_sequential_large_operations() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - // Test with progressively larger amounts - let amounts_to_test = vec![ - i128::MAX / 1000, - i128::MAX / 500, - i128::MAX / 200, - i128::MAX / 100, - i128::MAX / 50, - ]; - - for (i, amount) in amounts_to_test.iter().enumerate() { - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, &format!("Goal {}", i)), - amount, - &2000000, - ); - - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &(amount / 2)); - - let goal = client.get_goal(&goal_id).unwrap(); - assert_eq!(goal.current_amount, amount / 2); - assert_eq!(goal.target_amount, *amount); - - env.mock_all_auths(); - } -} -#[test] -fn test_time_lock_with_large_amounts() { - let env = Env::default(); - set_time(&env, 1000000); - - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 4; - let large_amount = i128::MAX / 8; - - let goal_id = client.create_goal( - &owner, - &String::from_str(&env, "Time-locked Goal"), - &large_target, - &2000000, - ); - - // Add funds - env.mock_all_auths(); - client.add_to_goal(&owner, &goal_id, &large_amount); - - // Set time lock - env.mock_all_auths(); - client.set_time_lock(&owner, &goal_id, &2000000); - - // Unlock the goal - env.mock_all_auths(); - client.unlock_goal(&owner, &goal_id); - - // Try to withdraw before time lock expires (should fail) - env.mock_all_auths(); - let result = client.try_withdraw_from_goal(&owner, &goal_id, &1000); - assert!(result.is_err()); - - // Advance time past the lock - set_time(&env, 2000001); - - // Now withdrawal should succeed - env.mock_all_auths(); - let remaining = client.withdraw_from_goal(&owner, &goal_id, &1000); - assert_eq!(remaining, large_amount - 1000); -} -#[test] -fn test_export_import_snapshot_with_large_amounts() { - let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); - let client = SavingsGoalContractClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - - let large_target = i128::MAX / 10; - let large_amount = i128::MAX / 20; - - // Create goals with large amounts - let goal1 = client.create_goal( - &owner, - &String::from_str(&env, "Goal 1"), - &large_target, - &2000000, - ); - - env.mock_all_auths(); - client.add_to_goal(&owner, &goal1, &large_amount); - - env.mock_all_auths(); - let goal2 = client.create_goal( - &owner, - &String::from_str(&env, "Goal 2"), - &large_target, - &2000000, - ); - - env.mock_all_auths(); - client.add_to_goal(&owner, &goal2, &large_amount); - - // Export snapshot - env.mock_all_auths(); - let snapshot = client.export_snapshot(&owner); - - assert_eq!(snapshot.goals.len(), 2); - assert_eq!(snapshot.goals.get(0).unwrap().target_amount, large_target); - assert_eq!(snapshot.goals.get(0).unwrap().current_amount, large_amount); - - // Import snapshot (with nonce) - env.mock_all_auths(); - let success = client.import_snapshot(&owner, &0, &snapshot); - assert!(success); -}