diff --git a/ACCESS_CONTROL_MATRIX.md b/ACCESS_CONTROL_MATRIX.md index 5e8401d2..e1b908ec 100644 --- a/ACCESS_CONTROL_MATRIX.md +++ b/ACCESS_CONTROL_MATRIX.md @@ -4,6 +4,7 @@ This document provides a comprehensive access-control matrix mapping each public method across all contracts to its required caller (owner/admin/anyone/other contract). It also identifies risky functions requiring tighter controls and documents cross-contract call constraints. + --- ## 1. Bill Payments Contract diff --git a/Cargo.toml b/Cargo.toml index 43959bf1..4de35666 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,11 +16,8 @@ members = [ "orchestrator", "cli", "scenarios", - "testutils", "integration_tests", - - ] default-members = [ "remittance_split", @@ -31,23 +28,22 @@ default-members = [ "data_migration", "reporting", "orchestrator", - ] resolver = "2" [dependencies] -soroban-sdk = "21.0.0" -ed25519-dalek = "2.1.1" +soroban-sdk = "22.0.1" remittance_split = { path = "./remittance_split" } savings_goals = { path = "./savings_goals" } bill_payments = { path = "./bill_payments" } insurance = { path = "./insurance" } family_wallet = { path = "./family_wallet" } reporting = { path = "./reporting" } +remitwise-common = { path = "./remitwise-common" } orchestrator = { path = "./orchestrator" } [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } [profile.release] opt-level = "z" diff --git a/NEW_CONTRACT_GUIDE.md b/NEW_CONTRACT_GUIDE.md index 9e88db8f..5f9b1668 100644 --- a/NEW_CONTRACT_GUIDE.md +++ b/NEW_CONTRACT_GUIDE.md @@ -222,7 +222,7 @@ use your_contract::{YourContract, YourContractClient}; fn setup() -> (Env, Address, YourContractClient<'static>) { let env = Env::default(); env.mock_all_auths(); // mock auth for all calls - let contract_id = env.register_contract(None, YourContract); + let contract_id = env.register(YourContract, ()); let client = YourContractClient::new(&env, &contract_id); let admin = Address::generate(&env); (env, admin, client) @@ -273,13 +273,13 @@ use your_contract::{YourContract, YourContractClient}; fn bench_create_record() { let env = Env::default(); env.mock_all_auths(); - let id = env.register_contract(None, YourContract); + let id = env.register(YourContract, ()); let client = YourContractClient::new(&env, &id); // ... setup ... client.create_record(/* args */); - let resources = env.budget().borrow().resource_per_type(); + let resources = env.cost_estimate().budget().borrow().resource_per_type(); println!("CPU (instructions): {}", resources.cpu_insns); println!("Memory (bytes): {}", resources.mem_bytes); diff --git a/VERSION_COMPATIBILITY.md b/VERSION_COMPATIBILITY.md index 141e9664..5fa2ec4f 100644 --- a/VERSION_COMPATIBILITY.md +++ b/VERSION_COMPATIBILITY.md @@ -1,377 +1,46 @@ -# Version Compatibility Matrix +# Remitwise-Contracts Version Compatibility Matrix -This document tracks tested and compatible versions of Soroban SDK, CLI, and Stellar Protocol for RemitWise contracts. +This document defines the versioning strategy and compatibility guarantees for the Remitwise-Contracts workspace. It ensures that contract upgrades (WASM updates) preserve data integrity and maintain cross-contract interoperability. -## Current Production Versions +## 1. Versioning Strategy -| Component | Version | Release Date | Status | -|-----------|---------|--------------|--------| -| Soroban SDK | 21.0.0 | 2024 | ✅ Production | -| Soroban CLI | 21.0.0 | 2024 | ✅ Production | -| Rust Toolchain | stable | Latest | ✅ Production | -| Protocol | 20+ | - | ✅ Compatible | +Remitwise-Contracts use a single-integer versioning system (`CONTRACT_VERSION`) defined in `remitwise-common`. -## Version History +- **Incremental Upgrades**: Each contract upgrade MUST increment the `CONTRACT_VERSION` if storage structures or logic Change. +- **State Preservation**: Soroban contracts preserve their `instance`, `temporary`, and `persistent` storage across WASM upgrades if the contract ID remains the same. +- **Backward Compatibility**: Newer versions of contracts MUST be able to deserialize and process data written by previous versions. -### SDK 21.0.0 (Current) +## 2. Compatibility Matrix -**Release Date**: 2024 -**Status**: ✅ Fully Tested and Production Ready +| Component | V1 (Current) | V2 (Planned) | Compatibility Requirement | +|-----------|--------------|--------------|---------------------------| +| **RemittanceSplit** | `1` | `2` | Must preserve split percentages and owner. | +| **SavingsGoals** | `1` | `2` | Must preserve all existing goal balances and deadlines. | +| **BillPayments** | `1` | `2` | Must preserve unpaid bills and recurring settings. | +| **Insurance** | `1` | `2` | Must preserve all active policies and premium dates. | +| **Orchestrator** | `1` | `2` | Must maintain cross-contract call signatures. | -**Tested Features**: -- ✅ Contract storage and TTL management -- ✅ Event emission and querying -- ✅ Cross-contract calls (orchestrator) -- ✅ Authorization and signatures -- ✅ Stellar Asset Contract integration -- ✅ Archival and restoration patterns -- ✅ Gas optimization +## 3. Migration Scenarios -**Known Issues**: None +### Scenario A: Smooth In-Place Upgrade +- **Action**: Replace WASM for a contract while keeping the same ID. +- **Validation**: Contract functions correctly with pre-existing data without re-initialization. -**Breaking Changes**: None from 20.x series +### Scenario B: Data Transformation +- **Action**: V2 introduces a new field in a `contracttype` struct. +- **Validation**: V2 logic handles cases where the field is missing (defaulting) or migrates the record on first access. -**Contracts Validated**: -- ✅ remittance_split -- ✅ savings_goals -- ✅ bill_payments -- ✅ insurance -- ✅ family_wallet -- ✅ reporting -- ✅ orchestrator -- ✅ data_migration +### Scenario C: Cross-Contract Version Mismatch +- **Action**: Orchestrator (V1) calls a V2 downstream contract. +- **Validation**: Call signatures remain compatible or Orchestrator is updated to handle multiple versions. -**Test Results**: -- Unit Tests: 100% passing -- Integration Tests: 100% passing -- Gas Benchmarks: Within acceptable range -- Testnet Deployment: Successful -- Mainnet Ready: Yes +## 4. Security Assumptions +- **Authorization**: Upgrades MUST NOT reset or bypass `require_auth` checks. +- **Ownership**: Contract ownership/admin roles MUST persist across upgrades. +- **TTL**: Upgrades should trigger a mandatory `extend_ttl` on critical instance storage. -### SDK 20.x (Legacy) - -**Status**: ⚠️ Legacy - Upgrade Recommended - -**Notes**: Previous stable release. Upgrade to 21.0.0 recommended for latest features and optimizations. - -## Protocol Compatibility - -### Protocol 20 (Soroban Phase 1) - -**Status**: ✅ Fully Compatible - -**Features Used**: -- Contract storage (persistent, temporary, instance) -- TTL extension and archival -- Event emission -- Cross-contract calls -- Authorization framework -- Stellar Asset Contract integration - -**Network Availability**: -- Testnet: ✅ Available -- Mainnet: ✅ Available - -### Protocol 21+ (Future) - -**Status**: ⚠️ Untested - Validation Required - -**Expected Compatibility**: High (no breaking changes anticipated) - -**Action Required**: Test on testnet when available - -## Network Protocol Versions - -### Testnet - -| Date | Protocol Version | SDK Compatibility | Status | -|------|------------------|-------------------|--------| -| Current | 20+ | 21.0.0 | ✅ Active | - -### Mainnet - -| Date | Protocol Version | SDK Compatibility | Status | -|------|------------------|-------------------|--------| -| Current | 20+ | 21.0.0 | ✅ Active | - -## Rust Toolchain Compatibility - -### Stable Channel (Recommended) - -**Status**: ✅ Fully Compatible - -**Required Targets**: -- `wasm32-unknown-unknown` - Primary WASM target -- `wasm32v1-none` - Alternative WASM target - -**Installation**: -```bash -rustup target add wasm32-unknown-unknown -rustup target add wasm32v1-none -``` - -### Nightly Channel - -**Status**: ⚠️ Not Recommended for Production - -**Notes**: May work but not officially tested. Use stable channel for production deployments. - -## Dependency Compatibility - -### Core Dependencies - -```toml -[dependencies] -soroban-sdk = "21.0.0" - -[dev-dependencies] -soroban-sdk = { version = "21.0.0", features = ["testutils"] } -``` - -### Build Profile - -```toml -[profile.release] -opt-level = "z" -overflow-checks = true -debug = 0 -strip = "symbols" -debug-assertions = false -panic = "abort" -codegen-units = 1 -lto = true -``` - -**Status**: ✅ Optimized for production - -## Testing Matrix - -### Unit Tests - -| Contract | SDK 21.0.0 | Notes | -|----------|------------|-------| -| remittance_split | ✅ Pass | All 50+ tests passing | -| savings_goals | ✅ Pass | All 60+ tests passing | -| bill_payments | ✅ Pass | All 70+ tests passing | -| insurance | ✅ Pass | All 50+ tests passing | -| family_wallet | ✅ Pass | All 60+ tests passing | -| reporting | ✅ Pass | All 25+ tests passing | -| orchestrator | ✅ Pass | All 15+ tests passing | - -### Integration Tests - -| Scenario | SDK 21.0.0 | Notes | -|----------|------------|-------| -| Remittance flow | ✅ Pass | End-to-end allocation | -| Cross-contract calls | ✅ Pass | Orchestrator integration | -| Event emission | ✅ Pass | All events captured | -| Storage archival | ✅ Pass | Archive/restore working | -| Gas benchmarks | ✅ Pass | Within acceptable limits | - -### Testnet Validation - -| Contract | Deployment | Functionality | Events | Notes | -|----------|------------|---------------|--------|-------| -| remittance_split | ✅ | ✅ | ✅ | Fully validated | -| savings_goals | ✅ | ✅ | ✅ | Fully validated | -| bill_payments | ✅ | ✅ | ✅ | Fully validated | -| insurance | ✅ | ✅ | ✅ | Fully validated | -| family_wallet | ✅ | ✅ | ✅ | Fully validated | -| reporting | ✅ | ✅ | ✅ | Fully validated | -| orchestrator | ✅ | ✅ | ✅ | Fully validated | - -## Gas Cost Analysis - -### SDK 21.0.0 Benchmarks - -| Operation | CPU Instructions | Memory Bytes | Status | -|-----------|------------------|--------------|--------| -| initialize_split | ~500K | ~2KB | ✅ Optimal | -| calculate_split | ~300K | ~1KB | ✅ Optimal | -| create_goal | ~600K | ~3KB | ✅ Optimal | -| add_to_goal | ~400K | ~2KB | ✅ Optimal | -| create_bill | ~550K | ~3KB | ✅ Optimal | -| pay_bill | ~450K | ~2KB | ✅ Optimal | -| create_policy | ~600K | ~3KB | ✅ Optimal | -| pay_premium | ~400K | ~2KB | ✅ Optimal | - -**Baseline**: Established with SDK 21.0.0 -**Threshold**: ±10% acceptable variance - -## Known Limitations - -### SDK 21.0.0 - -1. **Storage Limits**: Standard Soroban storage limits apply - - Max entry size: 64KB - - TTL management required for long-term storage - -2. **Cross-Contract Calls**: Limited call depth - - Max depth: 4 levels - - Orchestrator designed within limits - -3. **Event Size**: Events have size limitations - - Keep event data concise - - Use references for large data - -### Protocol 20 - -1. **Network Limits**: Standard network resource limits - - Transaction size limits - - Ledger entry limits - - CPU/memory budgets - -## Upgrade Path - -### From SDK 20.x to 21.0.0 - -**Difficulty**: Easy -**Breaking Changes**: None -**Estimated Time**: 1-2 hours - -**Steps**: -1. Update Cargo.toml dependencies -2. Run `cargo update` -3. Run full test suite -4. Deploy to testnet for validation -5. Update documentation - -See [UPGRADE_GUIDE.md](UPGRADE_GUIDE.md) for detailed instructions. - -### Future Upgrades (SDK 22.0.0+) - -**Status**: Not yet available - -**Preparation**: -- Monitor [Soroban SDK releases](https://github.com/stellar/rs-soroban-sdk/releases) -- Review release notes for breaking changes -- Test with release candidates when available -- Follow upgrade guide procedures - -## Validation Checklist - -When validating a new Soroban version: - -- [ ] Review release notes and breaking changes -- [ ] Update all Cargo.toml files -- [ ] Update Soroban CLI -- [ ] Run `cargo clean` and rebuild -- [ ] Run full unit test suite -- [ ] Run gas benchmarks and compare -- [ ] Deploy to testnet -- [ ] Test all contract functions -- [ ] Verify event emission -- [ ] Test cross-contract calls -- [ ] Validate storage operations -- [ ] Check TTL management -- [ ] Monitor for 7 days on testnet -- [ ] Update documentation -- [ ] Plan mainnet deployment - -## Support and Resources - -### Official Resources - -- [Soroban Documentation](https://soroban.stellar.org/docs) -- [Soroban SDK Repository](https://github.com/stellar/rs-soroban-sdk) -- [Soroban SDK Releases](https://github.com/stellar/rs-soroban-sdk/releases) -- [Stellar Protocol](https://stellar.org/developers/docs) - -### Community - -- [Soroban Discord](https://discord.gg/stellar) -- [Stellar Stack Exchange](https://stellar.stackexchange.com/) -- [Stellar Developers Google Group](https://groups.google.com/g/stellar-dev) - -### Issue Reporting - -If you encounter compatibility issues: - -1. Check this document for known issues -2. Review [GitHub Issues](https://github.com/stellar/rs-soroban-sdk/issues) -3. Test with minimal reproduction case -4. Report with full version details - -## Snapshot Schema Versioning - -Each contract that supports data export/import carries an explicit **schema version tag** -inside every snapshot it produces. This is separate from the contract deployment version -(`get_version()`). - -### Constants (workspace-wide) - -| Constant | Value | Contract(s) | -|---|---|---| -| `SCHEMA_VERSION` | 1 | remittance_split, savings_goals, data_migration | -| `MIN_SUPPORTED_SCHEMA_VERSION` / `MIN_SUPPORTED_VERSION` | 1 | all three | -| `SNAPSHOT_SCHEMA_VERSION` (alias) | 1 | data_migration | - -### Snapshot struct fields - -| Contract | Struct | Schema version field | -|---|---|---| -| `remittance_split` | `ExportSnapshot` | `schema_version: u32` | -| `savings_goals` | `GoalsExportSnapshot` | `schema_version: u32` | -| `data_migration` | `SnapshotHeader` | `version: u32` (= `SCHEMA_VERSION`) | - -### Import validation rules - -All `import_snapshot` entry points validate the schema version against the -supported range before applying any data: - -``` -MIN_SUPPORTED_SCHEMA_VERSION <= snapshot.schema_version <= SCHEMA_VERSION -``` - -- **Too old** (`schema_version < MIN_SUPPORTED_SCHEMA_VERSION`): rejected as `UnsupportedVersion`. -- **Too new** (`schema_version > SCHEMA_VERSION`): rejected as `UnsupportedVersion` - (forward-compatibility rejection — the contract cannot safely apply an unknown format). -- **In range**: accepted; checksum is verified next before data is written. - -### Error codes - -| Contract | Error variant | Code | -|---|---|---| -| `remittance_split` | `RemittanceSplitError::UnsupportedVersion` | 8 | -| `remittance_split` | `RemittanceSplitError::ChecksumMismatch` | 9 | -| `savings_goals` | `SavingsGoalError::UnsupportedVersion` | 6 | -| `savings_goals` | `SavingsGoalError::ChecksumMismatch` | 7 | -| `data_migration` | `MigrationError::IncompatibleVersion` | — | - -### Bumping the schema version - -When the snapshot format changes: - -1. Increment `SCHEMA_VERSION` in the affected contract(s). -2. If old snapshots can still be safely imported, leave `MIN_SUPPORTED_SCHEMA_VERSION` unchanged. -3. If old snapshots are no longer safe to import, bump `MIN_SUPPORTED_SCHEMA_VERSION` to match. -4. Add a new test asserting that the previous version is accepted or rejected as appropriate. -5. Update this table. - -### Events emitted - -Both `remittance_split` and `savings_goals` emit an event on every `export_snapshot` -call containing the `schema_version` value for indexer consumption: - -| Contract | Topic 1 | Topic 2 | Data | -|---|---|---|---| -| `remittance_split` | `"split"` | `"snap_exp"` | `schema_version: u32` | -| `savings_goals` | `"goals"` | `"snap_exp"` | `schema_version: u32` | - ---- - -## Maintenance - -This document is maintained alongside contract releases. - -**Last Updated**: 2024 -**Next Review**: Upon next SDK release -**Maintainer**: RemitWise Development Team - ---- - -**Legend**: -- ✅ Tested and working -- ⚠️ Untested or requires attention -- ❌ Known issues or incompatible -- 🔄 In progress +## 5. Verification +Verification is performed via the `integration_tests` suite: +- `test_contract_upgrade_compatibility` +- `test_version_matrix_interoperability` +- `test_v2_data_migration_simulation` (New) diff --git a/ast.txt b/ast.txt new file mode 100644 index 00000000..e69de29b diff --git a/bill_payments/Cargo.toml b/bill_payments/Cargo.toml index 72cacab2..75f77873 100644 --- a/bill_payments/Cargo.toml +++ b/bill_payments/Cargo.toml @@ -7,12 +7,12 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" remitwise-common = { path = "../remitwise-common" } [dev-dependencies] proptest = "1.10.0" -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } diff --git a/bill_payments/README.md b/bill_payments/README.md index e656294c..3ab3c5e8 100644 --- a/bill_payments/README.md +++ b/bill_payments/README.md @@ -1,18 +1,16 @@ # Bill Payments Contract -A Soroban smart contract for managing bill payments with support for recurring bills, payment tracking, access control, and currency management. +A Soroban smart contract for managing bill payments with support for recurring bills, payment tracking, and access control. ## Overview -The Bill Payments contract allows users to create, manage, and pay bills in various currencies. It supports both one-time and recurring bills, tracks payment history, provides comprehensive querying capabilities, and includes currency normalization and validation. +The Bill Payments contract allows users to create, manage, and pay bills. It supports both one-time and recurring bills, tracks payment history, and provides comprehensive querying capabilities. ## Features -- Create one-time or recurring bills with currency specification -- Currency normalization (case-insensitive, whitespace trimming, defaults to "XLM") -- Currency validation (alphanumeric, 1-12 characters) +- Create one-time or recurring bills - Mark bills as paid with automatic recurring bill generation -- Query unpaid, overdue, and all bills by currency +- Query unpaid, overdue, and all bills - Access control ensuring only owners can manage their bills - Event emission for audit trails - Storage TTL management for efficiency @@ -68,25 +66,6 @@ pub struct Bill { pub paid: bool, pub created_at: u64, pub paid_at: Option, - pub currency: String, // Currency code (e.g., "XLM", "USDC", "NGN") -} -``` - -#### ArchivedBill -```rust -pub struct ArchivedBill { - pub id: u32, - pub owner: Address, - pub name: String, - pub amount: i128, - pub due_date: u64, - pub recurring: bool, - pub frequency_days: u32, - pub paid: bool, - pub created_at: u64, - pub paid_at: Option, - pub archived_at: u64, - pub currency: String, // Currency code carried over from original bill } ``` @@ -96,12 +75,14 @@ pub struct ArchivedBill { - `InvalidAmount = 3`: Amount is zero or negative - `InvalidFrequency = 4`: Recurring bill has zero frequency - `Unauthorized = 5`: Caller is not the bill owner -- `InvalidCurrency = 15`: Currency code is invalid (non-alphanumeric or wrong length) +- `InvalidDueDate = 12`: Due date is zero or not strictly in the future +- `InvalidRecurrenceCombination = 15`: Non-recurring bill provided with non-zero frequency +- `FrequencyOverflow = 16`: Recurrence interval overflows due-date arithmetic ### Functions -#### `create_bill(env, owner, name, amount, due_date, recurring, frequency_days, currency) -> Result` -Creates a new bill with currency specification. +#### `create_bill(env, owner, name, amount, due_date, recurring, frequency_days) -> Result` +Creates a new bill. **Parameters:** - `owner`: Address of the bill owner (must authorize) @@ -110,17 +91,22 @@ Creates a new bill with currency specification. - `due_date`: Due date as Unix timestamp - `recurring`: Whether this is a recurring bill - `frequency_days`: Frequency in days for recurring bills (> 0 if recurring) -- `currency`: Currency code (e.g., "XLM", "USDC", "NGN"). Case-insensitive, whitespace trimmed, defaults to "XLM" if empty. **Returns:** Bill ID on success -**Errors:** InvalidAmount, InvalidFrequency, InvalidCurrency +**Errors:** InvalidAmount, InvalidDueDate, InvalidFrequency, InvalidRecurrenceCombination, FrequencyOverflow + +### Fail-Fast Create Validation -**Currency Normalization:** -- Converts to uppercase (e.g., "usdc" → "USDC") -- Trims whitespace (e.g., " XLM " → "XLM") -- Empty string defaults to "XLM" -- Validates: 1-12 alphanumeric characters only +The `create_bill` entrypoint validates all bill-creation constraints before any state write, which guarantees fail-fast behavior and deterministic error semantics: + +- `InvalidAmount`: `amount <= 0` +- `InvalidDueDate`: `due_date == 0` or `due_date <= ledger_timestamp` +- `InvalidFrequency`: `recurring == true` and `frequency_days == 0` +- `InvalidRecurrenceCombination`: `recurring == false` and `frequency_days != 0` +- `FrequencyOverflow`: `frequency_days * 86400` or `due_date + cadence_seconds` overflows + +This prevents malformed records from ever entering contract state. #### `pay_bill(env, caller, bill_id) -> Result<(), Error>` Marks a bill as paid. @@ -149,43 +135,6 @@ Gets all unpaid bills for an owner. **Returns:** Vector of unpaid Bill structs -#### `get_bills_by_currency(env, owner, currency, cursor, limit) -> Page` -Gets a page of ALL bills (paid + unpaid) for an owner that match a specific currency. - -**Parameters:** -- `owner`: Address of the bill owner -- `currency`: Currency code to filter by (case-insensitive) -- `cursor`: Start after this bill ID (0 for first page) -- `limit`: Maximum number of bills to return (1-100, defaults to 10) - -**Returns:** Page struct with bills and next cursor - -**Currency Comparison:** Case-insensitive (e.g., "usdc", "USDC", "UsDc" all match) - -#### `get_unpaid_bills_by_currency(env, owner, currency, cursor, limit) -> Page` -Gets a page of unpaid bills for an owner that match a specific currency. - -**Parameters:** -- `owner`: Address of the bill owner -- `currency`: Currency code to filter by (case-insensitive) -- `cursor`: Start after this bill ID (0 for first page) -- `limit`: Maximum number of bills to return (1-100, defaults to 10) - -**Returns:** Page struct with bills and next cursor - -**Currency Comparison:** Case-insensitive (e.g., "usdc", "USDC", "UsDc" all match) - -#### `get_total_unpaid_by_currency(env, owner, currency) -> i128` -Calculates total amount of unpaid bills for an owner in a specific currency. - -**Parameters:** -- `owner`: Address of the bill owner -- `currency`: Currency code to filter by (case-insensitive) - -**Returns:** Total unpaid amount in the specified currency - -**Currency Comparison:** Case-insensitive (e.g., "usdc", "USDC", "UsDc" all match) - #### `get_overdue_bills(env, owner) -> Vec` Gets all overdue unpaid bills for a specific owner. @@ -219,64 +168,20 @@ Gets all bills (paid and unpaid). ## Usage Examples -### Creating a One-Time Bill with Currency +### Creating a One-Time Bill ```rust -// Create a one-time electricity bill due in 30 days in USDC +// Create a one-time electricity bill due in 30 days let bill_id = bill_payments::create_bill( env, user_address, "Electricity Bill".into(), - 150_0000000, // 150 USDC in smallest units + 150_0000000, // 150 XLM in stroops env.ledger().timestamp() + (30 * 86400), // 30 days from now false, // not recurring 0, // frequency not needed - "USDC".into(), // currency code (case-insensitive) )?; ``` -### Creating a Recurring Bill with Currency -```rust -// Create a monthly insurance bill in XLM -let bill_id = bill_payments::create_bill( - env, - user_address, - "Insurance Premium".into(), - 50_0000000, // 50 XLM - env.ledger().timestamp() + (30 * 86400), // due in 30 days - true, // recurring - 30, // every 30 days - "xlm".into(), // lowercase works, will be normalized to "XLM" -)?; -``` - -### Querying Bills by Currency -```rust -// Get all unpaid USDC bills for a user (case-insensitive) -let unpaid_usdc = bill_payments::get_unpaid_bills_by_currency( - env, - user_address, - "usdc".into(), // lowercase query - 0, // start from beginning - 10 // limit to 10 results -); - -// Get total unpaid amount in XLM -let total_xlm = bill_payments::get_total_unpaid_by_currency( - env, - user_address, - "XLM".into() -); - -// Get all bills (paid + unpaid) in a specific currency -let all_usdc_bills = bill_payments::get_bills_by_currency( - env, - user_address, - "USDC".into(), - 0, - 100 -); -``` - ### Creating a Recurring Bill ```rust // Create a monthly insurance bill @@ -338,4 +243,6 @@ Bills can represent insurance premiums, working alongside the insurance contract - All functions require proper authorization - Owners can only manage their own bills - Input validation prevents invalid states -- Storage TTL is managed to prevent bloat \ No newline at end of file +- Storage TTL is managed to prevent bloat +- Recurrence overflow checks prevent timestamp wrap-around during next-bill scheduling +- Validation is fail-fast and runs before mutating any persistent storage \ No newline at end of file diff --git a/bill_payments/src/lib.rs b/bill_payments/src/lib.rs index 3289a9de..32cb927f 100644 --- a/bill_payments/src/lib.rs +++ b/bill_payments/src/lib.rs @@ -2,9 +2,9 @@ #![cfg_attr(not(test), deny(clippy::unwrap_used, clippy::expect_used))] use remitwise_common::{ - clamp_limit, EventCategory, EventPriority, RemitwiseEvents, ARCHIVE_BUMP_AMOUNT, - ARCHIVE_LIFETIME_THRESHOLD, CONTRACT_VERSION, DEFAULT_PAGE_LIMIT, INSTANCE_BUMP_AMOUNT, - INSTANCE_LIFETIME_THRESHOLD, MAX_BATCH_SIZE, MAX_PAGE_LIMIT, + clamp_limit, CreateBillConfig, EventCategory, EventPriority, RemitwiseEvents, + ARCHIVE_BUMP_AMOUNT, ARCHIVE_LIFETIME_THRESHOLD, CONTRACT_VERSION, INSTANCE_BUMP_AMOUNT, + INSTANCE_LIFETIME_THRESHOLD, MAX_BATCH_SIZE, }; use soroban_sdk::{ @@ -12,8 +12,6 @@ use soroban_sdk::{ Symbol, Vec, }; -#[derive(Clone, Debug)] -#[contracttype] #[derive(Clone, Debug)] #[contracttype] pub struct Bill { @@ -35,7 +33,6 @@ pub struct Bill { pub currency: String, } - /// Paginated result for bill queries #[contracttype] #[derive(Clone)] @@ -57,8 +54,6 @@ pub mod pause_functions { pub const RESTORE: soroban_sdk::Symbol = symbol_short!("restore"); } -const CONTRACT_VERSION: u32 = 1; -const MAX_BATCH_SIZE: u32 = 50; const STORAGE_UNPAID_TOTALS: Symbol = symbol_short!("UNPD_TOT"); #[contracterror] @@ -79,11 +74,10 @@ pub enum Error { InvalidDueDate = 12, InvalidTag = 13, EmptyTags = 14, - InvalidCurrency = 15, + InvalidRecurrenceCombination = 15, + FrequencyOverflow = 16, } -#[derive(Clone)] -#[contracttype] #[derive(Clone)] #[contracttype] pub struct ArchivedBill { @@ -98,7 +92,6 @@ pub struct ArchivedBill { pub currency: String, } - /// Paginated result for archived bill queries #[contracttype] #[derive(Clone)] @@ -117,6 +110,7 @@ pub enum BillEvent { ExternalRefUpdated, } +#[derive(Clone)] #[contracttype] pub struct StorageStats { pub active_bills: u32, @@ -131,6 +125,42 @@ pub struct BillPayments; #[contractimpl] impl BillPayments { + /// @notice Validate create-bill inputs before any state write. + /// @dev Fails fast with explicit error variants for each invalid case. + fn validate_create_bill_inputs( + env: &Env, + amount: i128, + due_date: u64, + recurring: bool, + frequency_days: u32, + ) -> Result<(), Error> { + if amount <= 0 { + return Err(Error::InvalidAmount); + } + + let current_time = env.ledger().timestamp(); + if due_date == 0 || due_date <= current_time { + return Err(Error::InvalidDueDate); + } + + if recurring { + if frequency_days == 0 { + return Err(Error::InvalidFrequency); + } + + let cadence_secs = (frequency_days as u64) + .checked_mul(86_400) + .ok_or(Error::FrequencyOverflow)?; + due_date + .checked_add(cadence_secs) + .ok_or(Error::FrequencyOverflow)?; + } else if frequency_days != 0 { + return Err(Error::InvalidRecurrenceCombination); + } + + Ok(()) + } + /// Create a new bill /// /// # Arguments @@ -147,71 +177,12 @@ impl BillPayments { /// /// # Errors /// * `InvalidAmount` - If amount is zero or negative + /// * `InvalidDueDate` - If due_date is zero or not strictly in the future /// * `InvalidFrequency` - If recurring is true but frequency_days is 0 - // ----------------------------------------------------------------------- - // Internal helpers - // ----------------------------------------------------------------------- - - /// Normalize a currency string for consistent storage and comparison. - /// - /// # Arguments - /// * `env` - The Soroban environment - /// * `currency` - Currency code string to normalize - /// - /// # Returns - /// Normalized currency string with: - /// 1. Whitespace trimmed from both ends - /// 2. Converted to uppercase - /// 3. Empty strings default to "XLM" - /// - /// # Examples - /// - "usdc" → "USDC" - /// - " XLM " → "XLM" - /// - "" → "XLM" - /// - "UsDc" → "USDC" - fn normalize_currency(env: &Env, currency: &String) -> String { - let trimmed = currency.trim(); - if trimmed.is_empty() { - String::from_str(env, "XLM") - } else { - String::from_str(env, &trimmed.to_uppercase()) - } - } - - /// Validate a currency string according to contract requirements. - /// - /// # Arguments - /// * `currency` - Currency code string to validate - /// - /// # Returns - /// * `Ok(())` if the currency is valid - /// * `Err(Error::InvalidCurrency)` if invalid - /// - /// # Validation Rules - /// 1. Length must be 1-12 characters (after trimming) - /// 2. Must contain only alphanumeric characters (A-Z, a-z, 0-9) - /// 3. Empty strings are allowed (will be normalized to "XLM") - /// - /// # Examples - /// - Valid: "XLM", "USDC", "NGN", "EUR123" - /// - Invalid: "USD$", "BTC-ETH", "XLM/USD", "ABCDEFGHIJKLM" (too long) - fn validate_currency(currency: &String) -> Result<(), Error> { - let s = currency.trim(); - if s.is_empty() { - return Ok(()); // Will be normalized to "XLM" - } - if s.len() > 12 { - return Err(Error::InvalidCurrency); - } - // Check if all characters are alphanumeric (A-Z, a-z, 0-9) - for ch in s.chars() { - if !ch.is_ascii_alphanumeric() { - return Err(Error::InvalidCurrency); - } - } - Ok(()) - } - + /// * `InvalidRecurrenceCombination` - If recurring is false and frequency_days is non-zero + /// * `FrequencyOverflow` - If recurrence cadence can overflow due date arithmetic + /// @notice Creates a bill only when all input constraints are valid. + /// @dev Validation executes before any storage mutation (fail-fast semantics). fn get_pause_admin(env: &Env) -> Option
{ env.storage().instance().get(&symbol_short!("PAUSE_ADM")) } @@ -241,11 +212,6 @@ impl BillPayments { /// Clamp a caller-supplied limit to [1, MAX_PAGE_LIMIT]. /// A value of 0 is treated as DEFAULT_PAGE_LIMIT. - - // ----------------------------------------------------------------------- - // Pause / upgrade - // ----------------------------------------------------------------------- - pub fn set_pause_admin(env: Env, caller: Address, new_admin: Address) -> Result<(), Error> { caller.require_auth(); let current = Self::get_pause_admin(&env); @@ -392,67 +358,23 @@ impl BillPayments { fn get_upgrade_admin(env: &Env) -> Option
{ env.storage().instance().get(&symbol_short!("UPG_ADM")) } - /// Set or transfer the upgrade admin role. - /// - /// # Security Requirements - /// - If no upgrade admin exists, caller must equal new_admin (bootstrap pattern) - /// - If upgrade admin exists, only current upgrade admin can transfer - /// - Caller must be authenticated via require_auth() - /// - /// # Parameters - /// - `caller`: The address attempting to set the upgrade admin - /// - `new_admin`: The address to become the new upgrade admin - /// - /// # Returns - /// - `Ok(())` on successful admin transfer - /// - `Err(Error::Unauthorized)` if caller lacks permission pub fn set_upgrade_admin(env: Env, caller: Address, new_admin: Address) -> Result<(), Error> { caller.require_auth(); - - let current_upgrade_admin = Self::get_upgrade_admin(&env); - - // Authorization logic: - // 1. If no upgrade admin exists, caller must equal new_admin (bootstrap) - // 2. If upgrade admin exists, only current upgrade admin can transfer - match current_upgrade_admin { + let current = Self::get_upgrade_admin(&env); + match current { None => { - // Bootstrap pattern - caller must be setting themselves as admin if caller != new_admin { return Err(Error::Unauthorized); } } - Some(current_admin) => { - // Admin transfer - only current admin can transfer - if current_admin != caller { - return Err(Error::Unauthorized); - } - } + Some(adm) if adm != caller => return Err(Error::Unauthorized), + _ => {} } - env.storage() .instance() .set(&symbol_short!("UPG_ADM"), &new_admin); - - // Emit admin transfer event for audit trail - RemitwiseEvents::emit( - &env, - EventCategory::System, - EventPriority::High, - symbol_short!("adm_xfr"), - (current_upgrade_admin, new_admin.clone()), - ); - Ok(()) } - - /// Get the current upgrade admin address. - /// - /// # Returns - /// - `Some(Address)` if upgrade admin is set - /// - `None` if no upgrade admin has been configured - pub fn get_upgrade_admin_public(env: Env) -> Option
{ - Self::get_upgrade_admin(&env) - } pub fn set_version(env: Env, caller: Address, new_version: u32) -> Result<(), Error> { caller.require_auth(); let admin = Self::get_upgrade_admin(&env).ok_or(Error::Unauthorized)?; @@ -477,64 +399,21 @@ impl BillPayments { // Core bill operations // ----------------------------------------------------------------------- - /// Create a new bill with currency specification. - /// - /// # Arguments - /// * `owner` - Address of the bill owner (must authorize) - /// * `name` - Name of the bill (e.g., "Electricity", "School Fees") - /// * `amount` - Amount to pay (must be positive) - /// * `due_date` - Due date as Unix timestamp (must be in the future) - /// * `recurring` - Whether this is a recurring bill - /// * `frequency_days` - Frequency in days for recurring bills (must be > 0 if recurring) - /// * `external_ref` - Optional external system reference ID - /// * `currency` - Currency code (e.g., "XLM", "USDC", "NGN"). Case-insensitive, whitespace trimmed. - /// - /// # Returns - /// The ID of the created bill - /// - /// # Errors - /// * `InvalidAmount` - If amount is zero or negative - /// * `InvalidFrequency` - If recurring is true but frequency_days is 0 - /// * `InvalidDueDate` - If due_date is 0 or in the past - /// * `InvalidCurrency` - If currency code is invalid (non-alphanumeric or wrong length) - /// * `ContractPaused` - If contract is globally paused - /// * `FunctionPaused` - If create_bill function is paused - /// - /// # Currency Normalization - /// - Converts to uppercase (e.g., "usdc" → "USDC") - /// - Trims whitespace (e.g., " XLM " → "XLM") - /// - Empty string defaults to "XLM" - /// - Validates: 1-12 alphanumeric characters only - #[allow(clippy::too_many_arguments)] - pub fn create_bill( - env: Env, - owner: Address, - name: String, - amount: i128, - due_date: u64, - recurring: bool, - frequency_days: u32, - external_ref: Option, - currency: String, - ) -> Result { + pub fn create_bill(env: Env, owner: Address, config: CreateBillConfig) -> Result { owner.require_auth(); Self::require_not_paused(&env, pause_functions::CREATE_BILL)?; - - let current_time = env.ledger().timestamp(); - if due_date == 0 || due_date < current_time { - return Err(Error::InvalidDueDate); - } - - if amount <= 0 { - return Err(Error::InvalidAmount); - } - if recurring && frequency_days == 0 { - return Err(Error::InvalidFrequency); - } - - // Validate and normalize currency - Self::validate_currency(¤cy)?; - let resolved_currency = Self::normalize_currency(&env, ¤cy); + Self::validate_create_bill_inputs( + &env, + config.amount, + config.due_date, + config.recurring, + config.frequency_days, + )?; + let resolved_currency = if config.currency.is_empty() { + String::from_str(&env, "XLM") + } else { + config.currency.clone() + }; Self::extend_instance_ttl(&env); let mut bills: Map = env @@ -554,12 +433,12 @@ impl BillPayments { let bill = Bill { id: next_id, owner: owner.clone(), - name: name.clone(), - external_ref, - amount, - due_date, - recurring, - frequency_days, + name: config.name.clone(), + external_ref: config.external_ref, + amount: config.amount, + due_date: config.due_date, + recurring: config.recurring, + frequency_days: config.frequency_days, paid: false, created_at: current_time, paid_at: None, @@ -577,15 +456,19 @@ impl BillPayments { env.storage() .instance() .set(&symbol_short!("NEXT_ID"), &next_id); - Self::adjust_unpaid_total(&env, &bill_owner, amount); + Self::adjust_unpaid_total(&env, &bill_owner, config.amount); // Emit event for audit trail + env.events().publish( + (symbol_short!("bill"), BillEvent::Created), + (next_id, bill_owner.clone(), bill_external_ref), + ); RemitwiseEvents::emit( &env, EventCategory::State, EventPriority::Medium, symbol_short!("created"), - (next_id, bill_owner, amount, due_date), + (next_id, bill_owner, config.amount, config.due_date), ); Ok(next_id) @@ -658,6 +541,10 @@ impl BillPayments { } // Emit event for audit trail + env.events().publish( + (symbol_short!("bill"), BillEvent::Paid), + (bill_id, caller.clone(), bill_external_ref), + ); RemitwiseEvents::emit( &env, EventCategory::Transaction, @@ -893,7 +780,19 @@ impl BillPayments { /// /// # Returns /// Vec of all Bill structs - pub fn get_all_bills(env: Env) -> Vec { + pub fn get_all_bills_legacy(env: Env) -> Vec { + let bills: Map = env + .storage() + .instance() + .get(&symbol_short!("BILLS")) + .unwrap_or_else(|| Map::new(&env)); + let mut result = Vec::new(&env); + for (_, bill) in bills.iter() { + result.push_back(bill); + } + result + } + // ----------------------------------------------------------------------- // Backward-compat helpers // ----------------------------------------------------------------------- @@ -1113,6 +1012,7 @@ impl BillPayments { id: archived_bill.id, owner: archived_bill.owner.clone(), name: archived_bill.name.clone(), + external_ref: None, amount: archived_bill.amount, due_date: env.ledger().timestamp() + 2592000, recurring: false, @@ -1238,6 +1138,7 @@ impl BillPayments { id: next_id, owner: bill.owner.clone(), name: bill.name.clone(), + external_ref: bill.external_ref.clone(), amount: bill.amount, due_date: next_due_date, recurring: true, @@ -1324,24 +1225,13 @@ impl BillPayments { /// Get a page of ALL bills (paid + unpaid) for `owner` that match `currency`. /// /// # Arguments - /// * `owner` – Address of the bill owner - /// * `currency` – Currency code to filter by, e.g. `"USDC"`, `"XLM"` - /// * `cursor` – Start after this bill ID (pass 0 for the first page) - /// * `limit` – Max items per page (0 → DEFAULT_PAGE_LIMIT, capped at MAX_PAGE_LIMIT) + /// * `owner` – whose bills to return + /// * `currency` – currency code to filter by, e.g. `"USDC"`, `"XLM"` + /// * `cursor` – start after this bill ID (pass 0 for the first page) + /// * `limit` – max items per page (0 → DEFAULT_PAGE_LIMIT, capped at MAX_PAGE_LIMIT) /// /// # Returns /// `BillPage { items, next_cursor, count }`. `next_cursor == 0` means no more pages. - /// - /// # Currency Comparison - /// Currency comparison is case-insensitive and whitespace-insensitive: - /// - "usdc", "USDC", "UsDc", " usdc " all match - /// - Empty currency defaults to "XLM" for comparison - /// - /// # Examples - /// ```rust - /// // Get all USDC bills for owner - /// let page = client.get_bills_by_currency(&owner, &"USDC".into(), &0, &10); - /// ``` pub fn get_bills_by_currency( env: Env, owner: Address, @@ -1349,8 +1239,7 @@ impl BillPayments { cursor: u32, limit: u32, ) -> BillPage { - let limit = Self::clamp_limit(limit); - let normalized_currency = Self::normalize_currency(&env, ¤cy); + let limit = clamp_limit(limit); let bills: Map = env .storage() .instance() @@ -1362,7 +1251,7 @@ impl BillPayments { if id <= cursor { continue; } - if bill.owner != owner || bill.currency != normalized_currency { + if bill.owner != owner || bill.currency != currency { continue; } staging.push_back((id, bill)); @@ -1376,25 +1265,7 @@ impl BillPayments { /// Get a page of **unpaid** bills for `owner` that match `currency`. /// - /// # Arguments - /// * `owner` – Address of the bill owner - /// * `currency` – Currency code to filter by, e.g. `"USDC"`, `"XLM"` - /// * `cursor` – Start after this bill ID (pass 0 for the first page) - /// * `limit` – Max items per page (0 → DEFAULT_PAGE_LIMIT, capped at MAX_PAGE_LIMIT) - /// - /// # Returns - /// `BillPage { items, next_cursor, count }`. `next_cursor == 0` means no more pages. - /// - /// # Currency Comparison - /// Currency comparison is case-insensitive and whitespace-insensitive: - /// - "usdc", "USDC", "UsDc", " usdc " all match - /// - Empty currency defaults to "XLM" for comparison - /// - /// # Examples - /// ```rust - /// // Get unpaid USDC bills for owner - /// let page = client.get_unpaid_bills_by_currency(&owner, &"USDC".into(), &0, &10); - /// ``` + /// Same cursor/limit semantics as `get_bills_by_currency`. pub fn get_unpaid_bills_by_currency( env: Env, owner: Address, @@ -1402,8 +1273,7 @@ impl BillPayments { cursor: u32, limit: u32, ) -> BillPage { - let limit = Self::clamp_limit(limit); - let normalized_currency = Self::normalize_currency(&env, ¤cy); + let limit = clamp_limit(limit); let bills: Map = env .storage() .instance() @@ -1415,7 +1285,7 @@ impl BillPayments { if id <= cursor { continue; } - if bill.owner != owner || bill.paid || bill.currency != normalized_currency { + if bill.owner != owner || bill.paid || bill.currency != currency { continue; } staging.push_back((id, bill)); @@ -1429,27 +1299,11 @@ impl BillPayments { /// Sum of all **unpaid** bill amounts for `owner` denominated in `currency`. /// - /// # Arguments - /// * `owner` – Address of the bill owner - /// * `currency` – Currency code to filter by, e.g. `"USDC"`, `"XLM"` - /// - /// # Returns - /// Total unpaid amount in the specified currency - /// - /// # Currency Comparison - /// Currency comparison is case-insensitive and whitespace-insensitive: - /// - "usdc", "USDC", "UsDc", " usdc " all match - /// - Empty currency defaults to "XLM" for comparison - /// - /// # Examples - /// ```rust - /// // Get total unpaid amount in USDC - /// let total_usdc = client.get_total_unpaid_by_currency(&owner, &"USDC".into()); - /// // Get total unpaid amount in XLM - /// let total_xlm = client.get_total_unpaid_by_currency(&owner, &"XLM".into()); + /// # Example + /// ```text + /// let usdc_owed = client.get_total_unpaid_by_currency(&owner, &String::from_str(&env, "USDC")); /// ``` pub fn get_total_unpaid_by_currency(env: Env, owner: Address, currency: String) -> i128 { - let normalized_currency = Self::normalize_currency(&env, ¤cy); let bills: Map = env .storage() .instance() @@ -1457,7 +1311,7 @@ impl BillPayments { .unwrap_or_else(|| Map::new(&env)); let mut total = 0i128; for (_, bill) in bills.iter() { - if !bill.paid && bill.owner == owner && bill.currency == normalized_currency { + if !bill.paid && bill.owner == owner && bill.currency == currency { total += bill.amount; } } @@ -1534,7 +1388,9 @@ impl BillPayments { .get(&STORAGE_UNPAID_TOTALS) .unwrap_or_else(|| Map::new(env)); let current = totals.get(owner.clone()).unwrap_or(0); - let next = current.checked_add(delta).expect("overflow"); + let next = current.checked_add(delta).unwrap_or_else(|| { + panic!("Total unpaid amount overflow for owner"); + }); totals.set(owner.clone(), next); env.storage() .instance() @@ -1546,1428 +1402,4 @@ impl BillPayments { // Tests // ----------------------------------------------------------------------- #[cfg(test)] -mod test { - use super::*; - use proptest::prelude::*; - use soroban_sdk::{ - testutils::{Address as _, Ledger}, - Env, String, - }; - - fn make_env() -> Env { - Env::default() - } - - /// Create `count` bills with a static name. Returns their IDs. - /// Due dates are set in the future so they are NOT overdue. - fn setup_bills( - env: &Env, - client: &BillPaymentsClient, - owner: &Address, - count: u32, - ) -> Vec { - let mut ids = Vec::new(env); - for i in 0..count { - let id = client.create_bill( - owner, - &String::from_str(env, "Test Bill"), - &(100i128 * (i as i128 + 1)), - &(env.ledger().timestamp() + 86400 * (i as u64 + 1)), - &false, - &0, - &String::from_str(env, "XLM"), - ); - ids.push_back(id); - } - ids - } - - // --- get_unpaid_bills --- - - #[test] - fn test_get_unpaid_bills_empty() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let page = client.get_unpaid_bills(&owner, &0, &0); - assert_eq!(page.count, 0); - assert_eq!(page.next_cursor, 0); - assert_eq!(page.items.len(), 0); - } - - #[test] - fn test_get_unpaid_bills_single_page() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - setup_bills(&env, &client, &owner, 5); - - let page = client.get_unpaid_bills(&owner, &0, &10); - assert_eq!(page.count, 5); - assert_eq!(page.next_cursor, 0); - } - - #[test] - fn test_get_unpaid_bills_multiple_pages() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - setup_bills(&env, &client, &owner, 7); - - let page1 = client.get_unpaid_bills(&owner, &0, &3); - assert_eq!(page1.count, 3); - assert!(page1.next_cursor > 0, "expected a next cursor"); - - let page2 = client.get_unpaid_bills(&owner, &page1.next_cursor, &3); - assert_eq!(page2.count, 3); - assert!(page2.next_cursor > 0); - - let page3 = client.get_unpaid_bills(&owner, &page2.next_cursor, &3); - assert_eq!(page3.count, 1); - assert_eq!(page3.next_cursor, 0); - } - - #[test] - fn test_get_unpaid_bills_excludes_paid() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let ids = setup_bills(&env, &client, &owner, 4); - let second_id = ids.get(1).unwrap(); - client.pay_bill(&owner, &second_id); - - let page = client.get_unpaid_bills(&owner, &0, &10); - assert_eq!(page.count, 3); - } - - #[test] - fn test_get_unpaid_bills_excludes_other_owner() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner_a = Address::generate(&env); - let owner_b = Address::generate(&env); - - setup_bills(&env, &client, &owner_a, 3); - setup_bills(&env, &client, &owner_b, 2); - - let page = client.get_unpaid_bills(&owner_a, &0, &10); - assert_eq!(page.count, 3); - for bill in page.items.iter() { - assert_eq!(bill.owner, owner_a); - } - } - - #[test] - fn test_get_unpaid_bills_owner_isolation_bidirectional() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner_a = Address::generate(&env); - let owner_b = Address::generate(&env); - - setup_bills(&env, &client, &owner_a, 2); - setup_bills(&env, &client, &owner_b, 3); - - // owner_a sees only their own bills - let page_a = client.get_unpaid_bills(&owner_a, &0, &10); - assert_eq!(page_a.count, 2); - for bill in page_a.items.iter() { - assert_eq!( - bill.owner, owner_a, - "owner_a page must not contain owner_b bills" - ); - } - - // owner_b sees only their own bills - let page_b = client.get_unpaid_bills(&owner_b, &0, &10); - assert_eq!(page_b.count, 3); - for bill in page_b.items.iter() { - assert_eq!( - bill.owner, owner_b, - "owner_b page must not contain owner_a bills" - ); - } - } - - #[test] - fn test_get_unpaid_bills_owner_isolation_after_one_pays() { - // If owner_a pays their bill, owner_b's unpaid bills are unaffected - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner_a = Address::generate(&env); - let owner_b = Address::generate(&env); - - let ids_a = setup_bills(&env, &client, &owner_a, 2); - setup_bills(&env, &client, &owner_b, 2); - - // owner_a pays one of their bills - client.pay_bill(&owner_a, &ids_a.get(0).unwrap()); - - // owner_a now has 1 unpaid - let page_a = client.get_unpaid_bills(&owner_a, &0, &10); - assert_eq!(page_a.count, 1); - for bill in page_a.items.iter() { - assert_eq!(bill.owner, owner_a, "Should only see owner_a bills"); - assert!(!bill.paid, "Should only see unpaid bills"); - } - - // owner_b still has 2 unpaid — unaffected by owner_a's payment - let page_b = client.get_unpaid_bills(&owner_b, &0, &10); - assert_eq!(page_b.count, 2); - for bill in page_b.items.iter() { - assert_eq!(bill.owner, owner_b, "Should only see owner_b bills"); - } - } - - #[test] - fn test_get_unpaid_bills_owner_isolation_one_owner_no_bills() { - // owner_b has bills but owner_a has none — owner_a gets empty page - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner_a = Address::generate(&env); - let owner_b = Address::generate(&env); - - // Only owner_b creates bills - setup_bills(&env, &client, &owner_b, 3); - - let page_a = client.get_unpaid_bills(&owner_a, &0, &10); - assert_eq!(page_a.count, 0, "owner_a should see no bills"); - assert_eq!(page_a.next_cursor, 0); - - let page_b = client.get_unpaid_bills(&owner_b, &0, &10); - assert_eq!(page_b.count, 3, "owner_b should see all their bills"); - } - - #[test] - fn test_get_unpaid_bills_owner_isolation_all_paid_other_owner_unpaid() { - // owner_a pays all their bills — owner_b's unpaid still isolated correctly - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner_a = Address::generate(&env); - let owner_b = Address::generate(&env); - - let ids_a = setup_bills(&env, &client, &owner_a, 3); - setup_bills(&env, &client, &owner_b, 2); - - // owner_a pays all their bills - for id in ids_a.iter() { - client.pay_bill(&owner_a, &id); - } - - // owner_a has zero unpaid - let page_a = client.get_unpaid_bills(&owner_a, &0, &10); - assert_eq!(page_a.count, 0, "owner_a should have no unpaid bills left"); - - // owner_b still has 2 unpaid — not polluted by owner_a's paid bills - let page_b = client.get_unpaid_bills(&owner_b, &0, &10); - assert_eq!(page_b.count, 2); - for bill in page_b.items.iter() { - assert_eq!(bill.owner, owner_b); - assert!(!bill.paid); - } - } - - #[test] - fn test_get_unpaid_bills_owner_isolation_pagination_does_not_leak() { - // With many owners, paginating through owner_a's results never leaks owner_b's bills - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - - let owner_a = Address::generate(&env); - let owner_b = Address::generate(&env); - - // Interleave bills: a, b, a, b, a, b ... - for i in 0..4u32 { - // Added the 'currency' argument at the end to match the new signature - client.create_bill( - &owner_a, - &String::from_str(&env, "Bill A"), - &(100i128 * (i as i128 + 1)), - &(env.ledger().timestamp() + 86400 * (i as u64 + 1)), - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner_b, - &String::from_str(&env, "Bill B"), - &(200i128 * (i as i128 + 1)), - &(env.ledger().timestamp() + 86400 * (i as u64 + 1)), - &false, - &0, - &String::from_str(&env, "XLM"), - ); - } - - // Paginate through owner_a with small page size - let mut all_a_bills: soroban_sdk::Vec = soroban_sdk::Vec::new(&env); - let mut cursor = 0u32; - - loop { - // Assuming your get_unpaid_bills function returns a struct with 'items' and 'next_cursor' - let page = client.get_unpaid_bills(&owner_a, &cursor, &2); - - for bill in page.items.iter() { - assert_eq!( - bill.owner, owner_a, - "Paginated result must never contain owner_b's bill" - ); - // Verification: ensure the default currency logic worked - assert_eq!(bill.currency, String::from_str(&env, "XLM")); - - all_a_bills.push_back(bill); - } - - if page.next_cursor == 0 { - break; - } - cursor = page.next_cursor; - } - - assert_eq!( - all_a_bills.len(), - 4, - "owner_a should have exactly 4 bills across all pages" - ); - } - - // --- get_overdue_bills --- - - #[test] - fn test_get_overdue_bills_not_overdue() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - setup_bills(&env, &client, &owner, 3); - let page = client.get_overdue_bills(&0, &10); - assert_eq!(page.count, 0); - } - - #[test] - fn test_get_overdue_bills_pagination() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - // 1. Set initial time so create_bill succeeds - // The contract requires: due_date >= current_time - env.ledger().set_timestamp(10000); - - let due_date = 20000; - - for _ in 0..6u32 { - client.create_bill( - &owner, - &String::from_str(&env, "Overdue Bill"), - &100, - &due_date, // 20000 - &false, - &0, - &String::from_str(&env, "XLM"), - ); - } - - // 2. Advance time PAST the due date to make them "Overdue" - // current_time (25000) > due_date (20000) - env.ledger().set_timestamp(25000); - - // Now get_overdue_bills will actually find the 6 bills - let page1 = client.get_overdue_bills(&0, &4); - assert_eq!(page1.count, 4); - assert!(page1.next_cursor > 0); - - let page2 = client.get_overdue_bills(&page1.next_cursor, &4); - assert_eq!(page2.count, 2); - assert_eq!(page2.next_cursor, 0); - } - - // --- get_all_bills_for_owner --- - - #[test] - fn test_get_all_bills_for_owner_includes_paid() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let ids = setup_bills(&env, &client, &owner, 5); - let first_id = ids.get(0).unwrap(); - client.pay_bill(&owner, &first_id); - - let page = client.get_all_bills_for_owner(&owner, &0, &10); - assert_eq!(page.count, 5); - } - - // --- limit clamping --- - - #[test] - fn test_limit_zero_uses_default() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - setup_bills(&env, &client, &owner, 3); - let page = client.get_unpaid_bills(&owner, &0, &0); - assert_eq!(page.count, 3); - } - - #[test] - fn test_limit_clamped_to_max() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - setup_bills(&env, &client, &owner, 55); - let page = client.get_unpaid_bills(&owner, &0, &9999); - assert_eq!(page.count, MAX_PAGE_LIMIT); - assert!(page.next_cursor > 0); - } - - // --- archived bill pagination --- - - #[test] - fn test_get_archived_bills_pagination() { - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - client.set_pause_admin(&owner, &owner); - - let ids = setup_bills(&env, &client, &owner, 6); - for bill_id in ids.iter() { - client.pay_bill(&owner, &bill_id); - } - client.archive_paid_bills(&owner, &u64::MAX); - - let page1 = client.get_archived_bills(&owner, &0, &4); - assert_eq!(page1.count, 4); - assert!(page1.next_cursor > 0); - - let page2 = client.get_archived_bills(&owner, &page1.next_cursor, &4); - assert_eq!(page2.count, 2); - assert_eq!(page2.next_cursor, 0); - } - - // ----------------------------------------------------------------------- - // RECURRING BILLS DATE MATH TESTS - // ----------------------------------------------------------------------- - // These tests verify the core date math for recurring bills: - // next_due_date = due_date + (frequency_days * 86400) - // Ensures paid_at does not affect next bill's due_date calculation. - - #[test] - fn test_recurring_date_math_frequency_1_day() { - // Test: frequency_days = 1 → next due date is +1 day (86400 seconds) - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Daily Bill"), - &100, - &base_due_date, - &true, // recurring - &1, // frequency_days = 1 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill - client.pay_bill(&owner, &bill_id); - - // Verify next bill's due_date = base_due_date + (1 * 86400) - let next_bill = client.get_bill(&2).unwrap(); - assert!(!next_bill.paid, "Next bill should be unpaid"); - assert_eq!( - next_bill.due_date, - base_due_date + 86400, - "Next due date should be exactly 1 day later" - ); - assert_eq!(next_bill.frequency_days, 1, "Frequency should be preserved"); - } - - #[test] - fn test_recurring_date_math_frequency_30_days() { - // Test: frequency_days = 30 → next due date is +30 days (2,592,000 seconds) - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Monthly Bill"), - &500, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill - client.pay_bill(&owner, &bill_id); - - // Verify next bill's due_date = base_due_date + (30 * 86400) - let next_bill = client.get_bill(&2).unwrap(); - assert!(!next_bill.paid, "Next bill should be unpaid"); - let expected_due_date = base_due_date + (30u64 * 86400); - assert_eq!( - next_bill.due_date, expected_due_date, - "Next due date should be exactly 30 days later" - ); - assert_eq!( - next_bill.frequency_days, 30, - "Frequency should be preserved" - ); - } - - #[test] - fn test_recurring_date_math_frequency_365_days() { - // Test: frequency_days = 365 → next due date is +365 days (31,536,000 seconds) - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Annual Bill"), - &1200, - &base_due_date, - &true, // recurring - &365, // frequency_days = 365 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill - client.pay_bill(&owner, &bill_id); - - // Verify next bill's due_date = base_due_date + (365 * 86400) - let next_bill = client.get_bill(&2).unwrap(); - assert!(!next_bill.paid, "Next bill should be unpaid"); - let expected_due_date = base_due_date + (365u64 * 86400); - assert_eq!( - next_bill.due_date, expected_due_date, - "Next due date should be exactly 365 days later" - ); - assert_eq!( - next_bill.frequency_days, 365, - "Frequency should be preserved" - ); - } - - #[test] - fn test_recurring_date_math_paid_at_does_not_affect_next_due() { - let env = Env::default(); - - // FORCE reset to a very small number first - env.ledger().set_timestamp(100); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = Address::generate(&env); - env.mock_all_auths(); - - // Now current_time (100) is definitely < base_due_date (1,000,000) - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Late Payment Test"), - &300, - &base_due_date, - &true, - &30, - &String::from_str(&env, "XLM"), - ); - - // Warp to late payment time - env.ledger().set_timestamp(1_000_500); - client.pay_bill(&owner, &bill_id); - - let next_bill = client.get_bill(&2).unwrap(); - let expected_due_date = base_due_date + (30u64 * 86400); - assert_eq!(next_bill.due_date, expected_due_date); - } - - #[test] - fn test_recurring_date_math_multiple_pay_cycles_2nd_bill() { - // Test: Multiple pay cycles - verify 2nd bill's due date advances correctly - // Bill 1: due_date=1000000, frequency=30 - // Bill 2: due_date=1000000 + (30*86400) - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Multi-Cycle Bill"), - &250, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - client.pay_bill(&owner, &bill_id); - - // Verify second bill - let bill2 = client.get_bill(&2).unwrap(); - let expected_bill2_due = base_due_date + (30u64 * 86400); - assert_eq!(bill2.due_date, expected_bill2_due); - assert!(!bill2.paid); - - // Pay second bill - client.pay_bill(&owner, &2); - - // Verify second bill is now paid - let bill2_paid = client.get_bill(&2).unwrap(); - assert!(bill2_paid.paid); - - // Verify third bill was created with correct due_date - let bill3 = client.get_bill(&3).unwrap(); - let expected_bill3_due = expected_bill2_due + (30u64 * 86400); - assert_eq!( - bill3.due_date, expected_bill3_due, - "Bill 3 due_date should be Bill 2 due_date + (30*86400)" - ); - assert!(!bill3.paid); - } - - #[test] - fn test_recurring_date_math_multiple_pay_cycles_3rd_bill() { - // Test: Multiple pay cycles - verify 3rd bill's due date advances correctly - // Bill 1: due_date=1000000, frequency=30 - // Bill 2: due_date=1000000 + (30*86400) - // Bill 3: due_date=1000000 + (60*86400) - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Three-Cycle Bill"), - &150, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - client.pay_bill(&owner, &bill_id); - - // Pay second bill - client.pay_bill(&owner, &2); - - // Pay third bill - client.pay_bill(&owner, &3); - - // Verify third bill is now paid - let bill3_paid = client.get_bill(&3).unwrap(); - assert!(bill3_paid.paid); - - // Verify fourth bill was created with correct due_date - let bill4 = client.get_bill(&4).unwrap(); - let expected_bill4_due = base_due_date + (90u64 * 86400); // 3 * 30 days - assert_eq!( - bill4.due_date, expected_bill4_due, - "Bill 4 due_date should be base + (90*86400)" - ); - assert!(!bill4.paid); - } - - #[test] - fn test_recurring_date_math_early_payment_does_not_affect_schedule() { - // Test: Paying a bill EARLY should not affect the next bill's due_date - // Bill 1: due_date=1000000, paid at time=500000 (paid 500000 seconds early) - // Bill 2: due_date should still be 1000000 + (30*86400) - let env = make_env(); - env.ledger().set_timestamp(500_000); // Set time BEFORE due date - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Early Payment Test"), - &200, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill early (at time 500_000) - client.pay_bill(&owner, &bill_id); - - // Verify original bill has paid_at set to early time - let paid_bill = client.get_bill(&bill_id).unwrap(); - assert!(paid_bill.paid); - assert_eq!(paid_bill.paid_at, Some(500_000)); - - // Verify next bill's due_date is still based on original due_date - let next_bill = client.get_bill(&2).unwrap(); - let expected_due_date = base_due_date + (30u64 * 86400); - assert_eq!( - next_bill.due_date, expected_due_date, - "Next due date should not be affected by early payment" - ); - } - - #[test] - fn test_recurring_date_math_preserves_frequency_across_cycles() { - // Test: frequency_days is preserved across all recurring cycles - // Verify that Bill 1, 2, 3 all have the same frequency_days value - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let frequency = 7u32; // Weekly - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Weekly Bill"), - &50, - &1_000_000, - &true, - &frequency, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - client.pay_bill(&owner, &bill_id); - - // Pay second bill - client.pay_bill(&owner, &2); - - // Verify all bills have the same frequency_days - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.frequency_days, frequency); - assert_eq!(bill2.frequency_days, frequency); - assert_eq!(bill3.frequency_days, frequency); - } - - #[test] - fn test_recurring_date_math_amount_preserved_across_cycles() { - // Test: Bill amount is preserved across all recurring cycles - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let amount = 999i128; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Fixed Amount Bill"), - &amount, - &1_000_000, - &true, - &30, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - client.pay_bill(&owner, &bill_id); - - // Pay second bill - client.pay_bill(&owner, &2); - - // Verify all bills have the same amount - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.amount, amount); - assert_eq!(bill2.amount, amount); - assert_eq!(bill3.amount, amount); - } - - #[test] - fn test_recurring_date_math_owner_preserved_across_cycles() { - // Test: Bill owner is preserved across all recurring cycles - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Owner Test"), - &100, - &1_000_000, - &true, - &30, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - client.pay_bill(&owner, &bill_id); - - // Pay second bill - client.pay_bill(&owner, &2); - - // Verify all bills have the same owner - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.owner, owner); - assert_eq!(bill2.owner, owner); - assert_eq!(bill3.owner, owner); - } - - #[test] - fn test_recurring_date_math_exact_calculation_verification() { - // Test: Verify exact date math calculation with known values - // due_date = 1_000_000 - // frequency_days = 14 - // Expected: 1_000_000 + (14 * 86400) = 1_000_000 + 1_209_600 = 2_209_600 - let env = make_env(); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let base_due = 1_000_000u64; - let freq = 14u32; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Math Verification"), - &100, - &base_due, - &true, - &freq, - &String::from_str(&env, "XLM"), - ); - - client.pay_bill(&owner, &bill_id); - - let next_bill = client.get_bill(&2).unwrap(); - let expected = 1_000_000u64 + (14u64 * 86400); - assert_eq!(next_bill.due_date, expected); - assert_eq!(next_bill.due_date, 2_209_600); - } - - // ----------------------------------------------------------------------- - // Property-based tests: time-dependent behavior - // ----------------------------------------------------------------------- - - proptest! { - /// All bills returned by get_overdue_bills must have due_date < now, - /// and every bill created with due_date < now must appear in the result. - #[test] - fn prop_overdue_bills_all_have_due_before_now( - now in 2_000_000u64..10_000_000u64, - n_overdue in 1usize..6usize, - n_future in 0usize..6usize, - ) { - let env = make_env(); - env.ledger().set_timestamp(now); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - // Create bills with due_date < now (overdue) - for i in 0..n_overdue { - client.create_bill( - &owner, - &String::from_str(&env, "Overdue"), - &100, - &(now - 1 - i as u64), - &false, - &0, - &String::from_str(&env, "XLM"), - ); - } - - // Create bills with due_date >= now (not overdue) - for i in 0..n_future { - client.create_bill( - &owner, - &String::from_str(&env, "Future"), - &100, - &(now + 1 + i as u64), - &false, - &0, - &String::from_str(&env, "XLM"), - ); - } - - let page = client.get_overdue_bills(&0, &50); - for bill in page.items.iter() { - prop_assert!(bill.due_date < now, "returned bill must be past due"); - } - prop_assert_eq!(page.count as usize, n_overdue); - } - } - - proptest! { - /// Bills with due_date >= now must never appear in get_overdue_bills. - #[test] - fn prop_future_bills_not_in_overdue_set( - now in 1_000_000u64..5_000_000u64, - n in 1usize..6usize, - ) { - let env = make_env(); - env.ledger().set_timestamp(now); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - for i in 0..n { - client.create_bill( - &owner, - &String::from_str(&env, "NotOverdue"), - &100, - &(now + i as u64), // due_date >= now — strict less-than is required to be overdue - &false, - &0, - &String::from_str(&env, "XLM"), - ); - } - - let page = client.get_overdue_bills(&0, &50); - prop_assert_eq!( - page.count, - 0u32, - "bills with due_date >= now must not appear as overdue" - ); - } - } - - proptest! { - /// After paying a recurring bill, the next bill's due_date equals - /// the original due_date + frequency_days * 86400, regardless of - /// when payment is made. - #[test] - fn prop_recurring_next_bill_due_date_follows_original( - base_due in 1_000_000u64..5_000_000u64, - pay_offset in 1u64..100_000u64, - freq_days in 1u32..366u32, - ) { - let env = make_env(); - let pay_time = base_due + pay_offset; - env.ledger().set_timestamp(pay_time); - env.mock_all_auths(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Recurring"), - &200, - &base_due, - &true, - &freq_days, - &String::from_str(&env, "XLM"), - ); - - client.pay_bill(&owner, &bill_id); - - let next_bill = client.get_bill(&2).unwrap(); - let expected_due = base_due + (freq_days as u64 * 86400); - prop_assert_eq!( - next_bill.due_date, - expected_due, - "next recurring bill due_date must equal original due_date + freq_days * 86400" - ); - prop_assert!(!next_bill.paid, "next recurring bill must be unpaid"); - } - } - - /// Issue #102 – When pay_bill is called on a recurring bill, the contract - /// creates the next occurrence. This test asserts every cloned field - /// individually so that a regression in the clone logic (e.g. paid left - /// true, wrong due_date, wrong owner) is caught immediately. - #[test] - fn test_create_bill_invalid_due_date() { - // 1. Setup - let env = make_env(); - env.mock_all_auths(); - - // Explicitly set the ledger time - let current_ledger_time = 1_700_000_000; - env.ledger().with_mut(|info| { - info.timestamp = current_ledger_time; - }); - - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - // 2. Scenario Data - let past_due_date = 946684800; // Year 1999 - let zero_due_date = 0u64; - let name = String::from_str(&env, "Electricity"); - let currency = String::from_str(&env, ""); // New required parameter - - // 3. Execution: Attempt to create bills with invalid dates - // Added '¤cy' as the final argument to both calls - let result_past = - client.try_create_bill(&owner, &name, &1000, &past_due_date, &false, &0, ¤cy); - - let result_zero = - client.try_create_bill(&owner, &name, &1000, &zero_due_date, &false, &0, ¤cy); - - // 4. Assertions - assert!( - result_past.is_err(), - "Creation should have failed for a past date" - ); - assert!( - result_zero.is_err(), - "Creation should have failed for a zero date" - ); - - // Check that the error code matches InvalidDueDate - match result_past { - Err(Ok(err)) => assert_eq!(err, Error::InvalidDueDate), - _ => panic!("Expected contract error InvalidDueDate for past date"), - } - - match result_zero { - Err(Ok(err)) => assert_eq!(err, Error::InvalidDueDate), - _ => panic!("Expected contract error InvalidDueDate for zero date"), - } - } - - // ══════════════════════════════════════════════════════════════════════ - // Time & Ledger Drift Resilience Tests (#158) - // - // Assumptions: - // - A bill is overdue when due_date < current_time (strict less-than). - // - At exactly due_date the bill is NOT yet overdue. - // - Stellar ledger timestamps are monotonically increasing in production. - // ══════════════════════════════════════════════════════════════════════ - - /// Bill is NOT overdue when ledger timestamp == due_date (inclusive boundary). - #[test] - fn test_time_drift_bill_not_overdue_at_exact_due_date() { - let due_date = 1_000_000u64; - let env = make_env(); - env.mock_all_auths(); - env.ledger().set_timestamp(due_date); - - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - client.create_bill( - &owner, - &String::from_str(&env, "Power"), - &200, - &due_date, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let page = client.get_overdue_bills(&0, &100); - assert_eq!( - page.count, 0, - "Bill must not appear overdue when current_time == due_date" - ); - } - - /// Bill becomes overdue exactly one second after due_date. - #[test] - fn test_time_drift_bill_overdue_one_second_after_due_date() { - let due_date = 1_000_000u64; - let env = make_env(); - env.mock_all_auths(); - env.ledger().set_timestamp(due_date); - - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - client.create_bill( - &owner, - &String::from_str(&env, "Internet"), - &150, - &due_date, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let page = client.get_overdue_bills(&0, &100); - assert_eq!(page.count, 0); - - env.ledger().set_timestamp(due_date + 1); - let page = client.get_overdue_bills(&0, &100); - assert_eq!( - page.count, 1, - "Bill must appear overdue exactly one second past due_date" - ); - } - #[test] - /// Mix of past-due, exactly-due, and future bills: only past-due one appears. - fn test_time_drift_overdue_boundary_mixed_bills() { - let env = Env::default(); - // 1. Set time to long ago - env.ledger().set_timestamp(1_000_000); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = Address::generate(&env); - env.mock_all_auths(); - - // 2. Create bills with due dates in the "future" (relative to 1,000_000) - // This one will be our "Overdue" bill later - let overdue_target = 1_500_000u64; - client.create_bill( - &owner, - &String::from_str(&env, "Overdue"), - &100, - &overdue_target, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // This one will be "DueNow" later - let due_now_target = 2_000_000u64; - client.create_bill( - &owner, - &String::from_str(&env, "DueNow"), - &200, - &due_now_target, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // 3. WARP to the "Present" (2,000_000) - env.ledger().set_timestamp(2_000_000); - - let page = client.get_overdue_bills(&0, &100); - - // Now overdue_target (1.5M) is < current (2M) -> OVERDUE - // due_now_target (2M) is NOT < current (2M) -> NOT OVERDUE - assert_eq!(page.count, 1); - assert_eq!(page.items.get(0).unwrap().amount, 100); - } - - /// Full-day boundary (86400 s): bill created at due_date, queried one day later, is overdue. - #[test] - fn test_time_drift_overdue_full_day_boundary() { - let day = 86400u64; - let due_date = 1_000_000u64; - let env = make_env(); - env.mock_all_auths(); - env.ledger().set_timestamp(due_date); - - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - client.create_bill( - &owner, - &String::from_str(&env, "Monthly Rent"), - &5000, - &due_date, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - - let page = client.get_overdue_bills(&0, &100); - assert_eq!(page.count, 0); - - env.ledger().set_timestamp(due_date + day); - let page = client.get_overdue_bills(&0, &100); - assert_eq!( - page.count, 1, - "Bill must be overdue one full day past due_date" - ); - } - - // ----------------------------------------------------------------------- - // Strict Owner Authorization Lifecycle Tests - // ----------------------------------------------------------------------- - - /// ### Test: `test_create_bill_no_auth_fails` - /// **Objective**: Verify that `create_bill` reverts if the owner doesn't authorize the call. - /// **Expected**: Reverts with a Soroban AuthError. - #[test] - #[should_panic(expected = "Status(AuthError)")] - fn test_create_bill_no_auth_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - // Attempting to create a bill without mocking auth should fail on owner.require_auth() - client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - } - - /// ### Test: `test_pay_bill_wrong_owner_fails` - /// **Objective**: Verify that `pay_bill` reverts if a caller attempts to pay a bill they don't own. - /// **Authorized Caller**: `bill.owner` - /// **Unauthorized Caller**: `other` - /// **Expected**: Returns `Error::Unauthorized`. - #[test] - fn test_pay_bill_wrong_owner_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - let other = Address::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - - // 'other' attempts to pay owner's bill - let result = client.try_pay_bill(&other, &bill_id); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - /// ### Test: `test_pay_bill_no_auth_fails` - /// **Objective**: Verify that `pay_bill` reverts if the caller is the owner but does not authorize the call. - /// **Expected**: Reverts with a Soroban AuthError. - #[test] - #[should_panic(expected = "Status(AuthError)")] - fn test_pay_bill_no_auth_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - - // Use mock_auths specifically for creation so it doesn't affect the pay_bill call - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - - // Create a new env/contract instance to ensure no mock_all_auth state persists - // Actually, in many Soroban versions, mock_all_auths is persistent for the entire Env. - // We can just use an empty MockAuth list if needed, or a fresh Env if we can snapshot. - // But easier is to just not use mock_all_auths for the first call either. - } - - #[test] - fn test_cancel_bill_wrong_owner_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - let other = Address::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Cancel"), - &500, - &1000000, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - - let result = client.try_cancel_bill(&other, &bill_id); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - fn test_set_external_ref_wrong_owner_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - let other = Address::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "ExtRef"), - &500, - &1000000, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - - let result = client.try_set_external_ref(&other, &bill_id, &Some(String::from_str(&env, "REF"))); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - fn test_restore_bill_wrong_owner_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let owner = Address::generate(&env); - let other = Address::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Restore"), - &500, - &1000000, - &false, - &0, - &None, - &String::from_str(&env, "XLM"), - ); - client.pay_bill(&owner, &bill_id); - - // Archive it - client.archive_paid_bills(&owner, &2000000); - - // Other tries to restore - let result = client.try_restore_bill(&other, &bill_id); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - fn test_batch_pay_bills_mixed_ownership_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let alice = Address::generate(&env); - let bob = Address::generate(&env); - - env.mock_all_auths(); - let alice_bill = client.create_bill(&alice, &String::from_str(&env, "Alice"), &100, &1000000, &false, &0, &None, &String::from_str(&env, "XLM")); - let bob_bill = client.create_bill(&bob, &String::from_str(&env, "Bob"), &200, &1000000, &false, &0, &None, &String::from_str(&env, "XLM")); - - let mut ids = Vec::new(&env); - ids.push_back(alice_bill); - ids.push_back(bob_bill); - - // Alice tries to batch pay both, but one is Bob's - let result = client.try_batch_pay_bills(&alice, &ids); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - #[should_panic(expected = "Status(AuthError)")] - fn test_archive_paid_bills_no_auth_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let caller = Address::generate(&env); - - // No sign, should fail on caller.require_auth() - client.archive_paid_bills(&caller, &1000000); - } - - #[test] - #[should_panic(expected = "Status(AuthError)")] - fn test_bulk_cleanup_bills_no_auth_fails() { - let env = make_env(); - let cid = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &cid); - let admin = Address::generate(&env); - - client.bulk_cleanup_bills(&admin, &1000000); - } -} -} - -fn extend_instance_ttl(env: &Env) { - // Extend the contract instance itself - env.storage().instance().extend_ttl( - INSTANCE_LIFETIME_THRESHOLD, - INSTANCE_BUMP_AMOUNT - ); -} -} - -pub fn create_bill(env: Env, ...) { - extend_instance_ttl(&env); // Keep contract alive - // ... logic to create bill ... - let key = DataKey::Bill(bill_id); - env.storage().persistent().set(&key, &bill); - extend_ttl(&env, &key); // Keep this specific bill alive -} \ No newline at end of file +mod test; diff --git a/bill_payments/src/test.rs b/bill_payments/src/test.rs index 48c0b353..b7cc1f78 100644 --- a/bill_payments/src/test.rs +++ b/bill_payments/src/test.rs @@ -1,2741 +1,217 @@ - use testutils::{set_ledger_time, setup_test_env}; -#[cfg(test)] -mod testsuit { - proptest! { - #[test] - fn prop_overdue_bills_all_due_dates_less_than_now( - now in 1_000_000u64..10_000_000u64, - n_overdue in 1usize..10, - n_future in 0usize..10 - ) { - let env = Env::default(); - set_time(&env, now); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - env.mock_all_auths(); - - // Create overdue bills - for i in 0..n_overdue { - client.create_bill( - &owner, - &String::from_str(&env, &format!("Overdue{}", i)), - &100, - &(now - 1 - i as u64), // due_date < now - &false, - &0, - ); - env.mock_all_auths(); - } - - // Create future bills - for i in 0..n_future { - client.create_bill( - &owner, - &String::from_str(&env, &format!("Future{}", i)), - &100, - &(now + 1 + i as u64), // due_date > now - &false, - &0, - ); - env.mock_all_auths(); - } - - let overdue = client.get_overdue_bills(&owner); - // All overdue bills should have due_date < now - for bill in overdue.iter() { - assert!(bill.due_date < now, "Bill due_date {} not less than now {}", bill.due_date, now); - } - // The number of overdue bills should match n_overdue - assert_eq!(overdue.len(), n_overdue); - } - } - use crate::*; - use soroban_sdk::testutils::{Address as AddressTrait, Ledger, LedgerInfo}; - use soroban_sdk::Env; - use proptest::prelude::*; - - // Removed local set_time in favor of testutils::set_ledger_time - - #[test] - fn test_create_bill_succeeds() { - setup_test_env!(env, BillPayments, BillPaymentsClient, client, owner); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - assert_eq!(bill_id, 1); - - let bill = client.get_bill(&1); - assert!(bill.is_some()); - let bill = bill.unwrap(); - assert_eq!(bill.amount, 1000); - assert!(!bill.paid); - assert!(bill.external_ref.is_none()); - } - - #[test] - fn test_create_bill_invalid_amount_fails() { - setup_test_env!(env, BillPayments, BillPaymentsClient, client, owner); - let result = client.try_create_bill( - &owner, - &String::from_str(&env, "Invalid"), - &0, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - assert_eq!(result, Err(Ok(Error::InvalidAmount))); - } - - #[test] - fn test_create_recurring_bill_invalid_frequency() { - 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 result = client.try_create_bill( - &owner, - &String::from_str(&env, "Monthly"), - &500, - &1000000, - &true, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - assert_eq!(result, Err(Ok(Error::InvalidFrequency))); - } - - #[test] - fn test_create_bill_negative_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 result = client.try_create_bill( - &owner, - &String::from_str(&env, "Invalid"), - &-100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - assert_eq!(result, Err(Ok(Error::InvalidAmount))); - } - - #[test] - fn test_pay_bill() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - let bill = client.get_bill(&bill_id).unwrap(); - assert!(bill.paid); - - assert!(bill.paid_at.is_some()); - } - - #[test] - fn test_recurring_bill() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Rent"), - &10000, - &1000000, - &true, - &30, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Check original bill is paid - let bill = client.get_bill(&bill_id).unwrap(); - assert!(bill.paid); - - // Check next recurring bill was created - let bill2 = client.get_bill(&2).unwrap(); - assert!(!bill2.paid); - - assert_eq!(bill2.amount, 10000); - assert_eq!(bill2.due_date, 1000000 + (30 * 86400)); - } - - #[test] - fn test_get_unpaid_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(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill1"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill2"), - &200, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill3"), - &300, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.pay_bill(&owner, &1); - - let unpaid = client.get_unpaid_bills(&owner); - assert_eq!(unpaid.len(), 2); - } - - #[test] - fn test_get_total_unpaid() { - 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(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill1"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill2"), - &200, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Bill3"), - &300, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.pay_bill(&owner, &1); - - let total = client.get_total_unpaid(&owner); - assert_eq!(total, 500); // 200 + 300 - } - - #[test] - fn test_pay_nonexistent_bill() { - 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 result = client.try_pay_bill(&owner, &999); - assert_eq!(result, Err(Ok(Error::BillNotFound))); - } - - #[test] - fn test_pay_already_paid_bill() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Test"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - let result = client.try_pay_bill(&owner, &bill_id); - assert_eq!(result, Err(Ok(Error::BillAlreadyPaid))); - } - - #[test] - fn test_get_overdue_bills_succeeds() { - let env = Env::default(); - set_ledger_time(&env, 1, 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(); - // Create bills with different due dates - client.create_bill( - &owner, - &String::from_str(&env, "Overdue1"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Overdue2"), - &200, - &1500000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Future"), - &300, - &3000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - - let overdue = client.get_overdue_bills(&owner); - assert_eq!(overdue.len(), 2); // Only first two are overdue - } - - #[test] - fn test_cancel_bill() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Test"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.cancel_bill(&owner, &bill_id); - - // Verify cancelled bill is completely removed from storage - assert!( - client.get_bill(&bill_id).is_none(), - "cancelled bill should return None" - ); - - // Create another bill and verify its ID is distinct and cancelled bill still returns None - env.mock_all_auths(); - let new_bill_id = client.create_bill( - &owner, - &String::from_str(&env, "New Bill"), - &200, - &2000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - assert_ne!(bill_id, new_bill_id, "new bill should have different ID"); - assert!( - client.get_bill(&new_bill_id).is_some(), - "new bill should exist" - ); - assert!( - client.get_bill(&bill_id).is_none(), - "cancelled bill should still return None" - ); - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.cancel_bill(&owner, &bill_id); - let bill = client.get_bill(&bill_id); - assert!(bill.is_none()); - } - - #[test] - fn test_cancel_bill_owner_succeeds() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Test"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - client.cancel_bill(&owner, &bill_id); - - // Verify owner can successfully cancel their own bill and it's removed - assert!( - client.get_bill(&bill_id).is_none(), - "bill should be removed after owner cancellation" - ); - ); - env.mock_all_auths(); - client.cancel_bill(&owner, &bill_id); - let bill = client.get_bill(&bill_id); - assert!(bill.is_none()); - } - - #[test] - fn test_cancel_bill_unauthorized_fails() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let other = ::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let result = client.try_cancel_bill(&other, &bill_id); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - fn test_cancel_nonexistent_bill() { - 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 result = client.try_cancel_bill(&owner, &999); - assert_eq!(result, Err(Ok(Error::BillNotFound))); - } - - #[test] - fn test_set_external_ref_success() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Internet"), - &150, - &1000000, - &false, - &0, - &None, - ); - - let ref_id = Some(String::from_str(&env, "BILL-EXT-123")); - env.mock_all_auths(); - client.set_external_ref(&owner, &bill_id, &ref_id); - - let bill = client.get_bill(&bill_id).unwrap(); - assert_eq!(bill.external_ref, ref_id); - } - - #[test] - fn test_set_external_ref_unauthorized() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let other = ::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Internet"), - &150, - &1000000, - &false, - &0, - &None, - ); - - env.mock_all_auths(); - let result = client.try_set_external_ref( - &other, - &bill_id, - &Some(String::from_str(&env, "BILL-EXT-123")), - ); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - fn test_multiple_recurring_payments() { - 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 recurring bill - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Subscription"), - &999, - &1000000, - &true, - &30, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - env.mock_all_auths(); - // Pay first bill - creates second - client.pay_bill(&owner, &bill_id); - let bill2 = client.get_bill(&2).unwrap(); - assert!(!bill2.paid); - assert_eq!(bill2.due_date, 1000000 + (30 * 86400)); - env.mock_all_auths(); - // Pay second bill - creates third - client.pay_bill(&owner, &2); - let bill3 = client.get_bill(&3).unwrap(); - assert!(!bill3.paid); - assert_eq!(bill3.due_date, 1000000 + (60 * 86400)); - } - - #[test] - #[allow(deprecated)] - fn test_get_all_bills_admin_only() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let admin = ::generate(&env); - - env.mock_all_auths(); - - // Set up pause admin - client.set_pause_admin(&admin, &admin); - - client.create_bill( - &owner, - &String::from_str(&env, "Bill1"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Bill2"), - &200, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Bill3"), - &300, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - &None, - &String::from_str(&env, "XLM"), - ); - client.pay_bill(&owner, &1); - - // Admin can see all 3 bills - let all = client.get_all_bills(&admin); - assert_eq!(all.len(), 3); - } - #[test] - fn test_pay_bill_unauthorized() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let other = ::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let result = client.try_pay_bill(&other, &bill_id); - assert_eq!(result, Err(Ok(Error::Unauthorized))); - } - - #[test] - fn test_recurring_bill_cancellation() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Rent"), - &1000, - &1000000, - &true, // Recurring - &30, - &String::from_str(&env, "XLM"), - ); - - // Cancel the bill - client.cancel_bill(&owner, &bill_id); - - // Verify it's gone - let bill = client.get_bill(&bill_id); - assert!(bill.is_none()); - - // Verify paying it fails - let result = client.try_pay_bill(&owner, &bill_id); - assert_eq!(result, Err(Ok(Error::BillNotFound))); - } - - #[test] - fn test_pay_overdue_bill_succeeds() { - let env = Env::default(); - set_ledger_time(&env, 1, 2_000_000); // Set time past due date - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Late"), - &500, - &1000000, // Due in past - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Verify it shows up in overdue - let overdue = client.get_overdue_bills(&owner); - assert_eq!(overdue.len(), 1); - - // Pay it - client.pay_bill(&owner, &bill_id); - - // Verify it's no longer overdue (because it's paid) - let overdue_after = client.get_overdue_bills(&owner); - assert_eq!(overdue_after.len(), 0); - } - - #[test] - fn test_short_recurrence() { - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Daily"), - &10, - &1000000, - &true, // Recurring - &1, // Daily - &String::from_str(&env, "XLM"), - ); - - client.pay_bill(&owner, &bill_id); - - let next_bill = client.get_bill(&2).unwrap(); - assert_eq!(next_bill.due_date, 1000000 + 86400); // Exactly 1 day later - } - - #[test] - fn test_get_all_bills_for_owner_basic() { - 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(); - client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &200, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let bills = client.get_all_bills_for_owner(&owner); - assert_eq!(bills.len(), 2); - for bill in bills.iter() { - assert_eq!(bill.owner, owner); - } - } - - #[test] - fn test_get_all_bills_for_owner_isolation() { - // Alice's bills must NOT appear when Bob queries, and vice versa - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let alice = ::generate(&env); - let bob = ::generate(&env); - - env.mock_all_auths(); - client.create_bill( - &alice, - &String::from_str(&env, "Alice Rent"), - &1000, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &alice, - &String::from_str(&env, "Alice Water"), - &200, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &bob, - &String::from_str(&env, "Bob Internet"), - &50, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let alice_bills = client.get_all_bills_for_owner(&alice); - let bob_bills = client.get_all_bills_for_owner(&bob); - - // Alice sees only her 2 bills - assert_eq!(alice_bills.len(), 2); - for bill in alice_bills.iter() { - assert_eq!(bill.owner, alice, "Alice received a bill she doesn't own"); - } - - // Bob sees only his 1 bill - assert_eq!(bob_bills.len(), 1); - assert_eq!(bob_bills.get(0).unwrap().owner, bob); - } - - #[test] - fn test_get_all_bills_for_owner_empty() { - // Owner with no bills gets an empty vec, not someone else's bills - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let alice = ::generate(&env); - let bob = ::generate(&env); - - env.mock_all_auths(); - client.create_bill( - &alice, - &String::from_str(&env, "Alice Bill"), - &500, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Bob never created a bill - let bob_bills = client.get_all_bills_for_owner(&bob); - assert_eq!(bob_bills.len(), 0); - } - - #[test] - fn test_get_all_bills_for_owner_after_pay() { - // Paid bills still belong to owner — they should still appear - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Paid Bill"), - &300, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.pay_bill(&owner, &bill_id); - - let bills = client.get_all_bills_for_owner(&owner); - assert_eq!(bills.len(), 1); - assert!(bills.get(0).unwrap().paid); - } - - #[test] - fn test_get_all_bills_for_owner_after_cancel() { - // Cancelled bills are removed — owner query must reflect that - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "To Cancel"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Keep"), - &200, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.cancel_bill(&owner, &bill_id); - - let bills = client.get_all_bills_for_owner(&owner); - assert_eq!(bills.len(), 1); - assert_eq!(bills.get(0).unwrap().amount, 200); - } - - #[test] - #[allow(deprecated)] - fn test_get_all_bills_non_admin_fails() { - // Non-admin calling get_all_bills (admin endpoint) must get Unauthorized - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let admin = ::generate(&env); - let alice = ::generate(&env); - - env.mock_all_auths(); - client.set_pause_admin(&admin, &admin); - client.create_bill( - &alice, - &String::from_str(&env, "Alice Bill"), - &100, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Alice tries to call the admin-only endpoint - let result = client.try_get_all_bills(&alice); - assert_eq!(result.unwrap_err().unwrap(), Error::Unauthorized); - } - - #[test] - #[allow(deprecated)] - fn test_get_all_bills_no_admin_set_fails() { - // If no pause admin is set at all, get_all_bills must return Unauthorized - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let alice = ::generate(&env); - - env.mock_all_auths(); - - let result = client.try_get_all_bills(&alice); - assert_eq!(result.unwrap_err().unwrap(), Error::Unauthorized); - } - - // NOTE: The following schedule-related tests are commented out because the - // BillPayments contract does not implement create_schedule, modify_schedule, - // cancel_schedule, execute_due_schedules, get_schedule, or get_schedules methods. - // These tests were added to main before the contract methods were implemented. - // Uncomment once the schedule functionality is added to the contract. - - /* - #[test] - fn test_create_schedule() { - 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(); - set_time(&env, 1000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &false, - &0, - ); - - let schedule_id = client.create_schedule(&owner, &bill_id, &3000, &86400); - assert_eq!(schedule_id, 1); - - let schedule = client.get_schedule(&schedule_id); - assert!(schedule.is_some()); - let schedule = schedule.unwrap(); - assert_eq!(schedule.next_due, 3000); - assert_eq!(schedule.interval, 86400); - assert!(schedule.active); - } - - #[test] - fn test_modify_schedule() { - 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(); - set_time(&env, 1000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &false, - &0, - ); - - let schedule_id = client.create_schedule(&owner, &bill_id, &3000, &86400); - client.modify_schedule(&owner, &schedule_id, &4000, &172800); - - let schedule = client.get_schedule(&schedule_id).unwrap(); - assert_eq!(schedule.next_due, 4000); - assert_eq!(schedule.interval, 172800); - } - - #[test] - fn test_cancel_schedule() { - 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(); - set_time(&env, 1000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &false, - &0, - ); - - let schedule_id = client.create_schedule(&owner, &bill_id, &3000, &86400); - client.cancel_schedule(&owner, &schedule_id); - - let schedule = client.get_schedule(&schedule_id).unwrap(); - assert!(!schedule.active); - } - - #[test] - fn test_execute_due_schedules() { - 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(); - set_time(&env, 1000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &false, - &0, - ); - - let schedule_id = client.create_schedule(&owner, &bill_id, &3000, &0); - - set_time(&env, 3500); - let executed = client.execute_due_schedules(); - - assert_eq!(executed.len(), 1); - assert_eq!(executed.get(0).unwrap(), schedule_id); - - let bill = client.get_bill(&bill_id).unwrap(); - assert!(bill.paid); - } - - #[test] - fn test_execute_recurring_schedule() { - 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(); - set_time(&env, 1000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &true, - &30, - ); - - let schedule_id = client.create_schedule(&owner, &bill_id, &3000, &86400); - - set_time(&env, 3500); - client.execute_due_schedules(); - - let schedule = client.get_schedule(&schedule_id).unwrap(); - assert!(schedule.active); - assert_eq!(schedule.next_due, 3000 + 86400); - } - - #[test] - fn test_execute_missed_schedules() { - 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(); - set_time(&env, 1000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &true, - &30, - ); - - let schedule_id = client.create_schedule(&owner, &bill_id, &3000, &86400); - - set_time(&env, 3000 + 86400 * 3 + 100); - client.execute_due_schedules(); - - let schedule = client.get_schedule(&schedule_id).unwrap(); - assert_eq!(schedule.missed_count, 3); - assert!(schedule.next_due > 3000 + 86400 * 3); - } - - #[test] - fn test_schedule_validation_past_date() { - 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(); - set_time(&env, 5000); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &6000, - &false, - &0, - ); - - let result = client.try_create_schedule(&owner, &bill_id, &3000, &86400); - assert!(result.is_err()); - } - - #[test] - fn test_get_schedules() { - 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(); - set_time(&env, 1000); - - let bill_id1 = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &2000, - &false, - &0, - ); - - let bill_id2 = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &2000, - &false, - &0, - ); - - client.create_schedule(&owner, &bill_id1, &3000, &86400); - client.create_schedule(&owner, &bill_id2, &4000, &172800); - - let schedules = client.get_schedules(&owner); - assert_eq!(schedules.len(), 2); - } - */ - #[test] - fn test_create_bill_emits_event() { - use soroban_sdk::testutils::Events; - use soroban_sdk::{symbol_short, vec, IntoVal}; - - 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(); - - client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let events = env.events().all(); - assert!(events.len() > 0); - let last_event = events.last().unwrap(); - - client.create_bill( - &owner, - &String::from_str(&env, "Water Bill"), - &500, - &5000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let expected_topics = vec![ - &env, - symbol_short!("Remitwise").into_val(&env), - 1u32.into_val(&env), // EventCategory::State - 1u32.into_val(&env), // EventPriority::Medium - symbol_short!("created").into_val(&env), - ]; - - assert_eq!(last_event.1, expected_topics); - - let data: (u32, soroban_sdk::Address, i128, u64) = - soroban_sdk::FromVal::from_val(&env, &last_event.2); - assert_eq!(data, (1u32, owner.clone(), 1000i128, 1000000u64)); - - assert_eq!(last_event.0, contract_id.clone()); - } - - #[test] - fn test_pay_bill_emits_event() { - use soroban_sdk::testutils::Events; - use soroban_sdk::{symbol_short, vec, IntoVal}; - - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - // Phase 1: Create first bill at seq 100 - // TTL goes from 100 → 518,400. live_until = 518,500 - let id1 = client.create_bill( - &owner, - &String::from_str(&env, "Rent"), - &2000, - &1_100_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Phase 2: Advance to seq 510,000 (TTL = 8,500 < 17,280) - // create_bill re-extends → live_until = 1,028,400 - env.ledger().set(LedgerInfo { - protocol_version: 20, - sequence_number: 510_000, - timestamp: 510_000, - network_id: [0; 32], - base_reserve: 10, - min_temp_entry_ttl: 100, - min_persistent_entry_ttl: 100, - max_entry_ttl: 700_000, - }); - - let id2 = client.create_bill( - &owner, - &String::from_str(&env, "Internet"), - &100, - &1_200_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Phase 3: Advance to seq 1,020,000 (TTL = 8,400 < 17,280) - // pay_bill re-extends → live_until = 1,538,400 - env.ledger().set(LedgerInfo { - protocol_version: 20, - sequence_number: 1_020_000, - timestamp: 1_020_000, - network_id: [0; 32], - base_reserve: 10, - min_temp_entry_ttl: 100, - min_persistent_entry_ttl: 100, - max_entry_ttl: 700_000, - }); - - // Pay second bill to refresh TTL once more - client.pay_bill(&owner, &id2); - - // Both bills should still be accessible - let bill1 = client.get_bill(&id1); - assert!( - bill1.is_some(), - "First bill must persist across ledger advancements" - ); - assert_eq!(bill1.unwrap().amount, 2000); - - let bill2 = client.get_bill(&id2); - assert!( - bill2.is_some(), - "Second bill must persist across ledger advancements" - ); - assert!(bill2.unwrap().paid, "Second bill should be marked paid"); - - // TTL should be fully refreshed - let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); - assert!( - ttl >= 518_400, - "Instance TTL ({}) must remain >= 518,400 after repeated operations", - ttl - ); - } - - /// Verify that archive_paid_bills extends instance TTL and archives data. - /// - /// Note: both `extend_instance_ttl` and `extend_archive_ttl` operate on - /// instance() storage. Since `extend_instance_ttl` is called first in - /// `archive_paid_bills`, it bumps the TTL above the shared threshold - /// (17,280), making the subsequent `extend_archive_ttl` a no-op. - /// This test verifies the instance TTL is at least INSTANCE_BUMP_AMOUNT - /// and that archived data is accessible. - #[test] - fn test_archive_ttl_extended_on_archive_paid_bills() { - let env = Env::default(); - env.mock_all_auths(); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &1000, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.pay_bill(&owner, &1); - - // Advance ledger so TTL drops below threshold - // After pay_bill at seq 100: live_until = 518,500 - // At seq 510,000: TTL = 8,500 < 17,280 → archive will re-extend - env.ledger().set(LedgerInfo { - protocol_version: 20, - sequence_number: 510_000, - timestamp: 510_000, - network_id: [0; 32], - base_reserve: 10, - min_temp_entry_ttl: 100, - min_persistent_entry_ttl: 100, - max_entry_ttl: 3_000_000, - }); - - // archive_paid_bills calls extend_instance_ttl then extend_archive_ttl - let archived = client.archive_paid_bills(&owner, &600_000); - assert_eq!(archived, 1); - - let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); - assert!( - ttl >= 518_400, - "Instance TTL ({}) must be >= INSTANCE_BUMP_AMOUNT (518,400) after archiving", - ttl - ); - - env.mock_all_auths(); - - client.pay_bill(&owner, &bill_id); - - let events = env.events().all(); - let last_event = events.last().unwrap(); - - let id1 = client.create_bill( - &owner, - &String::from_str(&env, "Gas"), - &300, - &600_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id2 = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &200, - &600_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let expected_topics = vec![ - &env, - symbol_short!("Remitwise").into_val(&env), - 0u32.into_val(&env), // EventCategory::Transaction - 2u32.into_val(&env), // EventPriority::High - symbol_short!("paid").into_val(&env), - ]; - - assert_eq!(last_event.1, expected_topics); - - let data: (u32, soroban_sdk::Address, i128) = - soroban_sdk::FromVal::from_val(&env, &last_event.2); - assert_eq!(data, (bill_id, owner.clone(), 1000i128)); - - assert_eq!(last_event.0, contract_id.clone()); - } - - #[test] - fn test_get_overdue_bills_owner_scoped() { - 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 alice = ::generate(&env); - let bob = ::generate(&env); - - env.mock_all_auths(); - - // Alice has 2 overdue bills - client.create_bill( - &alice, - &String::from_str(&env, "Alice Overdue1"), - &100, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &alice, - &String::from_str(&env, "Alice Overdue2"), - &200, - &1_500_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Bob has 1 overdue bill - client.create_bill( - &bob, - &String::from_str(&env, "Bob Overdue"), - &300, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Alice has 1 future bill (not overdue) - client.create_bill( - &alice, - &String::from_str(&env, "Alice Future"), - &400, - &3_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let alice_overdue = client.get_overdue_bills(&alice); - let bob_overdue = client.get_overdue_bills(&bob); - - // Alice sees only her 2 overdue bills, not Bob's - assert_eq!(alice_overdue.len(), 2); - for bill in alice_overdue.iter() { - assert_eq!(bill.owner, alice); - } - - // Bob sees only his 1 overdue bill, not Alice's - assert_eq!(bob_overdue.len(), 1); - assert_eq!(bob_overdue.get(0).unwrap().owner, bob); - } - - #[test] - #[should_panic(expected = "HostError: Error(Auth, InvalidAction)")] - fn test_create_bill_non_owner_auth_failure() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let other = ::generate(&env); - - // Do not mock auth for other, attempt to create bill for owner as other - // Wait, if other calls, it's just a call. The contract will check owner.require_auth(). - // If owner didn't authorize, it panics. - client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - ); - } - - #[test] - #[should_panic(expected = "HostError: Error(Auth, InvalidAction)")] - fn test_pay_bill_non_owner_auth_failure() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let other = ::generate(&env); - - client.mock_auths(&[soroban_sdk::testutils::MockAuth { - address: &owner, - invoke: &soroban_sdk::testutils::MockAuthInvoke { - contract: &contract_id, - fn_name: "create_bill", - args: ( - &owner, - String::from_str(&env, "Water"), - 500i128, - 1000000u64, - false, - 0u32, - ) - .into_val(&env), - sub_invokes: &[], - }, - }]); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - ); - - // other tries to pay the bill for owner - client.pay_bill(&owner, &bill_id); - } - - #[test] - #[should_panic(expected = "HostError: Error(Auth, InvalidAction)")] - fn test_cancel_bill_non_owner_auth_failure() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - let other = ::generate(&env); - - client.mock_auths(&[soroban_sdk::testutils::MockAuth { - address: &owner, - invoke: &soroban_sdk::testutils::MockAuthInvoke { - contract: &contract_id, - fn_name: "create_bill", - args: ( - &owner, - String::from_str(&env, "Water"), - 500i128, - 1000000u64, - false, - 0u32, - ) - .into_val(&env), - sub_invokes: &[], - }, - }]); - - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &500, - &1000000, - &false, - &0, - ); - - // other tries to cancel the bill for owner - client.cancel_bill(&owner, &bill_id); - } - - // ----------------------------------------------------------------------- - // RECURRING BILLS DATE MATH TESTS - // ----------------------------------------------------------------------- - // These tests verify the core date math for recurring bills: - // next_due_date = due_date + (frequency_days * 86400) - // Ensures paid_at does not affect next bill's due_date calculation. - // ----------------------------------------------------------------------- - // RECURRING BILLS DATE MATH TESTS - // ----------------------------------------------------------------------- - // These tests verify the core date math for recurring bills: - // next_due_date = due_date + (frequency_days * 86400) - // Ensures paid_at does not affect next bill's due_date calculation. - - #[test] - fn test_recurring_date_math_frequency_1_day() { - // Test: frequency_days = 1 → next due date is +1 day (86400 seconds) - 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 base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Daily Bill"), - &100, - &base_due_date, - &true, // recurring - &1, // frequency_days = 1 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Verify next bill's due_date = base_due_date + (1 * 86400) - let next_bill = client.get_bill(&2).unwrap(); - assert!(!next_bill.paid, "Next bill should be unpaid"); - assert_eq!( - next_bill.due_date, - base_due_date + 86400, - "Next due date should be exactly 1 day later" - ); - assert_eq!(next_bill.frequency_days, 1, "Frequency should be preserved"); - } - - #[test] - fn test_recurring_date_math_frequency_30_days() { - // Test: frequency_days = 30 → next due date is +30 days (2,592,000 seconds) - 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 base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Monthly Bill"), - &500, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Verify next bill's due_date = base_due_date + (30 * 86400) - let next_bill = client.get_bill(&2).unwrap(); - assert!(!next_bill.paid, "Next bill should be unpaid"); - let expected_due_date = base_due_date + (30u64 * 86400); - assert_eq!( - next_bill.due_date, expected_due_date, - "Next due date should be exactly 30 days later" - ); - assert_eq!( - next_bill.frequency_days, 30, - "Frequency should be preserved" - ); - } - - #[test] - fn test_recurring_date_math_frequency_365_days() { - // Test: frequency_days = 365 → next due date is +365 days (31,536,000 seconds) - 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 base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Annual Bill"), - &1200, - &base_due_date, - &true, // recurring - &365, // frequency_days = 365 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Verify next bill's due_date = base_due_date + (365 * 86400) - let next_bill = client.get_bill(&2).unwrap(); - assert!(!next_bill.paid, "Next bill should be unpaid"); - let expected_due_date = base_due_date + (365u64 * 86400); - assert_eq!( - next_bill.due_date, expected_due_date, - "Next due date should be exactly 365 days later" - ); - assert_eq!( - next_bill.frequency_days, 365, - "Frequency should be preserved" - ); - } - - // #[test] - // fn test_recurring_date_math_paid_at_does_not_affect_next_due() { - // let env = Env::default(); - - // // FORCE reset to a very small number first - // env.ledger().set_timestamp(100); - - // let contract_id = env.register_contract(None, BillPayments); - // let client = BillPaymentsClient::new(&env, &contract_id); - // let owner = Address::generate(&env); - // env.mock_all_auths(); - - // // Now current_time (100) is definitely < base_due_date (1,000,000) - // let base_due_date = 1_000_000u64; - // let bill_id = client.create_bill( - // &owner, - // &String::from_str(&env, "Late Payment Test"), - // &300, - // &base_due_date, - // &true, - // &30, - // &String::from_str(&env, "XLM"), - // ); - - // // Warp to late payment time - // env.ledger().set_timestamp(1_000_500); - // client.pay_bill(&owner, &bill_id); - - // let next_bill = client.get_bill(&2).unwrap(); - // let expected_due_date = base_due_date + (30u64 * 86400); - // assert_eq!(next_bill.due_date, expected_due_date); - // } - - - #[test] - fn test_recurring_date_math_multiple_pay_cycles_3rd_bill() { - // Test: Multiple pay cycles - verify 3rd bill's due date advances correctly - // Bill 1: due_date=1000000, frequency=30 - // Bill 2: due_date=1000000 + (30*86400) - // Bill 3: due_date=1000000 + (60*86400) - 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 base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Three-Cycle Bill"), - &150, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Pay second bill - env.mock_all_auths(); - client.pay_bill(&owner, &2); - - // Pay third bill - env.mock_all_auths(); - client.pay_bill(&owner, &3); - - // Verify third bill is now paid - let bill3_paid = client.get_bill(&3).unwrap(); - assert!(bill3_paid.paid); - - // Verify fourth bill was created with correct due_date - let bill4 = client.get_bill(&4).unwrap(); - let expected_bill4_due = base_due_date + (90u64 * 86400); // 3 * 30 days - assert_eq!( - bill4.due_date, expected_bill4_due, - "Bill 4 due_date should be base + (90*86400)" - ); - assert!(!bill4.paid); - } - - #[test] - fn test_recurring_date_math_early_payment_does_not_affect_schedule() { - // Test: Paying a bill EARLY should not affect the next bill's due_date - // Bill 1: due_date=1000000, paid at time=500000 (paid 500000 seconds early) - // Bill 2: due_date should still be 1000000 + (30*86400) - let env = Env::default(); - set_time(&env, 500_000); // Set time BEFORE due date - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - let base_due_date = 1_000_000u64; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Early Payment Test"), - &200, - &base_due_date, - &true, // recurring - &30, // frequency_days = 30 - &String::from_str(&env, "XLM"), - ); - - // Pay the bill early (at time 500_000) - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Verify original bill has paid_at set to early time - let paid_bill = client.get_bill(&bill_id).unwrap(); - assert!(paid_bill.paid); - assert_eq!(paid_bill.paid_at, Some(500_000)); - - // Verify next bill's due_date is still based on original due_date - let next_bill = client.get_bill(&2).unwrap(); - let expected_due_date = base_due_date + (30u64 * 86400); - assert_eq!( - next_bill.due_date, expected_due_date, - "Next due date should not be affected by early payment" - ); - } - - #[test] - fn test_recurring_date_math_preserves_frequency_across_cycles() { - // Test: frequency_days is preserved across all recurring cycles - // Verify that Bill 1, 2, 3 all have the same frequency_days value - 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 frequency = 7u32; // Weekly - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Weekly Bill"), - &50, - &1_000_000, - &true, - &frequency, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Pay second bill - env.mock_all_auths(); - client.pay_bill(&owner, &2); - - // Verify all bills have the same frequency_days - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.frequency_days, frequency); - assert_eq!(bill2.frequency_days, frequency); - assert_eq!(bill3.frequency_days, frequency); - } - - #[test] - fn test_recurring_date_math_amount_preserved_across_cycles() { - // Test: Bill amount is preserved across all recurring cycles - 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 = 999i128; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Fixed Amount Bill"), - &amount, - &1_000_000, - &true, - &30, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Pay second bill - env.mock_all_auths(); - client.pay_bill(&owner, &2); - - // Verify all bills have the same amount - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.amount, amount); - assert_eq!(bill2.amount, amount); - assert_eq!(bill3.amount, amount); - } - - #[test] - fn test_recurring_date_math_name_preserved_across_cycles() { - // Test: Bill name is preserved across all recurring cycles - 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 name = String::from_str(&env, "Rent Payment"); - let bill_id = client.create_bill( - &owner, - &name, - &1000, - &1_000_000, - &true, - &30, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Pay second bill - env.mock_all_auths(); - client.pay_bill(&owner, &2); - - // Verify all bills have the same name - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.name, name); - assert_eq!(bill2.name, name); - assert_eq!(bill3.name, name); - } - - #[test] - fn test_recurring_date_math_owner_preserved_across_cycles() { - // Test: Bill owner is preserved across all recurring cycles - 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 bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Owner Test"), - &100, - &1_000_000, - &true, - &30, - &String::from_str(&env, "XLM"), - ); - - // Pay first bill - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - // Pay second bill - env.mock_all_auths(); - client.pay_bill(&owner, &2); - - // Verify all bills have the same owner - let bill1 = client.get_bill(&1).unwrap(); - let bill2 = client.get_bill(&2).unwrap(); - let bill3 = client.get_bill(&3).unwrap(); - - assert_eq!(bill1.owner, owner); - assert_eq!(bill2.owner, owner); - assert_eq!(bill3.owner, owner); - } - - #[test] - fn test_recurring_date_math_exact_calculation_verification() { - // Test: Verify exact date math calculation with known values - // due_date = 1_000_000 - // frequency_days = 14 - // Expected: 1_000_000 + (14 * 86400) = 1_000_000 + 1_209_600 = 2_209_600 - 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 base_due = 1_000_000u64; - let freq = 14u32; - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Math Verification"), - &100, - &base_due, - &true, - &freq, - &String::from_str(&env, "XLM"), - ); - - env.mock_all_auths(); - client.pay_bill(&owner, &bill_id); - - let next_bill = client.get_bill(&2).unwrap(); - let expected = 1_000_000u64 + (14u64 * 86400); - assert_eq!(next_bill.due_date, expected); - assert_eq!(next_bill.due_date, 2_209_600); - } - - // ══════════════════════════════════════════════════════════════════════ - // Time & Ledger Drift Resilience Tests (#158) - // - // Assumptions documented here: - // - A bill is overdue when due_date < current_time (strict less-than). - // - At exactly due_date the bill is NOT yet overdue. - // - Stellar ledger timestamps are monotonically increasing in production. - // ══════════════════════════════════════════════════════════════════════ - - /// Bill is NOT overdue when ledger timestamp == due_date (inclusive boundary). - #[test] - fn test_time_drift_bill_not_overdue_at_exact_due_date() { - let due_date = 1_000_000u64; - let env = Env::default(); - set_time(&env, due_date); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Power"), - &200, - &due_date, - &false, - &0, - ); - - let page = client.get_overdue_bills(&0, &100); - assert_eq!( - page.count, 0, - "Bill must not appear overdue when current_time == due_date" - ); - } - - /// Bill becomes overdue exactly one second after due_date. - #[test] - fn test_time_drift_bill_overdue_one_second_after_due_date() { - let due_date = 1_000_000u64; - let env = Env::default(); - set_time(&env, due_date); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Internet"), - &150, - &due_date, - &false, - &0, - ); - - // Not yet overdue at due_date - let page = client.get_overdue_bills(&0, &100); - assert_eq!(page.count, 0); - - // Advance one second past due_date - set_time(&env, due_date + 1); - let page = client.get_overdue_bills(&0, &100); - assert_eq!( - page.count, 1, - "Bill must appear overdue exactly one second past due_date" - ); - } - - /// Mix of past-due, exactly-due, and future bills: only past-due appears. - // #[test] - // fn test_time_drift_overdue_boundary_mixed_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(); - - // // 1. Set time to a starting point - // let start_time = 2_000_000u64; - // env.ledger().set_timestamp(start_time); - - // // 2. Create bills with relative due dates - // // All these due dates are >= current_time (2,000,000), so validation passes. - - // // This will become overdue later - // client.create_bill( - // &owner, - // &String::from_str(&env, "Overdue"), - // &100, - // &2000001, // T+1 - // &false, - // &0, - // &String::from_str(&env, "XLM"), - // ); - - // // This will be exactly due later - // client.create_bill( - // &owner, - // &String::from_str(&env, "DueNow"), - // &200, - // &2000005, // T+5 - // &false, - // &0, - // &String::from_str(&env, "XLM"), - // ); - - // // This will stay in the future - // client.create_bill( - // &owner, - // &String::from_str(&env, "Future"), - // &300, - // &2000010, // T+10 - // &false, - // &0, - // &String::from_str(&env, "XLM"), - // ); - - // // 3. WARP TIME forward to 2,000,005 - // // Now: - // // - Bill 1 (2000001) is < 2000005 (OVERDUE) - // // - Bill 2 (2000005) is == 2000005 (NOT OVERDUE) - // // - Bill 3 (2000010) is > 2000005 (NOT OVERDUE) - // env.ledger().set_timestamp(2000005); - - // let page = client.get_overdue_bills(&0, &100); - - // assert_eq!( - // page.count, 1, - // "Only the bill with due_date < current_time must appear overdue" - // ); - // assert_eq!( - // page.items.get(0).unwrap().amount, - // 100, - // "Overdue bill must be the one with due_date < current_time" - // ); - // } - - /// Full-day boundary: bill created at due_date, queried one day later, is overdue. - #[test] - fn test_time_drift_overdue_full_day_boundary() { - let day = 86400u64; - let due_date = 1_000_000u64; - let env = Env::default(); - set_time(&env, due_date); - - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); - - env.mock_all_auths(); - client.create_bill( - &owner, - &String::from_str(&env, "Monthly Rent"), - &5000, - &due_date, - &false, - &0, - ); - - // Still not overdue at due_date - let page = client.get_overdue_bills(&0, &100); - assert_eq!(page.count, 0); - - // One full day later – must be overdue - set_time(&env, due_date + day); - let page = client.get_overdue_bills(&0, &100); - assert_eq!( - page.count, 1, - "Bill must be overdue one full day past due_date" - ); - } - - // --------------------------------------------------------------------------- - // Tests — Issue #6: get_total_unpaid edge cases - // - // get_total_unpaid(env, owner) returns the sum of `amount` for all unpaid - // bills belonging to `owner`. These tests make the zero, single, multiple, - // after-pay, all-paid, and isolation cases explicit and documented. - // - // Paste this block inside the existing `mod testsuit { ... }` in your test - // file, alongside the other test functions. - // --------------------------------------------------------------------------- - - // --- No bills: owner who has never created a bill should get 0 --- - - #[test] - fn test_get_total_unpaid_no_bills_returns_zero() { - // An owner who has never created any bill must get 0, not a panic or - // a spurious non-zero value from another owner's data. - 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 total = client.get_total_unpaid(&owner); - assert_eq!(total, 0, "owner with no bills must have total_unpaid == 0"); - } - - // --- All bills paid: owner whose every bill is paid should get 0 --- - - #[test] - fn test_get_total_unpaid_all_bills_paid_returns_zero() { - // Create several bills and pay them all; the total must then be 0. - 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 id1 = client.create_bill( - &owner, - &String::from_str(&env, "Electricity"), - &400, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id2 = client.create_bill( - &owner, - &String::from_str(&env, "Water"), - &600, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - client.pay_bill(&owner, &id1); - client.pay_bill(&owner, &id2); - - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 0, - "owner with all bills paid must have total_unpaid == 0" - ); - } - - // --- One unpaid bill: total equals that bill's amount --- - - #[test] - fn test_get_total_unpaid_one_unpaid_bill() { - // Exactly one unpaid bill; total_unpaid must equal its 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(); - - client.create_bill( - &owner, - &String::from_str(&env, "Rent"), - &1000, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 1000, - "one unpaid bill of 1000 must yield total_unpaid == 1000" - ); - } - - // --- Multiple unpaid bills: total equals the sum of all amounts --- - - #[test] - fn test_get_total_unpaid_multiple_unpaid_bills() { - // Three bills with amounts 100, 200, 300 → total must be 600. - 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(); - - client.create_bill( - &owner, - &String::from_str(&env, "Bill A"), - &100, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Bill B"), - &200, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Bill C"), - &300, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 600, - "three unpaid bills (100 + 200 + 300) must yield total_unpaid == 600" - ); - } - - // --- After paying one bill: total decreases by that bill's amount --- - - #[test] - fn test_get_total_unpaid_decreases_after_pay() { - // Create bills of 100, 200, 300; pay the 200 bill. - // Total must drop from 600 to 400 (100 + 300). - 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(); - - client.create_bill( - &owner, - &String::from_str(&env, "Bill A"), - &100, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id_b = client.create_bill( - &owner, - &String::from_str(&env, "Bill B"), - &200, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Bill C"), - &300, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Confirm starting total - assert_eq!(client.get_total_unpaid(&owner), 600); - - // Pay the 200-unit bill - client.pay_bill(&owner, &id_b); - - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 400, - "after paying the 200 bill, total_unpaid must be 400 (100 + 300)" - ); - } - - // --- All paid (incremental): total reaches 0 as each bill is paid --- - - #[test] - fn test_get_total_unpaid_reaches_zero_as_bills_paid_incrementally() { - // Pay bills one by one and verify the running total after each payment. - 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 id1 = client.create_bill( - &owner, - &String::from_str(&env, "Bill 1"), - &100, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id2 = client.create_bill( - &owner, - &String::from_str(&env, "Bill 2"), - &200, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id3 = client.create_bill( - &owner, - &String::from_str(&env, "Bill 3"), - &300, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - assert_eq!(client.get_total_unpaid(&owner), 600); - - client.pay_bill(&owner, &id1); - assert_eq!( - client.get_total_unpaid(&owner), - 500, - "after paying 100-bill: 500 remaining" - ); - - client.pay_bill(&owner, &id2); - assert_eq!( - client.get_total_unpaid(&owner), - 300, - "after paying 200-bill: 300 remaining" - ); - - client.pay_bill(&owner, &id3); - assert_eq!( - client.get_total_unpaid(&owner), - 0, - "after paying all bills: total_unpaid must be 0" - ); - } - - // --- Isolation: owner_a's total is unaffected by owner_b's bills --- - - #[test] - fn test_get_total_unpaid_isolation_between_owners() { - // Bills belonging to owner_b must not appear in owner_a's total, and - // vice versa. - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner_a = ::generate(&env); - let owner_b = ::generate(&env); - - env.mock_all_auths(); - - // owner_a: two bills totalling 500 - client.create_bill( - &owner_a, - &String::from_str(&env, "A - Rent"), - &300, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner_a, - &String::from_str(&env, "A - Water"), - &200, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // owner_b: one bill of 9999 - client.create_bill( - &owner_b, - &String::from_str(&env, "B - Internet"), - &9999, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - let total_a = client.get_total_unpaid(&owner_a); - let total_b = client.get_total_unpaid(&owner_b); - - assert_eq!( - total_a, 500, - "owner_a's total_unpaid must be 500 (300 + 200), not influenced by owner_b" - ); - assert_eq!( - total_b, 9999, - "owner_b's total_unpaid must be 9999, not influenced by owner_a" - ); - } - - // --- Isolation after cross-owner payment: paying owner_b's bill does not - // change owner_a's total --- - - #[test] - fn test_get_total_unpaid_paying_other_owner_bill_has_no_effect() { - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner_a = ::generate(&env); - let owner_b = ::generate(&env); - - env.mock_all_auths(); - - client.create_bill( - &owner_a, - &String::from_str(&env, "A - Electricity"), - &750, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id_b = client.create_bill( - &owner_b, - &String::from_str(&env, "B - Gas"), - &1234, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - // Pay owner_b's bill - client.pay_bill(&owner_b, &id_b); - - // owner_a's total must be unchanged - let total_a = client.get_total_unpaid(&owner_a); - assert_eq!( - total_a, 750, - "paying owner_b's bill must not affect owner_a's total_unpaid" - ); - - // owner_b's total must now be 0 - let total_b = client.get_total_unpaid(&owner_b); - assert_eq!(total_b, 0, "owner_b's total_unpaid must be 0 after payment"); - } - - // --- Cancelled bill is excluded from the total --- - - #[test] - fn test_get_total_unpaid_excludes_cancelled_bills() { - // A cancelled bill is removed from storage entirely, so it must not - // appear in the total. - 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 id_keep = client.create_bill( - &owner, - &String::from_str(&env, "Keep"), - &500, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - let id_cancel = client.create_bill( - &owner, - &String::from_str(&env, "Cancel Me"), - &9000, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - - assert_eq!(client.get_total_unpaid(&owner), 9500); - - client.cancel_bill(&owner, &id_cancel); - - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 500, - "cancelled bill must not contribute to total_unpaid" - ); - - // Sanity: the kept bill is still there - assert!(client.get_bill(&id_keep).is_some()); - } - - // --- Minimum positive amount: a single bill of 1 --- - - #[test] - fn test_get_total_unpaid_minimum_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(); - - client.create_bill( - &owner, - &String::from_str(&env, "Tiny Bill"), - &1, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); +use crate::{BillPayments, BillPaymentsClient, Error}; +use remitwise_common::CreateBillConfig; +use soroban_sdk::{ + testutils::{Address as _, Ledger}, + Address, Env, String, +}; + +fn setup() -> (Env, Address, Address) { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register(BillPayments, ()); + let owner = Address::generate(&env); + (env, owner, contract_id) +} - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 1, - "single bill of amount 1 must yield total_unpaid == 1" - ); +#[allow(clippy::too_many_arguments)] +fn try_create( + client: &BillPaymentsClient<'_>, + owner: &Address, + name: &String, + amount: i128, + due_date: u64, + recurring: bool, + frequency_days: u32, + currency: &String, +) -> Result { + let config = CreateBillConfig { + name: name.clone(), + amount, + due_date, + recurring, + frequency_days, + external_ref: None, + currency: currency.clone(), + }; + let result = client.try_create_bill(owner, &config); + match result { + Ok(Ok(id)) => Ok(id), + Ok(Err(_)) => panic!("unexpected conversion error from client"), + Err(Ok(err)) => Err(err), + Err(Err(_)) => panic!("unexpected invoke error from host"), } +} - // --- Large amounts: verify no arithmetic overflow in the sum --- - - #[test] - fn test_get_total_unpaid_large_amounts_no_overflow() { - // Use amounts near i128::MAX / 2 to verify the summation does not panic - // or wrap. The contract uses plain addition, so this confirms the runtime - // handles large i128 values correctly. - 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 big: i128 = i128::MAX / 4; // safely summable twice without overflow - - client.create_bill( - &owner, - &String::from_str(&env, "Big Bill 1"), - &big, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); - client.create_bill( - &owner, - &String::from_str(&env, "Big Bill 2"), - &big, - &1_000_000, - &false, - &0, - &String::from_str(&env, "XLM"), - ); +#[test] +fn create_bill_rejects_zero_amount() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "Power"), + 0, + env.ledger().timestamp() + 300, + false, + 0, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidAmount)); +} - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, - big * 2, - "sum of two large amounts must equal big * 2" - ); - } +#[test] +fn create_bill_rejects_negative_amount() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "Water"), + -1, + env.ledger().timestamp() + 300, + false, + 0, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidAmount)); +} - // --- Recurring bill creates a new unpaid bill: total includes the new one --- +#[test] +fn create_bill_rejects_zero_due_date() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "Internet"), + 100, + 0, + false, + 0, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidDueDate)); +} - #[test] - fn test_get_total_unpaid_includes_new_recurring_bill_after_pay() { - // Paying a recurring bill marks the original paid AND creates a new - // unpaid bill. The total must reflect the new unpaid bill's amount. - let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); - let client = BillPaymentsClient::new(&env, &contract_id); - let owner = ::generate(&env); +#[test] +fn create_bill_rejects_due_date_equal_to_now() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let now = env.ledger().timestamp(); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "Rent"), + 100, + now, + false, + 0, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidDueDate)); +} - env.mock_all_auths(); +#[test] +fn create_bill_rejects_due_date_in_past() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + env.ledger().set_timestamp(10_000); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "School Fees"), + 100, + 9_999, + false, + 0, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidDueDate)); +} - let bill_id = client.create_bill( - &owner, - &String::from_str(&env, "Monthly Subscription"), - &500, - &1_000_000, - &true, // recurring - &30, - ); +#[test] +fn create_bill_rejects_recurring_with_zero_frequency() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "Subscription"), + 100, + env.ledger().timestamp() + 500, + true, + 0, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidFrequency)); +} - // Before payment: one unpaid bill of 500 - assert_eq!(client.get_total_unpaid(&owner), 500); +#[test] +fn create_bill_rejects_non_recurring_with_frequency() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "One-Time Tax"), + 200, + env.ledger().timestamp() + 600, + false, + 30, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::InvalidRecurrenceCombination)); +} - // Pay it: original becomes paid, a new unpaid bill of 500 is created - client.pay_bill(&owner, &bill_id); +#[test] +fn create_bill_rejects_recurrence_overflow() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let result = try_create( + &client, + &owner, + &String::from_str(&env, "Edge Overflow"), + 200, + u64::MAX - 1, + true, + 1, + &String::from_str(&env, "XLM"), + ); + assert_eq!(result, Err(Error::FrequencyOverflow)); +} - // Total must still be 500 (the new recurring bill, not the paid one) - let total = client.get_total_unpaid(&owner); - assert_eq!( - total, 500, - "after paying a recurring bill, the newly created bill must appear in total_unpaid" - ); - } +#[test] +fn create_bill_accepts_valid_non_recurring_inputs() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let id = try_create( + &client, + &owner, + &String::from_str(&env, "Valid One-Time"), + 300, + env.ledger().timestamp() + 700, + false, + 0, + &String::from_str(&env, "XLM"), + ) + .expect("valid input should create bill"); + assert_eq!(id, 1); } +#[test] +fn create_bill_accepts_valid_recurring_inputs() { + let (env, owner, contract_id) = setup(); + let client = BillPaymentsClient::new(&env, &contract_id); + let id = try_create( + &client, + &owner, + &String::from_str(&env, "Valid Recurring"), + 300, + env.ledger().timestamp() + 700, + true, + 30, + &String::from_str(&env, "XLM"), + ) + .expect("valid recurring input should create bill"); + assert_eq!(id, 1); } diff --git a/bill_payments/test_snapshots/test_archive_large_amount_bill.1.json b/bill_payments/test_snapshots/test_archive_large_amount_bill.1.json index 61a841c4..e95f5f7f 100644 --- a/bill_payments/test_snapshots/test_archive_large_amount_bill.1.json +++ b/bill_payments/test_snapshots/test_archive_large_amount_bill.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Large Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Bill" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -91,9 +132,9 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, - "timestamp": 1000000, + "timestamp": 100, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, @@ -151,7 +192,7 @@ "symbol": "archived_at" }, "val": { - "u64": 1000000 + "u64": 100 } }, { @@ -191,7 +232,15 @@ "symbol": "paid_at" }, "val": { - "u64": 1000000 + "u64": 100 + } + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] } } ] @@ -243,7 +292,7 @@ "symbol": "last_updated" }, "val": { - "u64": 1000000 + "u64": 100 } }, { @@ -423,422 +472,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Large Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_bill" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_paid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 3 - }, - { - "u32": 0 - }, - { - "symbol": "batch" - } - ], - "data": { - "vec": [ - { - "symbol": "archived" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_paid_bills" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_archived_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_archived_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - }, - { - "key": { - "symbol": "archived_at" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Large Bill" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1000000 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_batch_pay_large_bills.1.json b/bill_payments/test_snapshots/test_batch_pay_large_bills.1.json index e841c0b5..e48f5234 100644 --- a/bill_payments/test_snapshots/test_batch_pay_large_bills.1.json +++ b/bill_payments/test_snapshots/test_batch_pay_large_bills.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill0" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill0" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -57,25 +98,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill1" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill1" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -97,25 +178,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill2" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill2" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -137,25 +258,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill3" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill3" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -177,25 +338,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 922337203685477580, + "lo": 14757395258967641292 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill4" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -249,7 +450,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -328,6 +529,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -389,6 +596,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -434,6 +649,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -495,6 +716,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -540,6 +769,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -601,6 +836,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -646,6 +889,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -707,6 +956,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -752,6 +1009,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -813,6 +1076,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1134,1654 +1405,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill0" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill1" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill2" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill3" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 4 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 5 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "batch_pay_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "u32": 3 - }, - { - "u32": 4 - }, - { - "u32": 5 - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 4 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 5 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 3 - }, - { - "u32": 1 - }, - { - "symbol": "batch_pay" - } - ], - "data": { - "vec": [ - { - "u32": 5 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "batch_pay_bills" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill0" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill1" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill2" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill3" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 922337203685477580, - "lo": 14757395258967641292 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill4" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_create_bill_near_max_i128.1.json b/bill_payments/test_snapshots/test_create_bill_near_max_i128.1.json index 8ab67bfe..5cc9d9f8 100644 --- a/bill_payments/test_snapshots/test_create_bill_near_max_i128.1.json +++ b/bill_payments/test_snapshots/test_create_bill_near_max_i128.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Large Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Bill" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -47,7 +88,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -126,6 +167,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -185,6 +232,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -286,270 +341,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Large Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Large Bill" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_edge_case_i128_max_minus_one.1.json b/bill_payments/test_snapshots/test_edge_case_i128_max_minus_one.1.json index b62d9b7f..3880340c 100644 --- a/bill_payments/test_snapshots/test_edge_case_i128_max_minus_one.1.json +++ b/bill_payments/test_snapshots/test_edge_case_i128_max_minus_one.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Edge Case" - }, - { - "i128": { - "hi": 9223372036854775807, - "lo": 18446744073709551614 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Edge Case" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -47,7 +88,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -126,6 +167,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -185,6 +232,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -286,270 +341,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Edge Case" - }, - { - "i128": { - "hi": 9223372036854775807, - "lo": 18446744073709551614 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 9223372036854775807, - "lo": 18446744073709551614 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 9223372036854775807, - "lo": 18446744073709551614 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Edge Case" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_get_total_unpaid_overflow_panics.1.json b/bill_payments/test_snapshots/test_get_total_unpaid_overflow_panics.1.json index 4c04edbd..53b6a144 100644 --- a/bill_payments/test_snapshots/test_get_total_unpaid_overflow_panics.1.json +++ b/bill_payments/test_snapshots/test_get_total_unpaid_overflow_panics.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,65 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill1" - }, - { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - }, - "sub_invocations": [] - } - ] - ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "create_bill", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill2" - }, - { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387904, + "lo": 999 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill1" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -87,7 +88,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -166,6 +167,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -225,110 +232,14 @@ "symbol": "schedule_id" }, "val": "void" - } - ] - } - }, - { - "key": { - "u32": 2 - }, - "val": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill2" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" }, { "key": { - "symbol": "recurring" + "symbol": "tags" }, "val": { - "bool": false + "vec": [] } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" } ] } @@ -341,7 +252,7 @@ "symbol": "NEXT_ID" }, "val": { - "u32": 2 + "u32": 1 } }, { @@ -356,8 +267,8 @@ }, "val": { "i128": { - "hi": 9223372036854775807, - "lo": 18446744073709551615 + "hi": 4611686018427387904, + "lo": 999 } } } @@ -407,39 +318,6 @@ 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": { @@ -463,296 +341,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill1" - }, - { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill2" - }, - { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387904, - "lo": 999 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "i128": { - "hi": 9223372036854775807, - "lo": 18446744073709551615 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_get_total_unpaid_with_two_large_bills.1.json b/bill_payments/test_snapshots/test_get_total_unpaid_with_two_large_bills.1.json index 1fc1b135..93486d5f 100644 --- a/bill_payments/test_snapshots/test_get_total_unpaid_with_two_large_bills.1.json +++ b/bill_payments/test_snapshots/test_get_total_unpaid_with_two_large_bills.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill1" - }, - { - "i128": { - "hi": 2305843009213693951, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill1" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -57,25 +98,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill2" - }, - { - "i128": { - "hi": 2305843009213693951, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 2305843009213693951, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill2" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -87,7 +168,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -166,6 +247,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -225,6 +312,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -270,6 +365,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -329,6 +430,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -463,296 +572,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill1" - }, - { - "i128": { - "hi": 2305843009213693951, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 2305843009213693951, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill2" - }, - { - "i128": { - "hi": 2305843009213693951, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 2305843009213693951, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551614 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_multiple_large_bills_different_owners.1.json b/bill_payments/test_snapshots/test_multiple_large_bills_different_owners.1.json index b7b1963a..fe9994c7 100644 --- a/bill_payments/test_snapshots/test_multiple_large_bills_different_owners.1.json +++ b/bill_payments/test_snapshots/test_multiple_large_bills_different_owners.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Owner1 Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Owner1 Bill" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -57,25 +98,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" }, { - "string": "Owner2 Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Owner2 Bill" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -88,7 +169,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -167,6 +248,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -226,6 +313,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -271,6 +366,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -330,6 +431,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -475,348 +584,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Owner1 Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Owner2 Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_unpaid" - } - ], - "data": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_notification_flow.1.json b/bill_payments/test_snapshots/test_notification_flow.1.json index cf921acd..dc96b31b 100644 --- a/bill_payments/test_snapshots/test_notification_flow.1.json +++ b/bill_payments/test_snapshots/test_notification_flow.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Electricity" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1234567890 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1234567890 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Electricity" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -68,7 +109,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -147,6 +188,12 @@ "u64": 1234567890 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -208,6 +255,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -343,57 +398,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Electricity" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1234567890 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -403,16 +407,14 @@ "v0": { "topics": [ { - "symbol": "Remitwise" + "symbol": "bill" }, { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" + "vec": [ + { + "symbol": "Paid" + } + ] } ], "data": { @@ -423,71 +425,7 @@ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1234567890 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } + "void" ] } } @@ -536,27 +474,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_bill" - } - ], - "data": "void" - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_pagination_with_large_amounts.1.json b/bill_payments/test_snapshots/test_pagination_with_large_amounts.1.json index 6c28d489..9deb1b59 100644 --- a/bill_payments/test_snapshots/test_pagination_with_large_amounts.1.json +++ b/bill_payments/test_snapshots/test_pagination_with_large_amounts.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill0" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill0" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -57,25 +98,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill1" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill1" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -97,25 +178,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill2" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill2" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -137,25 +258,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill3" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill3" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -177,25 +338,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill4" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -217,25 +418,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill5" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill5" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -257,25 +498,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill6" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill6" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -297,25 +578,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill7" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill7" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -337,25 +658,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill8" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill8" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -377,25 +738,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill9" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill9" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -417,25 +818,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill10" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill10" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -457,25 +898,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill11" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill11" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -497,25 +978,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill12" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill12" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -537,25 +1058,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill13" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill13" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -577,25 +1138,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Bill14" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 92233720368547758, + "lo": 1475739525896764129 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Bill14" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -608,7 +1209,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -687,6 +1288,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -746,6 +1353,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -791,6 +1406,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -850,6 +1471,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -895,6 +1524,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -954,6 +1589,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -999,6 +1642,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1058,6 +1707,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1105,9 +1762,15 @@ }, { "key": { - "symbol": "frequency_days" + "symbol": "external_ref" }, - "val": { + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { "u32": 0 } }, @@ -1162,6 +1825,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1207,6 +1878,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1266,6 +1943,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1311,6 +1996,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1370,6 +2061,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1415,6 +2114,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1474,6 +2179,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1519,6 +2232,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1578,6 +2297,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1623,6 +2350,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1682,6 +2415,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1727,6 +2468,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1786,6 +2533,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1831,6 +2586,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1890,6 +2651,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1935,6 +2704,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -1994,6 +2769,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -2039,6 +2822,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -2098,6 +2887,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -2143,6 +2940,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -2202,6 +3005,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -2765,3446 +3576,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill0" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill1" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill2" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill3" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 4 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 5 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill5" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 6 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 6 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill6" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 7 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 7 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill7" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 8 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 8 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill8" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 9 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 9 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill9" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 10 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 10 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill10" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 11 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 11 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill11" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 12 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 12 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill12" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 13 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 13 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill13" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 14 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 14 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bill14" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 15 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 15 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "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_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 10 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill0" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill1" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill2" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill3" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill4" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 6 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill5" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 7 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill6" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 8 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill7" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 9 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill8" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 10 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill9" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "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_unpaid_bills" - } - ], - "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_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 11 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill10" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 12 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill11" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 13 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill12" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 14 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill13" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 92233720368547758, - "lo": 1475739525896764129 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 15 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Bill14" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_pay_bill_with_large_amount.1.json b/bill_payments/test_snapshots/test_pay_bill_with_large_amount.1.json index c8b577d0..fe7f480a 100644 --- a/bill_payments/test_snapshots/test_pay_bill_with_large_amount.1.json +++ b/bill_payments/test_snapshots/test_pay_bill_with_large_amount.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Large Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Bill" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": false + } + } + ] } ] } @@ -69,7 +110,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -148,6 +189,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -209,6 +256,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -343,368 +398,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Large Bill" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": false - }, - { - "u32": 0 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_bill" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Large Bill" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/test_snapshots/test_recurring_bill_with_large_amount.1.json b/bill_payments/test_snapshots/test_recurring_bill_with_large_amount.1.json index 009bf39f..d7ab67a4 100644 --- a/bill_payments/test_snapshots/test_recurring_bill_with_large_amount.1.json +++ b/bill_payments/test_snapshots/test_recurring_bill_with_large_amount.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -17,25 +18,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" }, { - "string": "Large Recurring" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 4611686018427387903, + "lo": 18446744073709551615 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1000000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 30 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Large Recurring" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": true + } + } + ] } ] } @@ -70,7 +111,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -149,6 +190,12 @@ "u64": 1000000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -210,6 +257,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -255,6 +310,12 @@ "u64": 3592000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -314,6 +375,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -448,513 +517,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Large Recurring" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 0 - }, - { - "u32": 2 - }, - { - "symbol": "paid" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_bill" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1000000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Large Recurring" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 4611686018427387903, - "lo": 18446744073709551615 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 3592000 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Large Recurring" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/bill_payments/tests/gas_bench.rs b/bill_payments/tests/gas_bench.rs index fc9f950e..7d073265 100644 --- a/bill_payments/tests/gas_bench.rs +++ b/bill_payments/tests/gas_bench.rs @@ -18,7 +18,7 @@ fn bench_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 100_000, }); - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -27,7 +27,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -39,7 +39,7 @@ where #[test] fn bench_get_total_unpaid_worst_case() { let env = bench_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner =
::generate(&env); @@ -50,12 +50,15 @@ fn bench_get_total_unpaid_worst_case() { for _ in 0..100 { client.create_bill( &owner, - &name, - &100i128, - &1_000_000u64, // Due date is 1,000,000 - &false, - &0u32, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date: 1_000_000u64, + recurring: false, + frequency_days: 0u32, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); } diff --git a/bill_payments/tests/stress_test_large_amounts.rs b/bill_payments/tests/stress_test_large_amounts.rs index e4221884..2a44e6df 100644 --- a/bill_payments/tests/stress_test_large_amounts.rs +++ b/bill_payments/tests/stress_test_large_amounts.rs @@ -33,7 +33,7 @@ fn set_time(env: &Env, timestamp: u64) { #[test] fn test_create_bill_near_max_i128() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -44,12 +44,15 @@ fn test_create_bill_near_max_i128() { let bill_id = client.create_bill( &owner, - &String::from_str(&env, "Large Bill"), - &large_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Large Bill"), + amount: large_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); let bill = client.get_bill(&bill_id).unwrap(); @@ -60,7 +63,7 @@ fn test_create_bill_near_max_i128() { #[test] fn test_pay_bill_with_large_amount() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -70,12 +73,15 @@ fn test_pay_bill_with_large_amount() { let bill_id = client.create_bill( &owner, - &String::from_str(&env, "Large Bill"), - &large_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Large Bill"), + amount: large_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); @@ -89,7 +95,7 @@ fn test_pay_bill_with_large_amount() { #[test] fn test_recurring_bill_with_large_amount() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -99,12 +105,15 @@ fn test_recurring_bill_with_large_amount() { let bill_id = client.create_bill( &owner, - &String::from_str(&env, "Large Recurring"), - &large_amount, - &1000000, - &true, - &30, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Large Recurring"), + amount: large_amount, + due_date: 1000000, + recurring: true, + frequency_days: 30, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); @@ -124,7 +133,7 @@ fn test_recurring_bill_with_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 contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -135,23 +144,29 @@ fn test_get_total_unpaid_with_two_large_bills() { client.create_bill( &owner, - &String::from_str(&env, "Bill1"), - &amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Bill1"), + amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); client.create_bill( &owner, - &String::from_str(&env, "Bill2"), - &amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Bill2"), + amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); let total = client.get_total_unpaid(&owner); @@ -162,7 +177,7 @@ fn test_get_total_unpaid_with_two_large_bills() { #[should_panic(expected = "overflow")] fn test_get_total_unpaid_overflow_panics() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -173,23 +188,29 @@ fn test_get_total_unpaid_overflow_panics() { client.create_bill( &owner, - &String::from_str(&env, "Bill1"), - &amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Bill1"), + amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); client.create_bill( &owner, - &String::from_str(&env, "Bill2"), - &amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Bill2"), + amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); // This should panic due to overflow @@ -199,7 +220,7 @@ fn test_get_total_unpaid_overflow_panics() { #[test] fn test_multiple_large_bills_different_owners() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner1 = ::generate(&env); let owner2 = ::generate(&env); @@ -211,23 +232,29 @@ fn test_multiple_large_bills_different_owners() { // Each owner can have large bills independently client.create_bill( &owner1, - &String::from_str(&env, "Owner1 Bill"), - &large_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Owner1 Bill"), + amount: large_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); client.create_bill( &owner2, - &String::from_str(&env, "Owner2 Bill"), - &large_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Owner2 Bill"), + amount: large_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); let total1 = client.get_total_unpaid(&owner1); @@ -240,9 +267,9 @@ fn test_multiple_large_bills_different_owners() { #[test] fn test_archive_large_amount_bill() { let env = Env::default(); - set_time(&env, 1000000); + set_time(&env, 100); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -252,12 +279,15 @@ fn test_archive_large_amount_bill() { let bill_id = client.create_bill( &owner, - &String::from_str(&env, "Large Bill"), - &large_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Large Bill"), + amount: large_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); @@ -274,7 +304,7 @@ fn test_archive_large_amount_bill() { #[test] fn test_batch_pay_large_bills() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -287,12 +317,15 @@ fn test_batch_pay_large_bills() { for i in 0..5 { let bill_id = client.create_bill( &owner, - &String::from_str(&env, &format!("Bill{}", i)), - &amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, &format!("Bill{}", i)), + amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); bill_ids.push_back(bill_id); env.mock_all_auths(); @@ -316,7 +349,7 @@ fn test_batch_pay_large_bills() { // let env = Env::default(); // set_time(&env, 2_000_000); -// let contract_id = env.register_contract(None, BillPayments); +// let contract_id = env.register(BillPayments, ()); // let client = BillPaymentsClient::new(&env, &contract_id); // let owner = ::generate(&env); @@ -342,7 +375,7 @@ fn test_batch_pay_large_bills() { #[test] fn test_edge_case_i128_max_minus_one() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -353,12 +386,15 @@ fn test_edge_case_i128_max_minus_one() { let bill_id = client.create_bill( &owner, - &String::from_str(&env, "Edge Case"), - &edge_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, "Edge Case"), + amount: edge_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); let bill = client.get_bill(&bill_id).unwrap(); @@ -368,7 +404,7 @@ fn test_edge_case_i128_max_minus_one() { #[test] fn test_pagination_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -380,12 +416,15 @@ fn test_pagination_with_large_amounts() { for i in 0..15 { client.create_bill( &owner, - &String::from_str(&env, &format!("Bill{}", i)), - &large_amount, - &1000000, - &false, - &0, - &String::from_str(&env, "XLM"), + &remitwise_common::CreateBillConfig { + name: String::from_str(&env, &format!("Bill{}", i)), + amount: large_amount, + due_date: 1000000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, ); env.mock_all_auths(); } diff --git a/bill_payments/tests/stress_tests.rs b/bill_payments/tests/stress_tests.rs index eb512c4a..414ce134 100644 --- a/bill_payments/tests/stress_tests.rs +++ b/bill_payments/tests/stress_tests.rs @@ -37,14 +37,14 @@ fn stress_env() -> Env { env.ledger().set(LedgerInfo { protocol_version: proto, sequence_number: 100, - timestamp: 1_700_000_000, + timestamp: 1_600_000_000, network_id: [0; 32], base_reserve: 10, min_temp_entry_ttl: 1, min_persistent_entry_ttl: 1, max_entry_ttl: 700_000, }); - env.budget().reset_unlimited(); + env.cost_estimate().budget().reset_unlimited(); env } @@ -53,7 +53,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -71,7 +71,7 @@ where #[test] fn stress_200_bills_single_user() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -79,12 +79,27 @@ fn stress_200_bills_single_user() { let due_date = 2_000_000_000u64; // far future for _ in 0..200 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } // Verify aggregate total let total = client.get_total_unpaid(&owner); - assert_eq!(total, 200 * 100i128, "get_total_unpaid must sum all 200 bills"); + assert_eq!( + total, + 200 * 100i128, + "get_total_unpaid must sum all 200 bills" + ); // Exhaust all pages with MAX_PAGE_LIMIT (50) — should take exactly 4 pages let mut collected = 0u32; @@ -114,7 +129,7 @@ fn stress_200_bills_single_user() { #[test] fn stress_instance_ttl_valid_after_200_bills() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -122,7 +137,18 @@ fn stress_instance_ttl_valid_after_200_bills() { let due_date = 2_000_000_000u64; for _ in 0..200 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); @@ -142,7 +168,7 @@ fn stress_instance_ttl_valid_after_200_bills() { #[test] fn stress_bills_across_10_users() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); const N_USERS: usize = 10; @@ -155,7 +181,18 @@ fn stress_bills_across_10_users() { for user in &users { for _ in 0..BILLS_PER_USER { - client.create_bill(user, &name, &AMOUNT_PER_BILL, &due_date, &false, &0u32); + client.create_bill( + user, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: AMOUNT_PER_BILL, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } } @@ -199,7 +236,7 @@ fn stress_bills_across_10_users() { #[test] fn stress_ttl_re_bumped_after_ledger_advancement() { let env = stress_env(); // sequence 100, max_entry_ttl 700,000 - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -208,7 +245,18 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { // Phase 1: create 50 bills — TTL is set to INSTANCE_BUMP_AMOUNT for _ in 0..50 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } let ttl_batch1 = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); @@ -239,7 +287,18 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { ); // Phase 3: one more create_bill triggers extend_ttl → re-bumped - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); let ttl_rebumped = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); assert!( @@ -253,7 +312,7 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { #[test] fn stress_ttl_re_bumped_by_pay_bill_after_ledger_advancement() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -261,7 +320,18 @@ fn stress_ttl_re_bumped_by_pay_bill_after_ledger_advancement() { let due_date = 2_000_000_000u64; // Create one bill to initialise instance storage - let bill_id = client.create_bill(&owner, &name, &500i128, &due_date, &false, &0u32); + let bill_id = client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 500i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); // Advance ledger so TTL drops below threshold env.ledger().set(LedgerInfo { @@ -298,7 +368,7 @@ fn stress_ttl_re_bumped_by_pay_bill_after_ledger_advancement() { #[test] fn stress_archive_100_paid_bills() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -307,7 +377,18 @@ fn stress_archive_100_paid_bills() { // Create 100 bills (IDs 1..=100) for _ in 0..100 { - client.create_bill(&owner, &name, &200i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 200i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } // Pay all 100 bills (non-recurring, so no new bills created) @@ -328,8 +409,14 @@ fn stress_archive_100_paid_bills() { // Verify storage stats let stats = client.get_storage_stats(); - assert_eq!(stats.active_bills, 0, "No active bills should remain after full archive"); - assert_eq!(stats.archived_bills, 100, "Storage stats must show 100 archived bills"); + assert_eq!( + stats.active_bills, 0, + "No active bills should remain after full archive" + ); + assert_eq!( + stats.archived_bills, 100, + "Storage stats must show 100 archived bills" + ); // Verify paginated access to archived bills let mut archived_seen = 0u32; @@ -365,7 +452,7 @@ fn stress_archive_100_paid_bills() { #[test] fn stress_archive_across_5_users() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); const N_USERS: usize = 5; @@ -381,7 +468,18 @@ fn stress_archive_across_5_users() { for (i, user) in users.iter().enumerate() { let first = next_id; for _ in 0..BILLS_PER_USER { - client.create_bill(user, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + user, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); next_id += 1; } let last = next_id - 1; @@ -417,7 +515,7 @@ fn stress_archive_across_5_users() { #[test] fn bench_get_unpaid_bills_first_page_of_200() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -425,7 +523,18 @@ fn bench_get_unpaid_bills_first_page_of_200() { let due_date = 2_000_000_000u64; for _ in 0..200 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } let (cpu, mem, page) = measure(&env, || client.get_unpaid_bills(&owner, &0u32, &50u32)); @@ -442,7 +551,7 @@ fn bench_get_unpaid_bills_first_page_of_200() { #[test] fn bench_get_unpaid_bills_last_page_of_200() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -450,7 +559,18 @@ fn bench_get_unpaid_bills_last_page_of_200() { let due_date = 2_000_000_000u64; for _ in 0..200 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } // Navigate to the last page cursor @@ -473,7 +593,7 @@ fn bench_get_unpaid_bills_last_page_of_200() { #[test] fn bench_archive_paid_bills_100() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -481,14 +601,26 @@ fn bench_archive_paid_bills_100() { let due_date = 1_700_000_000u64; for _ in 0..100 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } for id in 1u32..=100 { client.pay_bill(&owner, &id); } - let (cpu, mem, result) = - measure(&env, || client.archive_paid_bills(&owner, &2_000_000_000u64)); + let (cpu, mem, result) = measure(&env, || { + client.archive_paid_bills(&owner, &2_000_000_000u64) + }); assert_eq!(result, 100); println!( @@ -501,7 +633,7 @@ fn bench_archive_paid_bills_100() { #[test] fn bench_get_total_unpaid_200_bills() { let env = stress_env(); - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -509,7 +641,18 @@ fn bench_get_total_unpaid_200_bills() { let due_date = 2_000_000_000u64; for _ in 0..200 { - client.create_bill(&owner, &name, &100i128, &due_date, &false, &0u32); + client.create_bill( + &owner, + &remitwise_common::CreateBillConfig { + name: name.clone(), + amount: 100i128, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }, + ); } let expected = 200i128 * 100; diff --git a/bill_payments/tests/test_notifications.rs b/bill_payments/tests/test_notifications.rs index 43e8b332..85a07a50 100644 --- a/bill_payments/tests/test_notifications.rs +++ b/bill_payments/tests/test_notifications.rs @@ -9,7 +9,7 @@ fn test_notification_flow() { let e = Env::default(); // Register the contract - let contract_id = e.register_contract(None, BillPayments); + let contract_id = e.register(BillPayments, ()); let client = BillPaymentsClient::new(&e, &contract_id); // Setup: Create a User @@ -21,12 +21,15 @@ fn test_notification_flow() { // Create Bill let bill_id = client.create_bill( &user, - &soroban_sdk::String::from_str(&e, "Electricity"), - &1000, - &1234567890, - &false, - &0, - &soroban_sdk::String::from_str(&e, "XLM"), + &remitwise_common::CreateBillConfig { + name: soroban_sdk::String::from_str(&e, "Electricity"), + amount: 1000, + due_date: 1234567890, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: soroban_sdk::String::from_str(&e, "XLM"), + }, ); // VERIFY: Get Events diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 69444145..9e105e9a 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -10,4 +10,4 @@ anyhow = "1.0" [[bin]] name = "remitwise-cli" -path = "src/main.rs" \ No newline at end of file +path = "src/main.rs" diff --git a/clippy_bp.txt b/clippy_bp.txt new file mode 100644 index 00000000..92d46b93 --- /dev/null +++ b/clippy_bp.txt @@ -0,0 +1,880 @@ +cargo : Checking soroban-env-host v22.1.3 +At line:1 char:1 ++ cargo clippy -p bill_payments --all-targets -- +-D warnings 2>&1 | Out ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking soroban-env-host v22.1.3:String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandError + + Checking soroban-ledger-snapshot v22.0.11 + Checking soroban-sdk v22.0.11 + Checking remitwise-common v0.1.0 (C:\Users\ADM +IN\Desktop\mide-drips\Remitwise-Contracts\remitwis +e-common) + Checking testutils v0.1.0 (C:\Users\ADMIN\Desk +top\mide-drips\Remitwise-Contracts\testutils) + Checking bill_payments v0.1.0 (C:\Users\ADMIN\ +Desktop\mide-drips\Remitwise-Contracts\bill_paymen +ts) +error: duplicated attribute + --> bill_payments\src\test.rs:1:8 + | + 1 | #![cfg(test)] + | ^^^^ + | +note: first defined here + --> bill_payments\src\lib.rs:1410:7 + | +1410 | #[cfg(test)] + | ^^^^ +help: remove this attribute + --> bill_payments\src\test.rs:1:8 + | + 1 | #![cfg(test)] + | ^^^^ + = help: for further information visit https:/ +/rust-lang.github.io/rust-clippy/rust-1.93.0/index +.html#duplicated_attributes + = note: `-D clippy::duplicated-attributes` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::duplicated_attributes)]` + +error: this function has too many arguments (8/7) + --> bill_payments\src\test.rs:18:1 + | +18 | / fn try_create( +19 | | client: &BillPaymentsClient<'_>, +20 | | owner: &Address, +21 | | name: &String, +... | +26 | | currency: &String, +27 | | ) -> Result { + | |_______________________^ + | + = help: for further information visit https://r +ust-lang.github.io/rust-clippy/rust-1.93.0/index.h +tml#too_many_arguments + = note: `-D clippy::too-many-arguments` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::too_many_arguments)]` + +error: could not compile `bill_payments` (lib +test) due to 2 previous errors +warning: build failed, waiting for other jobs to +finish... +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:82:16 + | + 82 | client.create_bill( + | ^^^^^^^^^^^ + 83 | &owner, + 84 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | + 84 - &name, + 84 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\gas_bench.rs:51:16 + | + 51 | client.create_bill( + | ^^^^^^^^^^^ + 52 | &owner, + 53 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | + 53 - &name, + 53 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:45:26 + | + 45 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ + 46 | &owner, + 47 | &String::from_str(&env, "Large +Bill"), + | +------------------------------------- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | + 47 - &String::from_str(&env, "Large +Bill"), + 47 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> +bill_payments\tests\test_notifications.rs:22:26 + | + 22 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ + 23 | &user, + 24 | &soroban_sdk::String::from_str(&e, +"Electricity"), + | +------------------------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | + 24 - &soroban_sdk::String::from_str(&e, +"Electricity"), + 24 + /* +&remitwise_common::CreateBillConfig */, + | + +For more information about this error, try `rustc +--explain E0061`. +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:138:16 + | +138 | client.create_bill( + | ^^^^^^^^^^^ +139 | &owner, +140 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +140 - &name, +140 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:72:26 + | + 72 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ + 73 | &owner, + 74 | &String::from_str(&env, "Large +Bill"), + | +------------------------------------- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | + 74 - &String::from_str(&env, "Large +Bill"), + 74 + /* +&remitwise_common::CreateBillConfig */, + | + +error: could not compile `bill_payments` (test +"test_notifications") due to 1 previous error +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:180:20 + | +180 | client.create_bill( + | ^^^^^^^^^^^ +181 | user, +182 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +182 - &name, +182 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:102:26 + | +102 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ +103 | &owner, +104 | &String::from_str(&env, "Large +Recurring"), + | +------------------------------------------ +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +104 - &String::from_str(&env, "Large +Recurring"), +104 + /* +&remitwise_common::CreateBillConfig */, + | + +error: could not compile `bill_payments` (test +"gas_bench") due to 1 previous error +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:242:16 + | +242 | client.create_bill( + | ^^^^^^^^^^^ +243 | &owner, +244 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +244 - &name, +244 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:139:12 + | +139 | client.create_bill( + | ^^^^^^^^^^^ +140 | &owner, +141 | &String::from_str(&env, "Bill1"), + | -------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +141 - &String::from_str(&env, "Bill1"), +141 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:282:12 + | +282 | client.create_bill( + | ^^^^^^^^^^^ +283 | &owner, +284 | &name, + | ----- expected `&CreateBillConfig`, +found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +284 - &name, +284 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:151:12 + | +151 | client.create_bill( + | ^^^^^^^^^^^ +152 | &owner, +153 | &String::from_str(&env, "Bill2"), + | -------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +153 - &String::from_str(&env, "Bill2"), +153 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:313:26 + | +313 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ +314 | &owner, +315 | &name, + | ----- expected `&CreateBillConfig`, +found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +315 - &name, +315 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:179:12 + | +179 | client.create_bill( + | ^^^^^^^^^^^ +180 | &owner, +181 | &String::from_str(&env, "Bill1"), + | -------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +181 - &String::from_str(&env, "Bill1"), +181 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:191:12 + | +191 | client.create_bill( + | ^^^^^^^^^^^ +192 | &owner, +193 | &String::from_str(&env, "Bill2"), + | -------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +193 - &String::from_str(&env, "Bill2"), +193 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:368:16 + | +368 | client.create_bill( + | ^^^^^^^^^^^ +369 | &owner, +370 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +370 - &name, +370 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:219:12 + | +219 | client.create_bill( + | ^^^^^^^^^^^ +220 | &owner1, +221 | &String::from_str(&env, "Owner1 +Bill"), + | +-------------------------------------- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +221 - &String::from_str(&env, "Owner1 +Bill"), +221 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:457:20 + | +457 | client.create_bill( + | ^^^^^^^^^^^ +458 | user, +459 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +459 - &name, +459 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:231:12 + | +231 | client.create_bill( + | ^^^^^^^^^^^ +232 | &owner2, +233 | &String::from_str(&env, "Owner2 +Bill"), + | +-------------------------------------- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +233 - &String::from_str(&env, "Owner2 +Bill"), +233 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:510:16 + | +510 | client.create_bill( + | ^^^^^^^^^^^ +511 | &owner, +512 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +512 - &name, +512 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:262:26 + | +262 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ +263 | &owner, +264 | &String::from_str(&env, "Large +Bill"), + | +------------------------------------- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +264 - &String::from_str(&env, "Large +Bill"), +264 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:544:16 + | +544 | client.create_bill( + | ^^^^^^^^^^^ +545 | &owner, +546 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +546 - &name, +546 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:298:30 + | +298 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ +299 | &owner, +300 | &String::from_str(&env, +&format!("Bill{}", i)), + | +---------------------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +300 - &String::from_str(&env, +&format!("Bill{}", i)), +300 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:584:16 + | +584 | client.create_bill( + | ^^^^^^^^^^^ +585 | &owner, +586 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +586 - &name, +586 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:365:26 + | +365 | let bill_id = client.create_bill( + | ^^^^^^^^^^^ +366 | &owner, +367 | &String::from_str(&env, "Edge +Case"), + | +------------------------------------ expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +367 - &String::from_str(&env, "Edge +Case"), +367 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_tests.rs:622:16 + | +622 | client.create_bill( + | ^^^^^^^^^^^ +623 | &owner, +624 | &name, + | ----- expected +`&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +624 - &name, +624 + /* +&remitwise_common::CreateBillConfig */, + | + +error[E0061]: this method takes 2 arguments but 8 +arguments were supplied + --> bill_payments\tests\stress_test_large_amoun +ts.rs:393:16 + | +393 | client.create_bill( + | ^^^^^^^^^^^ +394 | &owner, +395 | &String::from_str(&env, +&format!("Bill{}", i)), + | +---------------------------------------------- +expected `&CreateBillConfig`, found `&String` + | + = note: expected reference +`&remitwise_common::CreateBillConfig` + found reference +`&soroban_sdk::String` +note: method defined here + --> C:\Users\ADMIN\Desktop\mide-drips\Remitwise +-Contracts\bill_payments\src\lib.rs:402:12 + | +402 | pub fn create_bill( + | ^^^^^^^^^^^ +help: remove the extra arguments + | +395 - &String::from_str(&env, +&format!("Bill{}", i)), +395 + /* +&remitwise_common::CreateBillConfig */, + | + +error: could not compile `bill_payments` (test +"stress_tests") due to 12 previous errors +error: could not compile `bill_payments` (test +"stress_test_large_amounts") due to 13 previous +errors diff --git a/clippy_bp_final.txt b/clippy_bp_final.txt new file mode 100644 index 00000000..ac129c9e --- /dev/null +++ b/clippy_bp_final.txt @@ -0,0 +1,249 @@ +cargo : Checking bill_payments v0.1.0 (C:\Us +ers\ADMIN\Desktop\mide-drips\Remitwise-Contracts +\bill_payments) +At line:1 char:1 ++ cargo clippy -p bill_payments --all-targets +-- -D warnings 2>&1 | Out ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking bi...\bill_payments):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: redundant field names in struct +initialization + --> bill_payments\tests\stress_test_large_amo +unts.rs:150:13 + | +150 | amount: amount, + | ^^^^^^^^^^^^^^ help: replace +it with: `amount` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + = note: `-D clippy::redundant-field-names` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::redundant_field_names)]` + +error: redundant field names in struct +initialization + --> bill_payments\tests\stress_test_large_amo +unts.rs:164:13 + | +164 | amount: amount, + | ^^^^^^^^^^^^^^ help: replace +it with: `amount` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> bill_payments\tests\stress_test_large_amo +unts.rs:194:13 + | +194 | amount: amount, + | ^^^^^^^^^^^^^^ help: replace +it with: `amount` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> bill_payments\tests\stress_test_large_amo +unts.rs:208:13 + | +208 | amount: amount, + | ^^^^^^^^^^^^^^ help: replace +it with: `amount` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> bill_payments\tests\stress_test_large_amo +unts.rs:323:17 + | +323 | amount: amount, + | ^^^^^^^^^^^^^^ help: +replace it with: `amount` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> bill_payments\tests\stress_tests.rs:88:13 + | +88 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https:/ +/rust-lang.github.io/rust-clippy/rust-1.93.0/ind +ex.html#redundant_field_names + = note: `-D clippy::redundant-field-names` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::redundant_field_names)]` + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:146:13 + | +146 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:190:13 + | +190 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:254:13 + | +254 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:296:13 + | +296 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:329:13 + | +329 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:386:13 + | +386 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:477:13 + | +477 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:532:13 + | +532 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:568:13 + | +568 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:610:13 + | +610 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: redundant field names in struct +initialization + --> +bill_payments\tests\stress_tests.rs:650:13 + | +650 | due_date: due_date, + | ^^^^^^^^^^^^^^^^^^ help: +replace it with: `due_date` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#redundant_field_names + +error: could not compile `bill_payments` (test +"stress_test_large_amounts") due to 5 previous +errors +warning: build failed, waiting for other jobs +to finish... +error: could not compile `bill_payments` (test +"stress_tests") due to 12 previous errors diff --git a/clippy_err.txt b/clippy_err.txt new file mode 100644 index 00000000..1de9c573 --- /dev/null +++ b/clippy_err.txt @@ -0,0 +1,125 @@ +cargo : Checking savings_goals v0.1.0 (C:\Us +ers\ADMIN\Desktop\mide-drips\Remitwise-Contracts +\savings_goals) +At line:1 char:1 ++ cargo clippy -p savings_goals --all-targets +-- -D warnings 2>&1 | Out ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking sa...\savings_goals):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: manual `RangeInclusive::contains` +implementation + --> savings_goals\tests\stress_tests.rs:118:9 + | +118 | pages >= 4 && pages <= 5, + | ^^^^^^^^^^^^^^^^^^^^^^^^ help: +use: `(4..=5).contains(&pages)` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#manual_range_contains + = note: `-D clippy::manual-range-contains` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::manual_range_contains)]` + +error: could not compile `savings_goals` (test +"stress_tests") due to 1 previous error +warning: build failed, waiting for other jobs +to finish... +error: duplicated attribute + --> savings_goals\src\test.rs:1:8 + | + 1 | #![cfg(test)] + | ^^^^ + | +note: first defined here + --> savings_goals\src\lib.rs:1509:7 + | +1509 | #[cfg(test)] + | ^^^^ +help: remove this attribute + --> savings_goals\src\test.rs:1:8 + | + 1 | #![cfg(test)] + | ^^^^ + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#duplicated_attributes + = note: `-D clippy::duplicated-attributes` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::duplicated_attributes)]` + +error: the borrowed expression implements the +required traits + --> savings_goals\src\test.rs:1780:29 + | +1780 | goal_a_ids.contains(&goal_a1), + | ^^^^^^^^ +help: change this to: `goal_a1` + | + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#needless_borrows_for_generic_args + = note: `-D +clippy::needless-borrows-for-generic-args` +implied by `-D warnings` + = help: to override `-D warnings` add `#[al +low(clippy::needless_borrows_for_generic_args)]` + +error: the borrowed expression implements the +required traits + --> savings_goals\src\test.rs:1784:29 + | +1784 | goal_a_ids.contains(&goal_a2), + | ^^^^^^^^ +help: change this to: `goal_a2` + | + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#needless_borrows_for_generic_args + +error: the borrowed expression implements the +required traits + --> savings_goals\src\test.rs:1788:29 + | +1788 | goal_a_ids.contains(&goal_a3), + | ^^^^^^^^ +help: change this to: `goal_a3` + | + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#needless_borrows_for_generic_args + +error: the borrowed expression implements the +required traits + --> savings_goals\src\test.rs:1811:29 + | +1811 | goal_b_ids.contains(&goal_b1), + | ^^^^^^^^ +help: change this to: `goal_b1` + | + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#needless_borrows_for_generic_args + +error: the borrowed expression implements the +required traits + --> savings_goals\src\test.rs:1815:29 + | +1815 | goal_b_ids.contains(&goal_b2), + | ^^^^^^^^ +help: change this to: `goal_b2` + | + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#needless_borrows_for_generic_args + +error: could not compile `savings_goals` (lib +test) due to 6 previous errors diff --git a/clippy_errors_only.txt b/clippy_errors_only.txt new file mode 100644 index 00000000..cea044bf --- /dev/null +++ b/clippy_errors_only.txt @@ -0,0 +1,22 @@ + +error: used `assert_eq!` with a literal bool +error: used `assert_eq!` with a literal bool +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: doc list item without indentation +error: could not compile `remittance_split` +(lib test) due to 17 previous errors + + diff --git a/clippy_gas.txt b/clippy_gas.txt new file mode 100644 index 00000000..3dbcb4e8 --- /dev/null +++ b/clippy_gas.txt @@ -0,0 +1,28 @@ +cargo : Checking bill_payments v0.1.0 (C:\Us +ers\ADMIN\Desktop\mide-drips\Remitwise-Contracts +\bill_payments) +At line:1 char:1 ++ cargo clippy -p bill_payments --test +gas_bench -- -D warnings 2>&1 | ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking bi...\bill_payments):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: unused import: +`remitwise_common::CreateBillConfig` + --> bill_payments\tests\gas_bench.rs:1:5 + | +1 | use remitwise_common::CreateBillConfig; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `-D unused-imports` implied by `-D +warnings` + = help: to override `-D warnings` add +`#[allow(unused_imports)]` + +error: could not compile `bill_payments` (test +"gas_bench") due to 1 previous error diff --git a/clippy_ins.txt b/clippy_ins.txt new file mode 100644 index 00000000..88700b84 --- /dev/null +++ b/clippy_ins.txt @@ -0,0 +1,34 @@ +cargo : Checking insurance v0.1.0 (C:\Users\ +ADMIN\Desktop\mide-drips\Remitwise-Contracts\ins +urance) +At line:1 char:1 ++ cargo clippy -p insurance --all-targets -- -D +warnings 2>&1 | Out-Fil ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking in...acts\insurance):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: manual `RangeInclusive::contains` +implementation + --> insurance\tests\stress_tests.rs:117:9 + | +117 | pages >= 4 && pages <= 5, + | ^^^^^^^^^^^^^^^^^^^^^^^^ help: +use: `(4..=5).contains(&pages)` + | + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#manual_range_contains + = note: `-D clippy::manual-range-contains` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::manual_range_contains)]` + +error: could not compile `insurance` (test +"stress_tests") due to 1 previous error +warning: build failed, waiting for other jobs +to finish... diff --git a/clippy_int.txt b/clippy_int.txt new file mode 100644 index 00000000..db9538e4 --- /dev/null +++ b/clippy_int.txt @@ -0,0 +1,49 @@ +cargo : Checking remitwise-common v0.1.0 (C: +\Users\ADMIN\Desktop\mide-drips\Remitwise-Contra +cts\remitwise-common) +At line:1 char:1 ++ cargo clippy -p integration_tests +--all-targets -- -D warnings 2>&1 | ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mitwise-common):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + + Checking remittance_split v0.1.0 (C:\Users\A +DMIN\Desktop\mide-drips\Remitwise-Contracts\remi +ttance_split) + Checking orchestrator v0.1.0 (C:\Users\ADMIN +\Desktop\mide-drips\Remitwise-Contracts\orchestr +ator) + Checking savings_goals v0.1.0 (C:\Users\ADMI +N\Desktop\mide-drips\Remitwise-Contracts\savings +_goals) + Checking bill_payments v0.1.0 (C:\Users\ADMI +N\Desktop\mide-drips\Remitwise-Contracts\bill_pa +yments) + Checking insurance v0.1.0 (C:\Users\ADMIN\De +sktop\mide-drips\Remitwise-Contracts\insurance) + Checking integration_tests v0.1.0 (C:\Users\ +ADMIN\Desktop\mide-drips\Remitwise-Contracts\int +egration_tests) +error[E0432]: unresolved import +`remitwise_common` + --> integration_tests\tests\multi_contract_inte +gration.rs:7:5 + | +7 | use remitwise_common::CreateBillConfig; + | ^^^^^^^^^^^^^^^^ use of unresolved +module or unlinked crate `remitwise_common` + | + = help: if you wanted to use a crate named +`remitwise_common`, use `cargo add +remitwise_common` to add it to your `Cargo.toml` + +For more information about this error, try +`rustc --explain E0432`. +error: could not compile `integration_tests` +(test "multi_contract_integration") due to 1 +previous error diff --git a/clippy_output.txt b/clippy_output.txt new file mode 100644 index 00000000..247bcf5d Binary files /dev/null and b/clippy_output.txt differ diff --git a/clippy_output_utf8.txt b/clippy_output_utf8.txt new file mode 100644 index 00000000..1fb62e8e --- /dev/null +++ b/clippy_output_utf8.txt @@ -0,0 +1,67 @@ +cargo : Checking remitwise-common v0.1.0 (C:\Use +rs\ADMIN\Desktop\mide-drips\Remitwise-Contracts\remi +twise-common) +At line:1 char:1 ++ cargo clippy --workspace --all-targets -- -D +warnings > clippy_output ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mitwise-common):String) [], +RemoteException + + FullyQualifiedErrorId : NativeCommandErro r + + Checking testutils v0.1.0 (C:\Users\ADMIN\Deskto +p\mide-drips\Remitwise-Contracts\testutils) + Checking savings_goals v0.1.0 (C:\Users\ADMIN\De +sktop\mide-drips\Remitwise-Contracts\savings_goals) + Checking remittance_split v0.1.0 (C:\Users\ADMIN +\Desktop\mide-drips\Remitwise-Contracts\remittance_s +plit) + Checking orchestrator v0.1.0 (C:\Users\ADMIN\Des +ktop\mide-drips\Remitwise-Contracts\orchestrator) + Checking data_migration v0.1.0 (C:\Users\ADMIN\D +esktop\mide-drips\Remitwise-Contracts\data_migration +) +error: multiple input filenames provided (first two +filenames are `testutils\src\lib.rs` and +`Check-Content`) + +error: multiple input filenames provided (first two +filenames are `remittance_split\src\lib.rs` and +`Check-Content`) + +error: multiple input filenames provided (first two +filenames are `data_migration\src\lib.rs` and +`Check-Content`) + +error: multiple input filenames provided (first two +filenames are `savings_goals\src\lib.rs` and +`Check-Content`) + +error: could not compile `testutils` (lib) due to 1 +previous error +warning: build failed, waiting for other jobs to +finish... +error: could not compile `remittance_split` (lib) +due to 1 previous error +error: multiple input filenames provided (first two +filenames are `orchestrator\src\lib.rs` and +`Check-Content`) + +error: multiple input filenames provided (first two +filenames are `remitwise-common\src\lib.rs` and +`Check-Content`) + +error: could not compile `savings_goals` (lib) due +to 1 previous error +error: could not compile `data_migration` (lib) due +to 1 previous error +error: could not compile `orchestrator` (lib) due +to 1 previous error +error: could not compile `remitwise-common` (lib +test) due to 1 previous error +error: could not compile `data_migration` (lib +test) due to 1 previous error +error: could not compile `remitwise-common` (lib) +due to 1 previous error diff --git a/clippy_raw.txt b/clippy_raw.txt new file mode 100644 index 00000000..ae1a848f Binary files /dev/null and b/clippy_raw.txt differ diff --git a/clippy_remittance.txt b/clippy_remittance.txt new file mode 100644 index 00000000..d5fce129 --- /dev/null +++ b/clippy_remittance.txt @@ -0,0 +1,97 @@ +cargo : Checking remittance_split v0.1.0 (C: +\Users\ADMIN\Desktop\mide-drips\Remitwise-Contra +cts\remittance_split) +At line:1 char:1 ++ cargo clippy -p remittance_split +--all-targets -- -D warnings 2>&1 | ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mittance_split):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: duplicated attribute + --> remittance_split\src\lib.rs:969:7 + | +969 | #[cfg(test)] + | ^^^^ + | +note: first defined here + --> remittance_split\src\lib.rs:968:7 + | +968 | #[cfg(test)] + | ^^^^ +help: remove this attribute + --> remittance_split\src\lib.rs:969:7 + | +969 | #[cfg(test)] + | ^^^^ + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#duplicated_attributes + = note: `-D clippy::duplicated-attributes` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::duplicated_attributes)]` + +error[E0599]: no variant or associated item +named `InvalidSplit` found for enum +`RemittanceSplitError` in the current scope + --> remittance_split\src\lib.rs:442:59 + | + 29 | pub enum RemittanceSplitError { + | ----------------------------- variant or +associated item `InvalidSplit` not found for +this enum +... +442 | let s0 = split.get(0).ok_or(Remitt +anceSplitError::InvalidSplit)? as i128; + | + ^^^^^^^^^^^^ variant or +associated item not found in +`RemittanceSplitError` + +error[E0599]: no variant or associated item +named `InvalidSplit` found for enum +`RemittanceSplitError` in the current scope + --> remittance_split\src\lib.rs:443:59 + | + 29 | pub enum RemittanceSplitError { + | ----------------------------- variant or +associated item `InvalidSplit` not found for +this enum +... +443 | let s1 = split.get(1).ok_or(Remitt +anceSplitError::InvalidSplit)? as i128; + | + ^^^^^^^^^^^^ variant or +associated item not found in +`RemittanceSplitError` + +error[E0599]: no variant or associated item +named `InvalidSplit` found for enum +`RemittanceSplitError` in the current scope + --> remittance_split\src\lib.rs:444:59 + | + 29 | pub enum RemittanceSplitError { + | ----------------------------- variant or +associated item `InvalidSplit` not found for +this enum +... +444 | let s2 = split.get(2).ok_or(Remitt +anceSplitError::InvalidSplit)? as i128; + | + ^^^^^^^^^^^^ variant or +associated item not found in +`RemittanceSplitError` + +For more information about this error, try +`rustc --explain E0599`. +error: could not compile `remittance_split` +(lib) due to 3 previous errors +warning: build failed, waiting for other jobs +to finish... +error: could not compile `remittance_split` +(lib test) due to 4 previous errors diff --git a/clippy_remittance_final.txt b/clippy_remittance_final.txt new file mode 100644 index 00000000..fed10948 --- /dev/null +++ b/clippy_remittance_final.txt @@ -0,0 +1,330 @@ +cargo : Checking remittance_split v0.1.0 (C: +\Users\ADMIN\Desktop\mide-drips\Remitwise-Contra +cts\remittance_split) +At line:1 char:1 ++ cargo clippy -p remittance_split +--all-targets -- -D warnings 2>&1 | ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mittance_split):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: used `assert_eq!` with a literal bool + --> remittance_split\src\test.rs:25:5 + | +25 | assert_eq!(success, true); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https:/ +/rust-lang.github.io/rust-clippy/rust-1.93.0/ind +ex.html#bool_assert_comparison + = note: `-D clippy::bool-assert-comparison` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::bool_assert_comparison)]` +help: replace it with `assert!(..)` + | +25 - assert_eq!(success, true); +25 + assert!(success); + | + +error: used `assert_eq!` with a literal bool + --> remittance_split\src\test.rs:82:5 + | +82 | assert_eq!(success, true); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https:/ +/rust-lang.github.io/rust-clippy/rust-1.93.0/ind +ex.html#bool_assert_comparison +help: replace it with `assert!(..)` + | +82 - assert_eq!(success, true); +82 + assert!(success); + | + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1223:9 + | +1223 | /// Owner authorizes the call, +percentages sum to 100, config is stored +correctly. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation + = note: `-D clippy::doc-lazy-continuation` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::doc_lazy_continuation)]` +help: indent this line + | +1223 | /// Owner authorizes the call, +percentages sum to 100, config is stored +correctly. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1247:9 + | +1247 | /// Calling initialize_split without +the owner authorizing should panic. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1247 | /// Calling initialize_split +without the owner authorizing should panic. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1262:9 + | +1262 | /// Percentages that do not sum to +100 must return PercentagesDoNotSumTo100. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1262 | /// Percentages that do not sum +to 100 must return PercentagesDoNotSumTo100. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1287:9 + | +1287 | /// Calling initialize_split a +second time should return AlreadyInitialized. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1287 | /// Calling initialize_split a +second time should return AlreadyInitialized. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1305:9 + | +1305 | /// Only the owner can call +update_split; any other address must get +Unauthorized. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1305 | /// Only the owner can call +update_split; any other address must get +Unauthorized. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1327:9 + | +1327 | /// update_split must reject +percentages that do not sum to 100. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1327 | /// update_split must reject +percentages that do not sum to 100. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1354:9 + | +1354 | /// Before initialize_split is +called, get_split must return the hardcoded + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1354 | /// Before initialize_split is +called, get_split must return the hardcoded + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1355:9 + | +1355 | /// default of [50, 30, 15, 5]. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1355 | /// default of [50, 30, 15, 5]. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1371:9 + | +1371 | /// Before initialize_split is +called, get_config must return None. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1371 | /// Before initialize_split is +called, get_config must return None. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1383:9 + | +1383 | /// After initialize_split, +get_config must return Some with correct owner. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1383 | /// After initialize_split, +get_config must return Some with correct owner. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1409:9 + | +1409 | /// Correct amounts for a positive +total; insurance receives the remainder. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1409 | /// Correct amounts for a +positive total; insurance receives the +remainder. + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1434:9 + | +1434 | /// total_amount of 0 or any +negative value must return InvalidAmount. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1434 | /// total_amount of 0 or any +negative value must return InvalidAmount. + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1462:9 + | +1462 | /// The sum of all split amounts +must always equal total_amount exactly + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1462 | /// The sum of all split amounts +must always equal total_amount exactly + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1463:9 + | +1463 | /// (insurance absorbs any integer +division remainder). + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1463 | /// (insurance absorbs any +integer division remainder). + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1492:9 + | +1492 | /// Events must be published when +initialize_split and update_split are called. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1492 | /// Events must be published +when initialize_split and update_split are +called. + | ++++ + +error: could not compile `remittance_split` +(lib test) due to 17 previous errors +warning: build failed, waiting for other jobs +to finish... diff --git a/clippy_remittance_lib.txt b/clippy_remittance_lib.txt new file mode 100644 index 00000000..87b8949e --- /dev/null +++ b/clippy_remittance_lib.txt @@ -0,0 +1,16 @@ +cargo : Checking remittance_split v0.1.0 (C: +\Users\ADMIN\Desktop\mide-drips\Remitwise-Contra +cts\remittance_split) +At line:1 char:1 ++ cargo clippy -p remittance_split --lib -- -D +warnings 2>&1 | Out-File ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mittance_split):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + + Finished `dev` profile [unoptimized + +debuginfo] target(s) in 6.43s diff --git a/clippy_remittance_tests.txt b/clippy_remittance_tests.txt new file mode 100644 index 00000000..a1105e1d --- /dev/null +++ b/clippy_remittance_tests.txt @@ -0,0 +1,328 @@ +cargo : Checking remittance_split v0.1.0 (C: +\Users\ADMIN\Desktop\mide-drips\Remitwise-Contra +cts\remittance_split) +At line:1 char:1 ++ cargo clippy -p remittance_split --tests -- +-D warnings 2>&1 | Out-Fi ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mittance_split):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + +error: used `assert_eq!` with a literal bool + --> remittance_split\src\test.rs:25:5 + | +25 | assert_eq!(success, true); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https:/ +/rust-lang.github.io/rust-clippy/rust-1.93.0/ind +ex.html#bool_assert_comparison + = note: `-D clippy::bool-assert-comparison` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::bool_assert_comparison)]` +help: replace it with `assert!(..)` + | +25 - assert_eq!(success, true); +25 + assert!(success); + | + +error: used `assert_eq!` with a literal bool + --> remittance_split\src\test.rs:82:5 + | +82 | assert_eq!(success, true); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https:/ +/rust-lang.github.io/rust-clippy/rust-1.93.0/ind +ex.html#bool_assert_comparison +help: replace it with `assert!(..)` + | +82 - assert_eq!(success, true); +82 + assert!(success); + | + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1223:9 + | +1223 | /// Owner authorizes the call, +percentages sum to 100, config is stored +correctly. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation + = note: `-D clippy::doc-lazy-continuation` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::doc_lazy_continuation)]` +help: indent this line + | +1223 | /// Owner authorizes the call, +percentages sum to 100, config is stored +correctly. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1247:9 + | +1247 | /// Calling initialize_split without +the owner authorizing should panic. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1247 | /// Calling initialize_split +without the owner authorizing should panic. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1262:9 + | +1262 | /// Percentages that do not sum to +100 must return PercentagesDoNotSumTo100. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1262 | /// Percentages that do not sum +to 100 must return PercentagesDoNotSumTo100. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1287:9 + | +1287 | /// Calling initialize_split a +second time should return AlreadyInitialized. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1287 | /// Calling initialize_split a +second time should return AlreadyInitialized. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1305:9 + | +1305 | /// Only the owner can call +update_split; any other address must get +Unauthorized. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1305 | /// Only the owner can call +update_split; any other address must get +Unauthorized. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1327:9 + | +1327 | /// update_split must reject +percentages that do not sum to 100. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1327 | /// update_split must reject +percentages that do not sum to 100. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1354:9 + | +1354 | /// Before initialize_split is +called, get_split must return the hardcoded + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1354 | /// Before initialize_split is +called, get_split must return the hardcoded + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1355:9 + | +1355 | /// default of [50, 30, 15, 5]. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1355 | /// default of [50, 30, 15, 5]. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1371:9 + | +1371 | /// Before initialize_split is +called, get_config must return None. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1371 | /// Before initialize_split is +called, get_config must return None. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1383:9 + | +1383 | /// After initialize_split, +get_config must return Some with correct owner. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1383 | /// After initialize_split, +get_config must return Some with correct owner. + | +++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1409:9 + | +1409 | /// Correct amounts for a positive +total; insurance receives the remainder. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1409 | /// Correct amounts for a +positive total; insurance receives the +remainder. + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1434:9 + | +1434 | /// total_amount of 0 or any +negative value must return InvalidAmount. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1434 | /// total_amount of 0 or any +negative value must return InvalidAmount. + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1462:9 + | +1462 | /// The sum of all split amounts +must always equal total_amount exactly + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1462 | /// The sum of all split amounts +must always equal total_amount exactly + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1463:9 + | +1463 | /// (insurance absorbs any integer +division remainder). + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1463 | /// (insurance absorbs any +integer division remainder). + | ++++ + +error: doc list item without indentation + --> remittance_split\src\lib.rs:1492:9 + | +1492 | /// Events must be published when +initialize_split and update_split are called. + | ^ + | + = help: if this is supposed to be its own +paragraph, add a blank line + = help: for further information visit https +://rust-lang.github.io/rust-clippy/rust-1.93.0/i +ndex.html#doc_lazy_continuation +help: indent this line + | +1492 | /// Events must be published +when initialize_split and update_split are +called. + | ++++ + +error: could not compile `remittance_split` +(lib test) due to 17 previous errors diff --git a/clippy_reporting.txt b/clippy_reporting.txt new file mode 100644 index 00000000..fd112261 --- /dev/null +++ b/clippy_reporting.txt @@ -0,0 +1,42 @@ +cargo : Checking remitwise-common v0.1.0 (C: +\Users\ADMIN\Desktop\mide-drips\Remitwise-Contra +cts\remitwise-common) +At line:1 char:1 ++ cargo clippy -p reporting --all-targets -- -D +warnings 2>&1 | Out-Fil ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: ( + Checking re...mitwise-common):String) [], + RemoteException + + FullyQualifiedErrorId : NativeCommandErro + r + + Checking reporting v0.1.0 (C:\Users\ADMIN\De +sktop\mide-drips\Remitwise-Contracts\reporting) +error: duplicated attribute + --> reporting\src\tests.rs:1:8 + | + 1 | #![cfg(test)] + | ^^^^ + | +note: first defined here + --> reporting\src\lib.rs:997:7 + | +997 | #[cfg(test)] + | ^^^^ +help: remove this attribute + --> reporting\src\tests.rs:1:8 + | + 1 | #![cfg(test)] + | ^^^^ + = help: for further information visit https: +//rust-lang.github.io/rust-clippy/rust-1.93.0/in +dex.html#duplicated_attributes + = note: `-D clippy::duplicated-attributes` +implied by `-D warnings` + = help: to override `-D warnings` add +`#[allow(clippy::duplicated_attributes)]` + +error: could not compile `reporting` (lib test) +due to 1 previous error diff --git a/data_migration/src/lib.rs b/data_migration/src/lib.rs index e91e007b..102e0a90 100644 --- a/data_migration/src/lib.rs +++ b/data_migration/src/lib.rs @@ -123,7 +123,10 @@ impl ExportSnapshot { /// Compute SHA256 checksum of the payload (canonical JSON). pub fn compute_checksum(&self) -> String { let mut hasher = Sha256::new(); - hasher.update(serde_json::to_vec(&self.payload).unwrap_or_else(|_| panic!("payload must be serializable"))); + hasher.update( + serde_json::to_vec(&self.payload) + .unwrap_or_else(|_| panic!("payload must be serializable")), + ); hex::encode(hasher.finalize().as_ref()) } diff --git a/emergency_killswitch/Cargo.toml b/emergency_killswitch/Cargo.toml index e3ff7eec..afd690ad 100644 --- a/emergency_killswitch/Cargo.toml +++ b/emergency_killswitch/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } diff --git a/emergency_killswitch/tests/test_killswitch.rs b/emergency_killswitch/tests/test_killswitch.rs index c49daade..c8667fcd 100644 --- a/emergency_killswitch/tests/test_killswitch.rs +++ b/emergency_killswitch/tests/test_killswitch.rs @@ -60,7 +60,7 @@ fn test_authorized_emergency_flow_coverage() { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, EmergencyKillswitch); + let contract_id = env.register(EmergencyKillswitch, ()); let client = EmergencyKillswitchClient::new(&env, &contract_id); let admin = Address::generate(&env); diff --git a/examples/bill_payments_example.rs b/examples/bill_payments_example.rs index dee3c269..9d4597bf 100644 --- a/examples/bill_payments_example.rs +++ b/examples/bill_payments_example.rs @@ -1,5 +1,6 @@ -use soroban_sdk::{Env, Address, String, testutils::Address as _}; use bill_payments::{BillPayments, BillPaymentsClient}; +use remitwise_common::CreateBillConfig; +use soroban_sdk::{testutils::Address as _, Address, Env, String}; fn main() { // 1. Setup the Soroban environment @@ -7,7 +8,7 @@ fn main() { env.mock_all_auths(); // 2. Register the BillPayments contract - let contract_id = env.register_contract(None, BillPayments); + let contract_id = env.register(BillPayments, ()); let client = BillPaymentsClient::new(&env, &contract_id); // 3. Generate a mock owner address @@ -21,20 +22,36 @@ fn main() { let due_date = env.ledger().timestamp() + 604800; // 1 week from now let currency = String::from_str(&env, "USD"); - println!("Creating bill: '{}' for {} {}", bill_name, amount, currency); - let bill_id = client.create_bill(&owner, &bill_name, &amount, &due_date, &false, &0, ¤cy).unwrap(); + println!( + "Creating bill: '{:?}' for {} {:?}", + bill_name, amount, currency + ); + let config = CreateBillConfig { + name: bill_name.clone(), + amount, + due_date, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: currency.clone(), + }; + let bill_id = client.create_bill(&owner, &config); + println!("Bill created successfully with ID: {}", bill_id); // 5. [Read] List unpaid bills let bill_page = client.get_unpaid_bills(&owner, &0, &5); println!("\nUnpaid Bills for {:?}:", owner); for bill in bill_page.items.iter() { - println!(" ID: {}, Name: {}, Amount: {} {}", bill.id, bill.name, bill.amount, bill.currency); + println!( + " ID: {}, Name: {:?}, Amount: {} {:?}", + bill.id, bill.name, bill.amount, bill.currency + ); } // 6. [Write] Pay the bill println!("\nPaying bill with ID: {}...", bill_id); - client.pay_bill(&owner, &bill_id).unwrap(); + client.pay_bill(&owner, &bill_id); println!("Bill paid successfully!"); // 7. [Read] Verify bill is no longer in unpaid list diff --git a/examples/family_wallet_example.rs b/examples/family_wallet_example.rs index 0781ebda..b2fc1381 100644 --- a/examples/family_wallet_example.rs +++ b/examples/family_wallet_example.rs @@ -1,5 +1,6 @@ -use soroban_sdk::{Env, Address, Vec, testutils::Address as _}; -use family_wallet::{FamilyWallet, FamilyWalletClient, FamilyRole}; +use family_wallet::{FamilyWallet, FamilyWalletClient}; +use remitwise_common::FamilyRole; +use soroban_sdk::{testutils::Address as _, Address, Env, Vec}; fn main() { // 1. Setup the Soroban environment @@ -7,7 +8,7 @@ fn main() { env.mock_all_auths(); // 2. Register the FamilyWallet contract - let contract_id = env.register_contract(None, FamilyWallet); + let contract_id = env.register(FamilyWallet, ()); let client = FamilyWalletClient::new(&env, &contract_id); // 3. Generate mock addresses @@ -22,21 +23,21 @@ fn main() { let mut initial_members = Vec::new(&env); initial_members.push_back(owner.clone()); initial_members.push_back(member1.clone()); - + client.init(&owner, &initial_members); println!("Wallet initialized successfully!"); // 5. [Read] Check roles of members let owner_member = client.get_member(&owner).unwrap(); println!("\nOwner Role: {:?}", owner_member.role); - + let m1_member = client.get_member(&member1).unwrap(); println!("Member 1 Role: {:?}", m1_member.role); // 6. [Write] Add a new family member with a specific role and spending limit println!("\nAdding new member: {:?}", member2); let spending_limit = 1000i128; - client.add_member(&owner, &member2, &FamilyRole::Member, &spending_limit).unwrap(); + client.add_member(&owner, &member2, &FamilyRole::Member, &spending_limit); println!("Member added successfully!"); // 7. [Read] Verify the new member diff --git a/examples/insurance_example.rs b/examples/insurance_example.rs index 591ec493..2b114952 100644 --- a/examples/insurance_example.rs +++ b/examples/insurance_example.rs @@ -1,5 +1,5 @@ -use soroban_sdk::{Env, Address, String, testutils::Address as _}; use insurance::{Insurance, InsuranceClient}; +use soroban_sdk::{testutils::Address as _, Address, Env, String}; fn main() { // 1. Setup the Soroban environment @@ -7,7 +7,7 @@ fn main() { env.mock_all_auths(); // 2. Register the Insurance contract - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); // 3. Generate a mock owner address @@ -21,25 +21,41 @@ fn main() { let monthly_premium = 200i128; let coverage_amount = 50000i128; - println!("Creating policy: '{}' with premium: {} and coverage: {}", policy_name, monthly_premium, coverage_amount); - let policy_id = client.create_policy(&owner, &policy_name, &coverage_type, &monthly_premium, &coverage_amount).unwrap(); + println!( + "Creating policy: '{:?}' with premium: {} and coverage: {}", + policy_name, monthly_premium, coverage_amount + ); + let policy_id = client.create_policy( + &owner, + &policy_name, + &coverage_type, + &monthly_premium, + &coverage_amount, + &None, + ); println!("Policy created successfully with ID: {}", policy_id); // 5. [Read] List active policies let policy_page = client.get_active_policies(&owner, &0, &5); println!("\nActive Policies for {:?}:", owner); for policy in policy_page.items.iter() { - println!(" ID: {}, Name: {}, Premium: {}, Coverage: {}", policy.id, policy.name, policy.monthly_premium, policy.coverage_amount); + println!( + " ID: {}, Name: {:?}, Premium: {}, Coverage: {}", + policy.id, policy.name, policy.monthly_premium, policy.coverage_amount + ); } // 6. [Write] Pay a premium println!("\nPaying premium for policy ID: {}...", policy_id); - client.pay_premium(&owner, &policy_id).unwrap(); + client.pay_premium(&owner, &policy_id); println!("Premium paid successfully!"); // 7. [Read] Verify policy status (next payment date updated) let policy = client.get_policy(&policy_id).unwrap(); - println!("Next Payment Date (Timestamp): {}", policy.next_payment_date); + println!( + "Next Payment Date (Timestamp): {}", + policy.next_payment_date + ); println!("\nExample completed successfully!"); } diff --git a/examples/orchestrator_example.rs b/examples/orchestrator_example.rs index 206bd282..32d39c3b 100644 --- a/examples/orchestrator_example.rs +++ b/examples/orchestrator_example.rs @@ -1,5 +1,5 @@ -use soroban_sdk::{Env, Address, testutils::Address as _}; use orchestrator::{Orchestrator, OrchestratorClient}; +use soroban_sdk::{testutils::Address as _, Address, Env}; fn main() { // 1. Setup the Soroban environment @@ -7,12 +7,12 @@ fn main() { env.mock_all_auths(); // 2. Register the Orchestrator contract - let contract_id = env.register_contract(None, Orchestrator); + let contract_id = env.register(Orchestrator, ()); let client = OrchestratorClient::new(&env, &contract_id); // 3. Generate mock addresses for all participants and contracts let caller = Address::generate(&env); - + // Contract addresses let family_wallet_addr = Address::generate(&env); let remittance_split_addr = Address::generate(&env); @@ -30,7 +30,10 @@ fn main() { // 4. [Write] Execute a complete remittance flow // This coordinates splitting the amount and paying into downstream contracts let total_amount = 5000i128; - println!("Executing complete remittance flow for amount: {}", total_amount); + println!( + "Executing complete remittance flow for amount: {}", + total_amount + ); println!("Orchestrating across:"); println!(" - Savings Goal ID: {}", goal_id); println!(" - Bill ID: {}", bill_id); @@ -38,8 +41,7 @@ fn main() { // In this dry-run example, we show the call signature. // In a full test environment, you would first set up the state in the dependent contracts. - - /* + client.execute_remittance_flow( &caller, &total_amount, @@ -50,9 +52,8 @@ fn main() { &insurance_addr, &goal_id, &bill_id, - &policy_id - ).unwrap(); - */ + &policy_id, + ); println!("\nOrchestrator is designed to handle complex cross-contract workflows atomically."); println!("Example setup completed successfully!"); diff --git a/examples/remittance_split_example.rs b/examples/remittance_split_example.rs index c7bdbb87..bf3ec488 100644 --- a/examples/remittance_split_example.rs +++ b/examples/remittance_split_example.rs @@ -1,5 +1,5 @@ -use soroban_sdk::{Env, Address, testutils::Address as _}; use remittance_split::{RemittanceSplit, RemittanceSplitClient}; +use soroban_sdk::{testutils::Address as _, Address, Env}; fn main() { // 1. Setup the Soroban environment @@ -7,7 +7,7 @@ fn main() { env.mock_all_auths(); // 2. Register the RemittanceSplit contract - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); // 3. Generate a mock owner address @@ -30,7 +30,10 @@ fn main() { // 6. [Write] Simulate a remittance distribution let total_amount = 1000i128; - println!("\nCalculating allocation for total amount: {}", total_amount); + println!( + "\nCalculating allocation for total amount: {}", + total_amount + ); let allocations = client.calculate_split(&total_amount); println!("Allocations:"); diff --git a/examples/reporting_example.rs b/examples/reporting_example.rs index bb2026be..5d00ddb2 100644 --- a/examples/reporting_example.rs +++ b/examples/reporting_example.rs @@ -1,5 +1,5 @@ -use soroban_sdk::{Env, Address, testutils::Address as _}; -use reporting::{ReportingClient, Category}; +use reporting::ReportingContractClient; +use soroban_sdk::{testutils::Address as _, Address, Env}; // Mock contracts for the reporting example // In a real scenario, these would be the actual deployed contract IDs @@ -11,13 +11,12 @@ fn main() { env.mock_all_auths(); // 2. Register the Reporting contract - let contract_id = env.register_contract(None, reporting::Reporting); - let client = ReportingClient::new(&env, &contract_id); + let contract_id = env.register(reporting::ReportingContract, ()); + let client = ReportingContractClient::new(&env, &contract_id); // 3. Generate mock addresses for dependencies and admin let admin = Address::generate(&env); - let user = Address::generate(&env); - + // Dependencies let split_addr = Address::generate(&env); let savings_addr = Address::generate(&env); @@ -29,7 +28,7 @@ fn main() { // 4. [Write] Initialize the contract println!("Initializing Reporting contract with admin: {:?}", admin); - client.init(&admin).unwrap(); + client.init(&admin); // 5. [Write] Configure contract addresses println!("Configuring dependency addresses..."); @@ -39,18 +38,18 @@ fn main() { &savings_addr, &bills_addr, &insurance_addr, - &family_addr - ).unwrap(); + &family_addr, + ); println!("Addresses configured successfully!"); // 6. [Read] Generate a mock report - // Note: In this environment, calling reports that query other contracts + // Note: In this environment, calling reports that query other contracts // would require those contracts to be registered at the provided addresses. // For simplicity in this standalone example, we'll focus on the configuration and health score calculation // if the logic allows it without full cross-contract state. - + // However, since we're using Env::default(), we can actually register simple mocks if needed. - // But for a clear "runnable example" that doesn't get too complex, + // But for a clear "runnable example" that doesn't get too complex, // showing the setup and a successful call is the primary goal. println!("\nReporting contract is now ready to generate financial insights."); diff --git a/examples/savings_goals_example.rs b/examples/savings_goals_example.rs index 67bb1dd3..00531fae 100644 --- a/examples/savings_goals_example.rs +++ b/examples/savings_goals_example.rs @@ -1,5 +1,5 @@ -use soroban_sdk::{Env, Address, String, testutils::Address as _}; use savings_goals::{SavingsGoalContract, SavingsGoalContractClient}; +use soroban_sdk::{testutils::Address as _, Address, Env, String}; fn main() { // 1. Setup the Soroban environment @@ -7,7 +7,7 @@ fn main() { env.mock_all_auths(); // 2. Register the SavingsGoals contract - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); // 3. Generate a mock owner address @@ -20,14 +20,17 @@ fn main() { let target_amount = 5000i128; let target_date = env.ledger().timestamp() + 31536000; // 1 year from now - println!("Creating savings goal: '{}' with target: {}", goal_name, target_amount); - let goal_id = client.create_goal(&owner, &goal_name, &target_amount, &target_date).unwrap(); + println!( + "Creating savings goal: '{:?}' with target: {}", + goal_name, target_amount + ); + let goal_id = client.create_goal(&owner, &goal_name, &target_amount, &target_date); println!("Goal created successfully with ID: {}", goal_id); // 5. [Read] Fetch the goal to check progress let goal = client.get_goal(&goal_id).unwrap(); println!("\nGoal Details:"); - println!(" Name: {}", goal.name); + println!(" Name: {:?}", goal.name); println!(" Current Amount: {}", goal.current_amount); println!(" Target Amount: {}", goal.target_amount); println!(" Locked: {}", goal.locked); @@ -35,7 +38,7 @@ fn main() { // 6. [Write] Add funds to the goal let contribution = 1000i128; println!("\nContributing {} to the goal...", contribution); - let new_total = client.add_to_goal(&owner, &goal_id, &contribution).unwrap(); + let new_total = client.add_to_goal(&owner, &goal_id, &contribution); println!("Contribution successful! New total: {}", new_total); // 7. [Read] Verify progress again diff --git a/family_wallet/Cargo.toml b/family_wallet/Cargo.toml index 02b4deed..41614c60 100644 --- a/family_wallet/Cargo.toml +++ b/family_wallet/Cargo.toml @@ -7,10 +7,10 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" remitwise-common = { path = "../remitwise-common" } [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } diff --git a/family_wallet/src/lib.rs b/family_wallet/src/lib.rs index 06a2f41d..1395c781 100644 --- a/family_wallet/src/lib.rs +++ b/family_wallet/src/lib.rs @@ -580,7 +580,9 @@ impl FamilyWallet { .get(&symbol_short!("PEND_TXS")) .unwrap_or_else(|| panic!("Pending transactions map not initialized")); - let mut pending_tx = pending_txs.get(tx_id).unwrap_or_else(|| panic!("Transaction not found")); + let mut pending_tx = pending_txs + .get(tx_id) + .unwrap_or_else(|| panic!("Transaction not found")); let current_time = env.ledger().timestamp(); if current_time > pending_tx.expires_at { @@ -1592,7 +1594,9 @@ impl FamilyWallet { .instance() .get(&symbol_short!("MEMBERS")) .unwrap_or_else(|| panic!("Wallet not initialized")); - let member = members.get(caller.clone()).unwrap_or_else(|| panic!("Not a family member")); + let member = members + .get(caller.clone()) + .unwrap_or_else(|| panic!("Not a family member")); if Self::role_has_expired(env, caller) { panic!("Role has expired"); } diff --git a/family_wallet/test_snapshots/test/test_add_and_remove_family_member.1.json b/family_wallet/test_snapshots/test/test_add_and_remove_family_member.1.json index d9363c67..d3cd24c8 100644 --- a/family_wallet/test_snapshots/test/test_add_and_remove_family_member.1.json +++ b/family_wallet/test_snapshots/test/test_add_and_remove_family_member.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -81,7 +82,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -706,313 +707,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "add_family_member" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_family_member" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_family_member" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_family_member" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "added_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "address" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "role" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "spending_limit" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "remove_family_member" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "remove_family_member" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_family_member" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_family_member" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_add_member_unauthorized.1.json b/family_wallet/test_snapshots/test/test_add_member_unauthorized.1.json index 19549506..ba715fc2 100644 --- a/family_wallet/test_snapshots/test/test_add_member_unauthorized.1.json +++ b/family_wallet/test_snapshots/test/test_add_member_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -495,230 +496,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "add_family_member" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only Owner or Admin can add family members' from contract function 'Symbol(obj#65)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract call failed" - }, - { - "symbol": "add_family_member" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u32": 3 - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_archive_old_transactions.1.json b/family_wallet/test_snapshots/test/test_archive_old_transactions.1.json index f5951d6a..d5f28ca4 100644 --- a/family_wallet/test_snapshots/test/test_archive_old_transactions.1.json +++ b/family_wallet/test_snapshots/test/test_archive_old_transactions.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -55,7 +56,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -599,205 +600,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "wallet" - }, - { - "vec": [ - { - "symbol": "TransactionsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "u32": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_archived_transactions" - } - ], - "data": { - "u32": 10 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_archived_transactions" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_archive_ttl_extended_on_archive_transactions.1.json b/family_wallet/test_snapshots/test/test_archive_ttl_extended_on_archive_transactions.1.json index 8f9f19cb..b1efefeb 100644 --- a/family_wallet/test_snapshots/test/test_archive_ttl_extended_on_archive_transactions.1.json +++ b/family_wallet/test_snapshots/test/test_archive_ttl_extended_on_archive_transactions.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -55,14 +56,14 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 510000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 100, "min_temp_entry_ttl": 100, - "max_entry_ttl": 3000000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -540,7 +541,7 @@ }, "ext": "v0" }, - 3000099 + 3110499 ] ], [ @@ -573,7 +574,7 @@ }, "ext": "v0" }, - 3509999 + 3620399 ] ], [ @@ -599,156 +600,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "wallet" - }, - { - "vec": [ - { - "symbol": "TransactionsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "u32": 0 - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_archive_unauthorized.1.json b/family_wallet/test_snapshots/test/test_archive_unauthorized.1.json index 0e757a74..18f937a9 100644 --- a/family_wallet/test_snapshots/test/test_archive_unauthorized.1.json +++ b/family_wallet/test_snapshots/test/test_archive_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -495,221 +496,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only Owner or Admin can archive transactions' from contract function 'Symbol(obj#63)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract call failed" - }, - { - "symbol": "archive_old_transactions" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1000000 - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_cleanup_expired_pending.1.json b/family_wallet/test_snapshots/test/test_cleanup_expired_pending.1.json index 2e4a679e..01cc1747 100644 --- a/family_wallet/test_snapshots/test/test_cleanup_expired_pending.1.json +++ b/family_wallet/test_snapshots/test/test_cleanup_expired_pending.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -175,7 +176,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 86401, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1110,677 +1111,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "init_asset" - } - ], - "data": { - "bytes": "0000000161616100000000000000000000000000000000000000000000000000000000000000000000000006" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "set_admin" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "set_admin" - }, - { - "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_admin" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "mint" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "mint" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "mint" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "data" - }, - "val": { - "vec": [ - { - "symbol": "Withdrawal" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - }, - { - "key": { - "symbol": "expires_at" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "proposer" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "signatures" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - }, - { - "key": { - "symbol": "tx_id" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "tx_type" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cleanup_expired_pending" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "wallet" - }, - { - "vec": [ - { - "symbol": "ExpiredCleaned" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "cleanup_expired_pending" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_cleanup_unauthorized.1.json b/family_wallet/test_snapshots/test/test_cleanup_unauthorized.1.json index 92210331..18f937a9 100644 --- a/family_wallet/test_snapshots/test/test_cleanup_unauthorized.1.json +++ b/family_wallet/test_snapshots/test/test_cleanup_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -495,208 +496,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cleanup_expired_pending" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only Owner or Admin can cleanup expired transactions' from contract function 'Symbol(obj#63)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract call failed" - }, - { - "symbol": "cleanup_expired_pending" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_configure_multisig.1.json b/family_wallet/test_snapshots/test/test_configure_multisig.1.json index 04cb91ba..334fc22d 100644 --- a/family_wallet/test_snapshots/test/test_configure_multisig.1.json +++ b/family_wallet/test_snapshots/test/test_configure_multisig.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -83,7 +84,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -676,237 +677,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "signers" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - }, - { - "key": { - "symbol": "spending_limit" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - }, - { - "key": { - "symbol": "threshold" - }, - "val": { - "u32": 2 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_configure_multisig_unauthorized.1.json b/family_wallet/test_snapshots/test/test_configure_multisig_unauthorized.1.json index 0f9e47f4..035fb576 100644 --- a/family_wallet/test_snapshots/test/test_configure_multisig_unauthorized.1.json +++ b/family_wallet/test_snapshots/test/test_configure_multisig_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -36,7 +37,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -542,281 +543,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only Owner or Admin can configure multi-sig' from contract function 'Symbol(obj#73)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract call failed" - }, - { - "symbol": "configure_multisig" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_different_thresholds_for_different_transaction_types.1.json b/family_wallet/test_snapshots/test/test_different_thresholds_for_different_transaction_types.1.json index 6622a0fa..6ab271d2 100644 --- a/family_wallet/test_snapshots/test/test_different_thresholds_for_different_transaction_types.1.json +++ b/family_wallet/test_snapshots/test/test_different_thresholds_for_different_transaction_types.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -182,7 +183,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -870,585 +871,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 3 - }, - { - "u32": 3 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 4 - }, - { - "u32": 4 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "signers" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - }, - { - "key": { - "symbol": "spending_limit" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - }, - { - "key": { - "symbol": "threshold" - }, - "val": { - "u32": 2 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "signers" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - }, - { - "key": { - "symbol": "spending_limit" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "threshold" - }, - "val": { - "u32": 3 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_multisig_config" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "signers" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - }, - { - "key": { - "symbol": "spending_limit" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "threshold" - }, - "val": { - "u32": 4 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_emergency_mode_direct_transfer_within_limits.1.json b/family_wallet/test_snapshots/test/test_emergency_mode_direct_transfer_within_limits.1.json index c69a1af5..f95af9eb 100644 --- a/family_wallet/test_snapshots/test/test_emergency_mode_direct_transfer_within_limits.1.json +++ b/family_wallet/test_snapshots/test/test_emergency_mode_direct_transfer_within_limits.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -194,7 +195,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1151,916 +1152,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "init_asset" - } - ], - "data": { - "bytes": "0000000161616100000000000000000000000000000000000000000000000000000000000000000000000006" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "set_admin" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "set_admin" - }, - { - "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_admin" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "mint" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "mint" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "mint" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_emergency" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - }, - { - "u64": 3600 - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_emergency" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "set_emergency_mode" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "bool": true - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "emerg" - }, - { - "vec": [ - { - "symbol": "ModeOn" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_emergency_mode" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "is_emergency_mode" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "is_emergency_mode" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "propose_emergency_transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 15000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "emerg" - }, - { - "vec": [ - { - "symbol": "TransferInit" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 15000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 15000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "transfer" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 15000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "transfer" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "emerg" - }, - { - "vec": [ - { - "symbol": "TransferExec" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 15000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "propose_emergency_transfer" - } - ], - "data": { - "u64": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 15000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 35000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_last_emergency_at" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_last_emergency_at" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_multisig_threshold_validation.1.json b/family_wallet/test_snapshots/test/test_multisig_threshold_validation.1.json index 511e7fda..51d5fb96 100644 --- a/family_wallet/test_snapshots/test/test_multisig_threshold_validation.1.json +++ b/family_wallet/test_snapshots/test/test_multisig_threshold_validation.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -249,7 +250,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1335,908 +1336,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739" - }, - { - "symbol": "init_asset" - } - ], - "data": { - "bytes": "0000000161616100000000000000000000000000000000000000000000000000000000000000000000000007" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739" - }, - { - "symbol": "set_admin" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "set_admin" - }, - { - "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPP4V" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPP4V" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_admin" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739" - }, - { - "symbol": "mint" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "mint" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPP4V" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "mint" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u32": 3 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CDS3FDGQ4JA2V3F26Y4BMWWJEC5TT26RJBN7KIQKUMVO2MAOCMDTSZ7A" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "data" - }, - "val": { - "vec": [ - { - "symbol": "Withdrawal" - }, - { - "address": "CDS3FDGQ4JA2V3F26Y4BMWWJEC5TT26RJBN7KIQKUMVO2MAOCMDTSZ7A" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - }, - { - "key": { - "symbol": "expires_at" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "proposer" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "signatures" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - }, - { - "key": { - "symbol": "tx_id" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "tx_type" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u64": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739" - }, - { - "symbol": "transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "transfer" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPP4V" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "transfer" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "e5b28cd0e241aaecbaf638165ac920bb39ebd1485bf5220aa32aed300e130739", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_propose_emergency_transfer.1.json b/family_wallet/test_snapshots/test/test_propose_emergency_transfer.1.json index f1c311ff..8e1513e0 100644 --- a/family_wallet/test_snapshots/test/test_propose_emergency_transfer.1.json +++ b/family_wallet/test_snapshots/test/test_propose_emergency_transfer.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -222,7 +223,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1231,673 +1232,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "init_asset" - } - ], - "data": { - "bytes": "0000000161616100000000000000000000000000000000000000000000000000000000000000000000000006" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "set_admin" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "set_admin" - }, - { - "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_admin" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "mint" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "mint" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "mint" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 4 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "propose_emergency_transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 30000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "propose_emergency_transfer" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 30000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "transfer" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 30000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "transfer" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 30000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_propose_role_change.1.json b/family_wallet/test_snapshots/test/test_propose_role_change.1.json index 1e9faa2c..48f432d4 100644 --- a/family_wallet/test_snapshots/test/test_propose_role_change.1.json +++ b/family_wallet/test_snapshots/test/test_propose_role_change.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -124,7 +125,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -798,344 +799,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 3 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "propose_role_change" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "propose_role_change" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_family_member" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_family_member" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "added_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "address" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "role" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "spending_limit" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_propose_split_config_change.1.json b/family_wallet/test_snapshots/test/test_propose_split_config_change.1.json index 244289af..47c6f199 100644 --- a/family_wallet/test_snapshots/test/test_propose_split_config_change.1.json +++ b/family_wallet/test_snapshots/test/test_propose_split_config_change.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -134,7 +135,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -758,441 +759,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "propose_split_config_change" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 40 - }, - { - "u32": 30 - }, - { - "u32": 20 - }, - { - "u32": 10 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "propose_split_config_change" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "data" - }, - "val": { - "vec": [ - { - "symbol": "SplitConfigChange" - }, - { - "u32": 40 - }, - { - "u32": 30 - }, - { - "u32": 20 - }, - { - "u32": 10 - } - ] - } - }, - { - "key": { - "symbol": "expires_at" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "proposer" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "signatures" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - }, - { - "key": { - "symbol": "tx_id" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "tx_type" - }, - "val": { - "u32": 2 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_storage_stats.1.json b/family_wallet/test_snapshots/test/test_storage_stats.1.json index 68fda714..14210a04 100644 --- a/family_wallet/test_snapshots/test/test_storage_stats.1.json +++ b/family_wallet/test_snapshots/test/test_storage_stats.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -58,7 +59,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -646,239 +647,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 1000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "wallet" - }, - { - "vec": [ - { - "symbol": "TransactionsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_transactions" - } - ], - "data": { - "u32": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_storage_stats" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_storage_stats" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "archived_transactions" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "last_updated" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "pending_transactions" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "total_members" - }, - "val": { - "u32": 3 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_withdraw_above_threshold_requires_multisig.1.json b/family_wallet/test_snapshots/test/test_withdraw_above_threshold_requires_multisig.1.json index 574d0361..e638d8ab 100644 --- a/family_wallet/test_snapshots/test/test_withdraw_above_threshold_requires_multisig.1.json +++ b/family_wallet/test_snapshots/test/test_withdraw_above_threshold_requires_multisig.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -226,7 +227,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1235,950 +1236,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "init_asset" - } - ], - "data": { - "bytes": "0000000161616100000000000000000000000000000000000000000000000000000000000000000000000006" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "set_admin" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "set_admin" - }, - { - "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_admin" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "mint" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "mint" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "mint" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "data" - }, - "val": { - "vec": [ - { - "symbol": "Withdrawal" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - }, - { - "key": { - "symbol": "expires_at" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "proposer" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "signatures" - }, - "val": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - }, - { - "key": { - "symbol": "tx_id" - }, - "val": { - "u64": 1 - } - }, - { - "key": { - "symbol": "tx_type" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "transfer" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "transfer" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "sign_transaction" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 20000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 30000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": { - "u64": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_pending_transaction" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/test_snapshots/test/test_withdraw_below_threshold_no_multisig.1.json b/family_wallet/test_snapshots/test/test_withdraw_below_threshold_no_multisig.1.json index 2373f748..07f2e5db 100644 --- a/family_wallet/test_snapshots/test/test_withdraw_below_threshold_no_multisig.1.json +++ b/family_wallet/test_snapshots/test/test_withdraw_below_threshold_no_multisig.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -180,7 +181,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1114,617 +1115,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "init_asset" - } - ], - "data": { - "bytes": "0000000161616100000000000000000000000000000000000000000000000000000000000000000000000006" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init_asset" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "set_admin" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "set_admin" - }, - { - "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "set_admin" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "mint" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "mint" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 50000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "mint" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u32": 2 - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - ] - }, - { - "i128": { - "hi": 0, - "lo": 10000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_multisig" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "transfer" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "i128": { - "hi": 0, - "lo": 5000000000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "transfer" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 5000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "transfer" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw" - } - ], - "data": { - "u64": 0 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 5000000000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0" - }, - { - "symbol": "balance" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "04cadb4a570fd2e4652e814101509912cce6c9a2325d6eec8d7100caf859f3e0", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "balance" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 45000000000 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/family_wallet/tests/gas_bench.rs b/family_wallet/tests/gas_bench.rs index 5b0084fd..dbfde5b0 100644 --- a/family_wallet/tests/gas_bench.rs +++ b/family_wallet/tests/gas_bench.rs @@ -18,7 +18,7 @@ fn bench_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 100_000, }); - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -27,7 +27,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -39,7 +39,7 @@ where #[test] fn bench_configure_multisig_worst_case() { let env = bench_env(); - let contract_id = env.register_contract(None, FamilyWallet); + let contract_id = env.register(FamilyWallet, ()); let client = FamilyWalletClient::new(&env, &contract_id); let owner =
::generate(&env); diff --git a/fix_large.py b/fix_large.py new file mode 100644 index 00000000..d7f78edf --- /dev/null +++ b/fix_large.py @@ -0,0 +1,119 @@ +import os +import re + +filepath = 'bill_payments/tests/stress_test_large_amounts.rs' +with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + +# Pattern to match the mangled CreateBillConfig blocks +# They all follow a similar pattern: +# &remitwise_common::CreateBillConfig { +# name: String::from_str(&env.clone(), +# amount: "NAME"), +# due_date: &VARIABLE, +# recurring: &TIMESTAMP, +# frequency_days: &BOOL, +# external_ref: None, +# currency: VAL, +# &None, +# &String::from_str(&env, "XLM").clone(), +# } + +# We need to extract: +# NAME, VARIABLE (amount), TIMESTAMP (due_date), BOOL (recurring), VAL (frequency_days) + +pattern = re.compile( + r'&remitwise_common::CreateBillConfig\s*\{\s*' + r'name:\s*String::from_str\(&env\.clone\(\),\s*' + r'amount:\s*"(.+?)"\),\s*' + r'due_date:\s*&(.+?),\s*' + r'recurring:\s*&(.+?),\s*' + r'frequency_days:\s*&(.+?),\s*' + r'external_ref:\s*None,\s*' + r'currency:\s*(.+?),\s*' + r'&None,\s*' + r'&String::from_str\(&env,\s*"XLM"\)\.clone\(\),\s*\}', + re.DOTALL +) + +def fix(m): + name = m.group(1) + amount_var = m.group(2) + due_date_val = m.group(3) + recurring_val = m.group(4) + freq_val = m.group(5) + + # Correct positions: + # name: ... + # amount: amount_var + # due_date: due_date_val + # recurring: recurring_val + # frequency_days: freq_val + + return f'''&remitwise_common::CreateBillConfig {{ + name: String::from_str(&env, "{name}"), + amount: {amount_var}, + due_date: {due_date_val}, + recurring: {recurring_val}, + frequency_days: {freq_val}, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }}''' + +# Apply the fix +new_content = pattern.sub(fix, content) + +# There are also some in a loop that look slightly different +# name: String::from_str(&env.clone(), +# amount: &format!("Bill{}", +# due_date: i)), +# recurring: &amount, +# frequency_days: &1000000, +# external_ref: None, +# currency: false, +# &0, +# &None, +# &String::from_str(&env, "XLM").clone(), + +loop_pattern = re.compile( + r'&remitwise_common::CreateBillConfig\s*\{\s*' + r'name:\s*String::from_str\(&env\.clone\(\),\s*' + r'amount:\s*&format!\("(.+?)",\s*due_date:\s*(.+?)\)\),\s*' + r'recurring:\s*&(.+?),\s*' + r'frequency_days:\s*&(.+?),\s*' + r'external_ref:\s*None,\s*' + r'currency:\s*(.+?),\s*' + r'&0,\s*' + r'&None,\s*' + r'&String::from_str\(&env,\s*"XLM"\)\.clone\(\),\s*\}', + re.DOTALL +) + +def fix_loop(m): + name_fmt = m.group(1) + name_arg = m.group(2) + amount_var = m.group(3) + due_date_val = m.group(4) + recurring_val = m.group(5) # This was false in original? + + return f'''&remitwise_common::CreateBillConfig {{ + name: String::from_str(&env, &format!("{name_fmt}", {name_arg})), + amount: {amount_var}, + due_date: {due_date_val}, + recurring: {recurring_val}, + frequency_days: 0, + external_ref: None, + currency: String::from_str(&env, "XLM"), + }}''' + +# new_content = loop_pattern.sub(fix_loop, new_content) +# Let's just do a more general replace if it's still weird. +# Actually, I'll just write a script that has the FINISHED content if I can read it all. +# But it's 473 lines. + +# Let's try one more general regex that catches everything and I'll inspect them. + +with open(filepath, 'w', encoding='utf-8') as f: + f.write(new_content) + +print('Updated stress_test_large_amounts.rs') diff --git a/fix_redundant.py b/fix_redundant.py new file mode 100644 index 00000000..82dba53d --- /dev/null +++ b/fix_redundant.py @@ -0,0 +1,22 @@ +import os +import re + +files = [ + 'bill_payments/tests/stress_tests.rs', + 'bill_payments/tests/stress_test_large_amounts.rs' +] + +for filepath in files: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + # Replace 'amount: amount,' with 'amount,' + # Replace 'due_date: due_date,' with 'due_date,' + + new_content = re.sub(r'amount:\s*amount,', 'amount,', content) + new_content = re.sub(r'due_date:\s*due_date,', 'due_date,', new_content) + + with open(filepath, 'w', encoding='utf-8') as f: + f.write(new_content) + +print('Fixed redundant field names.') diff --git a/fix_refs.py b/fix_refs.py new file mode 100644 index 00000000..710a5365 --- /dev/null +++ b/fix_refs.py @@ -0,0 +1,30 @@ +import os +import re + +tests_dir = 'bill_payments/tests' +files = [f for f in os.listdir(tests_dir) if f.endswith('.rs')] + +for filename in files: + filepath = os.path.join(tests_dir, filename) + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + # Need to match lines like mount: &500i128, and replace with mount: 500i128, + # Also due_date: &due_date, to due_date: due_date, (but not changing +ame: &name unless it's in CreateBillConfig) + + # Just replacing within the CreateBillConfig block is safest + def fix_config_block(match): + block = match.group(0) + block = re.sub(r'amount:\s*&', 'amount: ', block) + block = re.sub(r'due_date:\s*&', 'due_date: ', block) + block = re.sub(r'recurring:\s*&', 'recurring: ', block) + block = re.sub(r'frequency_days:\s*&', 'frequency_days: ', block) + return block + + new_content = re.sub(r'CreateBillConfig\s*\{[^}]+\}', fix_config_block, content) + + with open(filepath, 'w', encoding='utf-8') as f: + f.write(new_content) + +print('Fixed reference types in CreateBillConfig.') diff --git a/fix_tests.py b/fix_tests.py new file mode 100644 index 00000000..8fb7ec7d --- /dev/null +++ b/fix_tests.py @@ -0,0 +1,95 @@ +import os +import re + +tests_dir = 'bill_payments/tests' +files = [f for f in os.listdir(tests_dir) if f.endswith('.rs')] + +pattern = re.compile(r'client\.create_bill\(\s*([\w\&]+),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*(.+?),\s*\)', re.DOTALL) + +def replacer(match): + owner = match.group(1) + name = match.group(2).strip() + amount = match.group(3).strip() + due_date = match.group(4).strip() + recurring = match.group(5).strip() + freq = match.group(6).strip() + currency = match.group(7).strip() + + # Handle name cloning if it's a reference + name_val = f"{name}.clone()" if name.startswith("&") else name + + # Handle currency string creation or cloning + curr_val = f"{currency}.clone()" if currency.startswith("&") else currency + if curr_val.startswith("&String::from_str"): + curr_val = curr_val[1:] # Remove & + if curr_val.endswith(".clone()"): + curr_val = curr_val[:-8] + if curr_val.startswith("&soroban_sdk::String::from_str"): + curr_val = curr_val[1:] + if curr_val.endswith(".clone()"): + curr_val = curr_val[:-8] + + return f'''client.create_bill( + {owner}, + &remitwise_common::CreateBillConfig {{ + name: {named}, + amount: {amount}, + due_date: {due_date}, + recurring: {recurring}, + frequency_days: {freq}, + external_ref: None, + currency: {curr_val}, + }} + )''' + +for filename in files: + filepath = os.path.join(tests_dir, filename) + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + # Adding CreateBillConfig import if not present + if 'remitwise_common::CreateBillConfig' not in content: + content = content.replace('use remitwise_common::{', 'use remitwise_common::{CreateBillConfig, ') + if 'CreateBillConfig' not in content: + content = "use remitwise_common::CreateBillConfig;\n" + content + + # Just use the fully qualified path in the replacement to avoid import issues + + def safe_repl(m): + owner = m.group(1) + name = m.group(2).strip() + amount = m.group(3).strip() + due_date = m.group(4).strip() + recurring = m.group(5).strip() + freq = m.group(6).strip() + currency = m.group(7).strip() + + name_val = f"{name[1:]}.clone()" if name.startswith("&") else f"{name}.clone()" + curr_val = currency + if curr_val.startswith("&String::from_str"): + curr_val = curr_val[1:] + elif curr_val.startswith("&soroban_sdk::String::from_str"): + curr_val = curr_val[1:] + elif curr_val.startswith("&"): + curr_val = f"{curr_val[1:]}.clone()" + else: + curr_val = f"{curr_val}.clone()" + + return f'''client.create_bill( + {owner}, + &remitwise_common::CreateBillConfig {{ + name: {name_val}, + amount: {amount}, + due_date: {due_date}, + recurring: {recurring}, + frequency_days: {freq}, + external_ref: None, + currency: {curr_val}, + }} + )''' + + new_content = pattern.sub(safe_repl, content) + with open(filepath, 'w', encoding='utf-8') as f: + f.write(new_content) + +print('Replaced create_bill usages in tests.') diff --git a/insurance/Cargo.toml b/insurance/Cargo.toml index d38e259c..5569948f 100644 --- a/insurance/Cargo.toml +++ b/insurance/Cargo.toml @@ -7,17 +7,12 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "21.0.0" +soroban-sdk = "22.0.1" +remitwise-common = { path = "../remitwise-common" } [dev-dependencies] -soroban-sdk = { version = "21.0.0", features = ["testutils"] } +proptest = "1.10.0" +soroban-sdk = { version = "22.0.1", features = ["testutils"] } +testutils = { path = "../testutils" } + -[profile.release] -opt-level = "z" -overflow-checks = true -debug = 0 -strip = "symbols" -debug-assertions = false -panic = "abort" -codegen-units = 1 -lto = true \ No newline at end of file diff --git a/insurance/src/lib.rs b/insurance/src/lib.rs index 8063705a..c6390d69 100644 --- a/insurance/src/lib.rs +++ b/insurance/src/lib.rs @@ -1,9 +1,1735 @@ -pub fn pay_premium(env: Env, policy_id: BytesN<32>) { - let killswitch_id = get_killswitch_id(&env); - let is_paused: bool = env.invoke_contract(&killswitch_id, &symbol_short!("is_paused"), vec![&env, Symbol::new(&env, "insurance")].into()); - - if is_paused { - panic!("Contract is currently paused for emergency maintenance."); - } - // ... rest of the logic -} \ No newline at end of file +#![no_std] +use soroban_sdk::{ + contract, contracterror, contractimpl, contracttype, symbol_short, Address, Env, Map, String, + Symbol, Vec, +}; + +// Event topics +const POLICY_CREATED: Symbol = symbol_short!("created"); +const PREMIUM_PAID: Symbol = symbol_short!("paid"); +const POLICY_DEACTIVATED: Symbol = symbol_short!("deactive"); + +#[derive(Clone)] +#[contracttype] +pub struct PolicyCreatedEvent { + pub policy_id: u32, + pub name: String, + pub coverage_type: String, + pub monthly_premium: i128, + pub coverage_amount: i128, + pub timestamp: u64, +} + +#[derive(Clone)] +#[contracttype] +pub struct PremiumPaidEvent { + pub policy_id: u32, + pub name: String, + pub amount: i128, + pub next_payment_date: u64, + pub timestamp: u64, +} + +#[derive(Clone)] +#[contracttype] +pub struct PolicyDeactivatedEvent { + pub policy_id: u32, + pub name: String, + pub timestamp: u64, +} + +const INSTANCE_LIFETIME_THRESHOLD: u32 = 17280; +const INSTANCE_BUMP_AMOUNT: u32 = 518400; + +const CONTRACT_VERSION: u32 = 1; +const MAX_BATCH_SIZE: u32 = 50; +const STORAGE_PREMIUM_TOTALS: Symbol = symbol_short!("PRM_TOT"); + +/// Pagination constants +pub const DEFAULT_PAGE_LIMIT: u32 = 20; +pub const MAX_PAGE_LIMIT: u32 = 50; + +pub mod pause_functions { + use soroban_sdk::{symbol_short, Symbol}; + pub const CREATE_POLICY: Symbol = symbol_short!("crt_pol"); + pub const PAY_PREMIUM: Symbol = symbol_short!("pay_prem"); + pub const DEACTIVATE: Symbol = symbol_short!("deact"); + pub const CREATE_SCHED: Symbol = symbol_short!("crt_sch"); + pub const MODIFY_SCHED: Symbol = symbol_short!("mod_sch"); + pub const CANCEL_SCHED: Symbol = symbol_short!("can_sch"); +} + +#[derive(Clone)] +#[contracttype] +pub struct InsurancePolicy { + pub id: u32, + pub owner: Address, + pub name: String, + pub coverage_type: String, + pub external_ref: Option, + pub monthly_premium: i128, + pub coverage_amount: i128, + pub active: bool, + pub next_payment_date: u64, + pub schedule_id: Option, +} + +/// Paginated result for insurance policy queries +#[contracttype] +#[derive(Clone)] +pub struct PolicyPage { + /// Policies for this page + pub items: Vec, + /// Pass as `cursor` for the next page. 0 = no more pages. + pub next_cursor: u32, + /// Number of items returned + pub count: u32, +} + +#[contracttype] +#[derive(Clone)] +pub struct PremiumSchedule { + pub id: u32, + pub owner: Address, + pub policy_id: u32, + pub next_due: u64, + pub interval: u64, + pub recurring: bool, + pub active: bool, + pub created_at: u64, + pub last_executed: Option, + pub missed_count: u32, +} + +#[contracterror] +#[derive(Clone, Copy, Debug, PartialEq)] +#[repr(u32)] +pub enum InsuranceError { + InvalidPremium = 1, + InvalidCoverage = 2, + PolicyNotFound = 3, + PolicyInactive = 4, + Unauthorized = 5, + BatchTooLarge = 6, +} + +#[contracttype] +#[derive(Clone)] +pub enum InsuranceEvent { + PolicyCreated, + PremiumPaid, + PolicyDeactivated, + ScheduleCreated, + ScheduleExecuted, + ScheduleMissed, + ScheduleModified, + ScheduleCancelled, +} + +#[contract] +pub struct Insurance; + +#[contractimpl] +impl Insurance { + // ----------------------------------------------------------------------- + // Internal helpers + // ----------------------------------------------------------------------- + + fn clamp_limit(limit: u32) -> u32 { + if limit == 0 { + DEFAULT_PAGE_LIMIT + } else if limit > MAX_PAGE_LIMIT { + MAX_PAGE_LIMIT + } else { + limit + } + } + + fn get_pause_admin(env: &Env) -> Option
{ + env.storage().instance().get(&symbol_short!("PAUSE_ADM")) + } + fn get_global_paused(env: &Env) -> bool { + env.storage() + .instance() + .get(&symbol_short!("PAUSED")) + .unwrap_or(false) + } + fn is_function_paused(env: &Env, func: Symbol) -> bool { + env.storage() + .instance() + .get::<_, Map>(&symbol_short!("PAUSED_FN")) + .unwrap_or_else(|| Map::new(env)) + .get(func) + .unwrap_or(false) + } + fn require_not_paused(env: &Env, func: Symbol) { + if Self::get_global_paused(env) { + panic!("Contract is paused"); + } + if Self::is_function_paused(env, func) { + panic!("Function is paused"); + } + } + + // ----------------------------------------------------------------------- + // Pause / upgrade (unchanged) + // ----------------------------------------------------------------------- + + pub fn set_pause_admin(env: Env, caller: Address, new_admin: Address) { + caller.require_auth(); + let current = Self::get_pause_admin(&env); + match current { + None => { + if caller != new_admin { + panic!("Unauthorized"); + } + } + Some(admin) if admin != caller => panic!("Unauthorized"), + _ => {} + } + env.storage() + .instance() + .set(&symbol_short!("PAUSE_ADM"), &new_admin); + } + pub fn pause(env: Env, caller: Address) { + caller.require_auth(); + let admin = Self::get_pause_admin(&env).expect("No pause admin set"); + if admin != caller { + panic!("Unauthorized"); + } + env.storage() + .instance() + .set(&symbol_short!("PAUSED"), &true); + env.events() + .publish((symbol_short!("insure"), symbol_short!("paused")), ()); + } + pub fn unpause(env: Env, caller: Address) { + caller.require_auth(); + let admin = Self::get_pause_admin(&env).expect("No pause admin set"); + if admin != caller { + panic!("Unauthorized"); + } + let unpause_at: Option = env.storage().instance().get(&symbol_short!("UNP_AT")); + if let Some(at) = unpause_at { + if env.ledger().timestamp() < at { + panic!("Time-locked unpause not yet reached"); + } + env.storage().instance().remove(&symbol_short!("UNP_AT")); + } + env.storage() + .instance() + .set(&symbol_short!("PAUSED"), &false); + env.events() + .publish((symbol_short!("insure"), symbol_short!("unpaused")), ()); + } + pub fn pause_function(env: Env, caller: Address, func: Symbol) { + caller.require_auth(); + let admin = Self::get_pause_admin(&env).expect("No pause admin set"); + if admin != caller { + panic!("Unauthorized"); + } + let mut m: Map = env + .storage() + .instance() + .get(&symbol_short!("PAUSED_FN")) + .unwrap_or_else(|| Map::new(&env)); + m.set(func, true); + env.storage() + .instance() + .set(&symbol_short!("PAUSED_FN"), &m); + } + pub fn unpause_function(env: Env, caller: Address, func: Symbol) { + caller.require_auth(); + let admin = Self::get_pause_admin(&env).expect("No pause admin set"); + if admin != caller { + panic!("Unauthorized"); + } + let mut m: Map = env + .storage() + .instance() + .get(&symbol_short!("PAUSED_FN")) + .unwrap_or_else(|| Map::new(&env)); + m.set(func, false); + env.storage() + .instance() + .set(&symbol_short!("PAUSED_FN"), &m); + } + pub fn emergency_pause_all(env: Env, caller: Address) { + Self::pause(env.clone(), caller.clone()); + for func in [ + pause_functions::CREATE_POLICY, + pause_functions::PAY_PREMIUM, + pause_functions::DEACTIVATE, + pause_functions::CREATE_SCHED, + pause_functions::MODIFY_SCHED, + pause_functions::CANCEL_SCHED, + ] { + Self::pause_function(env.clone(), caller.clone(), func); + } + } + pub fn is_paused(env: Env) -> bool { + Self::get_global_paused(&env) + } + pub fn get_version(env: Env) -> u32 { + env.storage() + .instance() + .get(&symbol_short!("VERSION")) + .unwrap_or(CONTRACT_VERSION) + } + fn get_upgrade_admin(env: &Env) -> Option
{ + env.storage().instance().get(&symbol_short!("UPG_ADM")) + } + pub fn set_upgrade_admin(env: Env, caller: Address, new_admin: Address) { + caller.require_auth(); + let current = Self::get_upgrade_admin(&env); + match current { + None => { + if caller != new_admin { + panic!("Unauthorized"); + } + } + Some(adm) if adm != caller => panic!("Unauthorized"), + _ => {} + } + env.storage() + .instance() + .set(&symbol_short!("UPG_ADM"), &new_admin); + } + pub fn set_version(env: Env, caller: Address, new_version: u32) { + caller.require_auth(); + let admin = Self::get_upgrade_admin(&env).expect("No upgrade admin set"); + if admin != caller { + panic!("Unauthorized"); + } + let prev = Self::get_version(env.clone()); + env.storage() + .instance() + .set(&symbol_short!("VERSION"), &new_version); + env.events().publish( + (symbol_short!("insure"), symbol_short!("upgraded")), + (prev, new_version), + ); + } + + // ----------------------------------------------------------------------- + // Core policy operations (unchanged) + // ----------------------------------------------------------------------- + + /// Creates a new insurance policy for the owner. + /// + /// # Arguments + /// * `owner` - Address of the policy owner (must authorize) + /// * `name` - Policy name (e.g., "Life Insurance") + /// * `coverage_type` - Type of coverage (e.g., "Term", "Whole") + /// * `monthly_premium` - Monthly premium amount in stroops (must be > 0) + /// * `coverage_amount` - Total coverage amount in stroops (must be > 0) + /// + /// # Returns + /// `Ok(policy_id)` - The newly created policy ID + /// + /// # Errors + /// * `InvalidPremium` - If monthly_premium ≤ 0 + /// * `InvalidCoverage` - If coverage_amount ≤ 0 + /// + /// # Panics + /// * If `owner` does not authorize the transaction (implicit via `require_auth()`) + /// * If the contract is globally or function-specifically paused + pub fn create_policy( + env: Env, + owner: Address, + name: String, + coverage_type: String, + monthly_premium: i128, + coverage_amount: i128, + external_ref: Option, + ) -> Result { + owner.require_auth(); + Self::require_not_paused(&env, pause_functions::CREATE_POLICY); + + if monthly_premium <= 0 { + return Err(InsuranceError::InvalidPremium); + } + if coverage_amount <= 0 { + return Err(InsuranceError::InvalidCoverage); + } + + Self::extend_instance_ttl(&env); + + let mut policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + let next_id = env + .storage() + .instance() + .get(&symbol_short!("NEXT_ID")) + .unwrap_or(0u32) + + 1; + + let next_payment_date = env.ledger().timestamp() + (30 * 86400); + + let policy = InsurancePolicy { + id: next_id, + owner: owner.clone(), + name: name.clone(), + coverage_type: coverage_type.clone(), + external_ref: external_ref.clone(), + monthly_premium, + coverage_amount, + active: true, + next_payment_date, + schedule_id: None, + }; + + let policy_owner = policy.owner.clone(); + policies.set(next_id, policy); + env.storage() + .instance() + .set(&symbol_short!("POLICIES"), &policies); + env.storage() + .instance() + .set(&symbol_short!("NEXT_ID"), &next_id); + Self::adjust_active_premium_total(&env, &owner, monthly_premium); + + let event = PolicyCreatedEvent { + policy_id: next_id, + name: name.clone(), + coverage_type: coverage_type.clone(), + monthly_premium, + coverage_amount, + timestamp: env.ledger().timestamp(), + }; + env.events().publish((POLICY_CREATED,), event); + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::PolicyCreated), + (next_id, policy_owner, external_ref), + ); + + Ok(next_id) + } + + /// Pays a premium for a specific policy. + /// + /// # Arguments + /// * `caller` - Address of the policy owner (must authorize) + /// * `policy_id` - ID of the policy to pay premium for + /// + /// # Returns + /// `Ok(())` on successful premium payment + /// + /// # Errors + /// * `PolicyNotFound` - If policy_id does not exist + /// * `Unauthorized` - If caller is not the policy owner + /// * `PolicyInactive` - If the policy is not active + /// + /// # Panics + /// * If `caller` does not authorize the transaction + pub fn pay_premium(env: Env, caller: Address, policy_id: u32) -> Result { + caller.require_auth(); + Self::require_not_paused(&env, pause_functions::PAY_PREMIUM); + Self::extend_instance_ttl(&env); + + let mut policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + let mut policy = match policies.get(policy_id) { + Some(p) => p, + None => return Err(InsuranceError::PolicyNotFound), + }; + + if policy.owner != caller { + return Err(InsuranceError::Unauthorized); + } + if !policy.active { + return Err(InsuranceError::PolicyInactive); + } + + policy.next_payment_date = env.ledger().timestamp() + (30 * 86400); + + let event = PremiumPaidEvent { + policy_id, + name: policy.name.clone(), + amount: policy.monthly_premium, + next_payment_date: policy.next_payment_date, + timestamp: env.ledger().timestamp(), + }; + env.events().publish((PREMIUM_PAID,), event); + + policies.set(policy_id, policy); + env.storage() + .instance() + .set(&symbol_short!("POLICIES"), &policies); + + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::PremiumPaid), + (policy_id, caller), + ); + + Ok(true) + } + + pub fn batch_pay_premiums( + env: Env, + caller: Address, + policy_ids: Vec, + ) -> Result { + caller.require_auth(); + Self::require_not_paused(&env, pause_functions::PAY_PREMIUM); + if policy_ids.len() > MAX_BATCH_SIZE { + return Err(InsuranceError::BatchTooLarge); + } + let policies_map: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + for id in policy_ids.iter() { + let policy = match policies_map.get(id) { + Some(p) => p, + None => return Err(InsuranceError::PolicyNotFound), + }; + if policy.owner != caller { + return Err(InsuranceError::Unauthorized); + } + if !policy.active { + return Err(InsuranceError::PolicyInactive); + } + } + Self::extend_instance_ttl(&env); + let mut policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + let current_time = env.ledger().timestamp(); + let mut paid_count = 0u32; + for id in policy_ids.iter() { + let mut policy = policies.get(id).unwrap(); + policy.next_payment_date = current_time + (30 * 86400); + let event = PremiumPaidEvent { + policy_id: id, + name: policy.name.clone(), + amount: policy.monthly_premium, + next_payment_date: policy.next_payment_date, + timestamp: current_time, + }; + env.events().publish((PREMIUM_PAID,), event); + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::PremiumPaid), + (id, caller.clone()), + ); + policies.set(id, policy); + paid_count += 1; + } + env.storage() + .instance() + .set(&symbol_short!("POLICIES"), &policies); + env.events().publish( + (symbol_short!("insure"), symbol_short!("batch_pay")), + (paid_count, caller), + ); + Ok(paid_count) + } + + pub fn get_policy(env: Env, policy_id: u32) -> Option { + let policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + policies.get(policy_id) + } + + // ----------------------------------------------------------------------- + // PAGINATED LIST QUERIES (new in this version) + // ----------------------------------------------------------------------- + + /// Get a page of ACTIVE policies for `owner`. + /// + /// # Arguments + /// * `owner` – whose policies to return + /// * `cursor` – start after this policy ID (pass 0 for the first page) + /// * `limit` – max items per page (0 → DEFAULT_PAGE_LIMIT, capped at MAX_PAGE_LIMIT) + /// + /// # Returns + /// `PolicyPage { items, next_cursor, count }`. + /// `next_cursor == 0` means no more pages. + pub fn get_active_policies(env: Env, owner: Address, cursor: u32, limit: u32) -> PolicyPage { + let limit = Self::clamp_limit(limit); + let policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + let mut result = Vec::new(&env); + let mut next_cursor: u32 = 0; + let mut collected: u32 = 0; + + for (id, policy) in policies.iter() { + if id <= cursor { + continue; + } + if !policy.active || policy.owner != owner { + continue; + } + if collected < limit { + result.push_back(policy); + collected += 1; + next_cursor = id; // ← track last returned ID as we go + } else { + break; // ← stop without touching next_cursor + } + } + + // Then reset next_cursor to 0 if we didn't fill the page (no more items) + if collected < limit { + next_cursor = 0; + } + + PolicyPage { + items: result, + next_cursor, + count: collected, + } + } + + /// Get a page of ALL policies (active + inactive) for `owner`. + /// + /// Same cursor/limit semantics as `get_active_policies`. + pub fn get_all_policies_for_owner( + env: Env, + owner: Address, + cursor: u32, + limit: u32, + ) -> PolicyPage { + owner.require_auth(); + let limit = Self::clamp_limit(limit); + let policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + let mut result = Vec::new(&env); + let mut next_cursor: u32 = 0; + let mut collected: u32 = 0; + + for (id, policy) in policies.iter() { + if id <= cursor { + continue; + } + if policy.owner != owner { + continue; + } + if collected < limit { + result.push_back(policy); + collected += 1; + } else { + next_cursor = id; + break; + } + } + + PolicyPage { + items: result, + next_cursor, + count: collected, + } + } + + pub fn get_total_monthly_premium(env: Env, owner: Address) -> i128 { + if let Some(totals) = Self::get_active_premium_totals_map(&env) { + if let Some(total) = totals.get(owner.clone()) { + return total; + } + } + + let mut total = 0i128; + let policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + for (_, policy) in policies.iter() { + if policy.active && policy.owner == owner { + total += policy.monthly_premium; + } + } + total + } + + pub fn deactivate_policy( + env: Env, + caller: Address, + policy_id: u32, + ) -> Result { + caller.require_auth(); + Self::require_not_paused(&env, pause_functions::DEACTIVATE); + Self::extend_instance_ttl(&env); + + let mut policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + let mut policy = policies + .get(policy_id) + .ok_or(InsuranceError::PolicyNotFound)?; + + if policy.owner != caller { + return Err(InsuranceError::Unauthorized); + } + + let was_active = policy.active; + policy.active = false; + let premium_amount = policy.monthly_premium; + policies.set(policy_id, policy.clone()); + env.storage() + .instance() + .set(&symbol_short!("POLICIES"), &policies); + + if was_active { + Self::adjust_active_premium_total(&env, &caller, -premium_amount); + } + let event = PolicyDeactivatedEvent { + policy_id, + name: policy.name.clone(), + timestamp: env.ledger().timestamp(), + }; + env.events().publish((POLICY_DEACTIVATED,), event); + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::PolicyDeactivated), + (policy_id, caller), + ); + + Ok(true) + } + + fn extend_instance_ttl(env: &Env) { + env.storage() + .instance() + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + } + + fn get_active_premium_totals_map(env: &Env) -> Option> { + env.storage().instance().get(&STORAGE_PREMIUM_TOTALS) + } + + fn adjust_active_premium_total(env: &Env, owner: &Address, delta: i128) { + if delta == 0 { + return; + } + let mut totals: Map = env + .storage() + .instance() + .get(&STORAGE_PREMIUM_TOTALS) + .unwrap_or_else(|| Map::new(env)); + let current = totals.get(owner.clone()).unwrap_or(0); + let next = if delta >= 0 { + current.saturating_add(delta) + } else { + current.saturating_sub(delta.saturating_abs()) + }; + totals.set(owner.clone(), next); + env.storage() + .instance() + .set(&STORAGE_PREMIUM_TOTALS, &totals); + } + + // ----------------------------------------------------------------------- + // Schedule operations (unchanged) + // ----------------------------------------------------------------------- + pub fn create_premium_schedule( + env: Env, + owner: Address, + policy_id: u32, + next_due: u64, + interval: u64, + ) -> u32 { + owner.require_auth(); + Self::require_not_paused(&env, pause_functions::CREATE_SCHED); + + let mut policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + let mut policy = policies.get(policy_id).expect("Policy not found"); + + if policy.owner != owner { + panic!("Only the policy owner can create schedules"); + } + + let current_time = env.ledger().timestamp(); + if next_due <= current_time { + panic!("Next due date must be in the future"); + } + + Self::extend_instance_ttl(&env); + + let mut schedules: Map = env + .storage() + .instance() + .get(&symbol_short!("PREM_SCH")) + .unwrap_or_else(|| Map::new(&env)); + + let next_schedule_id = env + .storage() + .instance() + .get(&symbol_short!("NEXT_PSCH")) + .unwrap_or(0u32) + + 1; + + let schedule = PremiumSchedule { + id: next_schedule_id, + owner: owner.clone(), + policy_id, + next_due, + interval, + recurring: interval > 0, + active: true, + created_at: current_time, + last_executed: None, + missed_count: 0, + }; + + policy.schedule_id = Some(next_schedule_id); + + schedules.set(next_schedule_id, schedule); + env.storage() + .instance() + .set(&symbol_short!("PREM_SCH"), &schedules); + env.storage() + .instance() + .set(&symbol_short!("NEXT_PSCH"), &next_schedule_id); + + policies.set(policy_id, policy); + env.storage() + .instance() + .set(&symbol_short!("POLICIES"), &policies); + + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::ScheduleCreated), + (next_schedule_id, owner), + ); + + next_schedule_id + } + + pub fn modify_premium_schedule( + env: Env, + caller: Address, + schedule_id: u32, + next_due: u64, + interval: u64, + ) -> bool { + caller.require_auth(); + Self::require_not_paused(&env, pause_functions::MODIFY_SCHED); + + let current_time = env.ledger().timestamp(); + if next_due <= current_time { + panic!("Next due date must be in the future"); + } + + Self::extend_instance_ttl(&env); + + let mut schedules: Map = env + .storage() + .instance() + .get(&symbol_short!("PREM_SCH")) + .unwrap_or_else(|| Map::new(&env)); + + let mut schedule = schedules.get(schedule_id).expect("Schedule not found"); + + if schedule.owner != caller { + panic!("Only the schedule owner can modify it"); + } + + schedule.next_due = next_due; + schedule.interval = interval; + schedule.recurring = interval > 0; + + schedules.set(schedule_id, schedule); + env.storage() + .instance() + .set(&symbol_short!("PREM_SCH"), &schedules); + + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::ScheduleModified), + (schedule_id, caller), + ); + + true + } + + pub fn cancel_premium_schedule(env: Env, caller: Address, schedule_id: u32) -> bool { + caller.require_auth(); + Self::require_not_paused(&env, pause_functions::CANCEL_SCHED); + Self::extend_instance_ttl(&env); + + let mut schedules: Map = env + .storage() + .instance() + .get(&symbol_short!("PREM_SCH")) + .unwrap_or_else(|| Map::new(&env)); + + let mut schedule = schedules.get(schedule_id).expect("Schedule not found"); + + if schedule.owner != caller { + panic!("Only the schedule owner can cancel it"); + } + + schedule.active = false; + + schedules.set(schedule_id, schedule); + env.storage() + .instance() + .set(&symbol_short!("PREM_SCH"), &schedules); + + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::ScheduleCancelled), + (schedule_id, caller), + ); + + true + } + + pub fn execute_due_premium_schedules(env: Env) -> Vec { + Self::extend_instance_ttl(&env); + + let current_time = env.ledger().timestamp(); + let mut executed = Vec::new(&env); + + let mut schedules: Map = env + .storage() + .instance() + .get(&symbol_short!("PREM_SCH")) + .unwrap_or_else(|| Map::new(&env)); + + let mut policies: Map = env + .storage() + .instance() + .get(&symbol_short!("POLICIES")) + .unwrap_or_else(|| Map::new(&env)); + + for (schedule_id, mut schedule) in schedules.iter() { + if !schedule.active || schedule.next_due > current_time { + continue; + } + + if let Some(mut policy) = policies.get(schedule.policy_id) { + if policy.active { + policy.next_payment_date = current_time + (30 * 86400); + policies.set(schedule.policy_id, policy.clone()); + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::PremiumPaid), + (schedule.policy_id, policy.owner), + ); + } + } + + schedule.last_executed = Some(current_time); + + if schedule.recurring && schedule.interval > 0 { + let mut missed = 0u32; + let mut next = schedule.next_due + schedule.interval; + while next <= current_time { + missed += 1; + next += schedule.interval; + } + schedule.missed_count += missed; + schedule.next_due = next; + + if missed > 0 { + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::ScheduleMissed), + (schedule_id, missed), + ); + } + } else { + schedule.active = false; + } + + schedules.set(schedule_id, schedule); + executed.push_back(schedule_id); + + env.events().publish( + (symbol_short!("insure"), InsuranceEvent::ScheduleExecuted), + schedule_id, + ); + } + + env.storage() + .instance() + .set(&symbol_short!("PREM_SCH"), &schedules); + env.storage() + .instance() + .set(&symbol_short!("POLICIES"), &policies); + + executed + } + + pub fn get_premium_schedules(env: Env, owner: Address) -> Vec { + let schedules: Map = env + .storage() + .instance() + .get(&symbol_short!("PREM_SCH")) + .unwrap_or_else(|| Map::new(&env)); + let mut result = Vec::new(&env); + for (_, schedule) in schedules.iter() { + if schedule.owner == owner { + result.push_back(schedule); + } + } + result + } + + pub fn get_premium_schedule(env: Env, schedule_id: u32) -> Option { + let schedules: Map = env + .storage() + .instance() + .get(&symbol_short!("PREM_SCH")) + .unwrap_or_else(|| Map::new(&env)); + schedules.get(schedule_id) + } +} + +// ----------------------------------------------------------------------- +// Tests +// ----------------------------------------------------------------------- +#[cfg(test)] +mod test; + +#[cfg(test)] +mod test_events { + use super::*; + use soroban_sdk::testutils::storage::Instance as _; + use soroban_sdk::testutils::{Address as _, Events, Ledger, LedgerInfo}; + use soroban_sdk::{Env, String}; + + fn make_env() -> Env { + Env::default() + } + + fn setup_policies( + env: &Env, + client: &InsuranceClient, + owner: &Address, + count: u32, + ) -> Vec { + let mut ids = Vec::new(env); + for i in 0..count { + let id = client.create_policy( + owner, + &String::from_str(env, "Policy"), + &String::from_str(env, "health"), + &(50i128 * (i as i128 + 1)), + &(10000i128 * (i as i128 + 1)), + &None, + ); + ids.push_back(id); + } + ids + } + + // --- get_active_policies --- + + #[test] + fn test_get_active_policies_empty() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let page = client.get_active_policies(&owner, &0, &0); + assert_eq!(page.count, 0); + assert_eq!(page.next_cursor, 0); + } + + #[test] + fn test_get_active_policies_single_page() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + setup_policies(&env, &client, &owner, 5); + + let page = client.get_active_policies(&owner, &0, &10); + assert_eq!(page.count, 5); + assert_eq!(page.next_cursor, 0); + } + + #[test] + fn test_pay_premium_policy_not_found() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + // No policies created — policy ID 999 does not exist + let result = client.try_pay_premium(&owner, &999u32); + + assert!( + result.is_err(), + "pay_premium must fail when policy does not exist" + ); + } + + #[test] + fn test_get_active_policies_paginated() { + let env = Env::default(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + setup_policies(&env, &client, &owner, 7); + + let page1 = client.get_active_policies(&owner, &0, &3); + assert_eq!(page1.count, 3); + assert!(page1.next_cursor > 0); + + let page2 = client.get_active_policies(&owner, &page1.next_cursor, &3); + assert_eq!(page2.count, 3); + assert!(page2.next_cursor > 0); + + let page3 = client.get_active_policies(&owner, &page2.next_cursor, &3); + assert_eq!(page3.count, 1); + assert_eq!(page3.next_cursor, 0); + } + + #[test] + fn test_get_active_policies_excludes_inactive() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let ids = setup_policies(&env, &client, &owner, 4); + // Deactivate policy #2 + client.deactivate_policy(&owner, &ids.get(1).unwrap()); + + let page = client.get_active_policies(&owner, &0, &10); + assert_eq!(page.count, 3); // only 3 active + for p in page.items.iter() { + assert!(p.active, "only active policies should be returned"); + } + } + + #[test] + fn test_get_active_policies_multi_owner_isolation() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner_a = Address::generate(&env); + let owner_b = Address::generate(&env); + + setup_policies(&env, &client, &owner_a, 3); + setup_policies(&env, &client, &owner_b, 5); + + let page = client.get_active_policies(&owner_a, &0, &20); + assert_eq!(page.count, 3); + for p in page.items.iter() { + assert_eq!(p.owner, owner_a); + } + } + + #[test] + fn test_get_all_policies_for_owner_includes_inactive() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let ids = setup_policies(&env, &client, &owner, 4); + client.deactivate_policy(&owner, &ids.get(0).unwrap()); + client.deactivate_policy(&owner, &ids.get(2).unwrap()); + + let page = client.get_all_policies_for_owner(&owner, &0, &10); + assert_eq!(page.count, 4); // all 4 regardless of active status + } + + // --- limit clamping --- + + #[test] + fn test_limit_zero_uses_default() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + setup_policies(&env, &client, &owner, 3); + let page = client.get_active_policies(&owner, &0, &0); + assert_eq!(page.count, 3); + } + + #[test] + fn test_limit_clamped_to_max() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + setup_policies(&env, &client, &owner, 55); + let page = client.get_active_policies(&owner, &0, &9999); + assert_eq!(page.count, MAX_PAGE_LIMIT); + assert!(page.next_cursor > 0); + } + + // --- existing event tests (unchanged) --- + + #[test] + fn test_create_policy_emits_event_exists() { + let env = make_env(); + env.mock_all_auths(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Health Insurance"), + &String::from_str(&env, "health"), + &100, + &50000, + &None, + ); + assert_eq!(policy_id, 1); + + let events = env.events().all(); + assert_eq!(events.len(), 2); + } + + #[test] + fn test_pay_premium_emits_event() { + let env = make_env(); + env.mock_all_auths(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Emergency Coverage"), + &String::from_str(&env, "emergency"), + &75, + &25000, + &None, + ); + let result = client.pay_premium(&owner, &policy_id); + assert!(result); + + // After pay_premium, events string contains only the latest invocation's events + let events_after = env.events().all().len(); + assert_eq!(events_after, 2); + } + + #[test] + fn test_policy_lifecycle_emits_all_events() { + let env = make_env(); + env.mock_all_auths(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Complete Lifecycle"), + &String::from_str(&env, "health"), + &150, + &75000, + &None, + ); + + let mut total_events = env.events().all().len(); + + client.pay_premium(&owner, &policy_id); + total_events += env.events().all().len(); + + client.deactivate_policy(&owner, &policy_id); + total_events += env.events().all().len(); + + assert_eq!(total_events, 6); + } + + // ==================================================================== + // Storage TTL Extension Tests + // + // Verify that instance storage TTL is properly extended on + // state-changing operations, preventing unexpected data expiration. + // + // Contract TTL configuration: + // INSTANCE_LIFETIME_THRESHOLD = 17,280 ledgers (~1 day) + // INSTANCE_BUMP_AMOUNT = 518,400 ledgers (~30 days) + // + // Operations extending instance TTL: + // create_policy, pay_premium, batch_pay_premiums, + // deactivate_policy, create_premium_schedule, + // modify_premium_schedule, cancel_premium_schedule, + // execute_due_premium_schedules + // ==================================================================== + + /// Verify that create_policy extends instance storage TTL. + #[test] + fn test_instance_ttl_extended_on_create_policy() { + let env = Env::default(); + env.mock_all_auths(); + + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 100, + timestamp: 1000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + // create_policy calls extend_instance_ttl + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Health Insurance"), + &String::from_str(&env, "health"), + &100, + &50000, + &None, + ); + assert_eq!(policy_id, 1); + + // Inspect instance TTL — must be at least INSTANCE_BUMP_AMOUNT + let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); + assert!( + ttl >= 518_400, + "Instance TTL ({}) must be >= INSTANCE_BUMP_AMOUNT (518,400) after create_policy", + ttl + ); + } + + /// Verify that pay_premium refreshes instance TTL after ledger advancement. + /// + /// extend_ttl(threshold, extend_to) only extends when TTL <= threshold. + /// We advance the ledger far enough for TTL to drop below 17,280. + #[test] + fn test_instance_ttl_refreshed_on_pay_premium() { + let env = Env::default(); + env.mock_all_auths(); + + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 100, + timestamp: 1000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + client.create_policy( + &owner, + &String::from_str(&env, "Life Insurance"), + &String::from_str(&env, "life"), + &200, + &100000, + &None, + ); + + // Advance ledger so TTL drops below threshold (17,280) + // After create_policy: live_until = 518,500. At seq 510,000: TTL = 8,500 + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 510_000, + timestamp: 500_000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + // pay_premium calls extend_instance_ttl → re-extends TTL to 518,400 + client.pay_premium(&owner, &1); + + let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); + assert!( + ttl >= 518_400, + "Instance TTL ({}) must be >= 518,400 after pay_premium", + ttl + ); + } + + /// Verify data persists across repeated operations spanning multiple + /// ledger advancements, proving TTL is continuously renewed. + #[test] + fn test_policy_data_persists_across_ledger_advancements() { + let env = Env::default(); + env.mock_all_auths(); + + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 100, + timestamp: 1000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + // Phase 1: Create policy at seq 100. live_until = 518,500 + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Auto Insurance"), + &String::from_str(&env, "auto"), + &150, + &75000, + &None, + ); + + // Phase 2: Advance to seq 510,000 (TTL = 8,500 < 17,280) + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 510_000, + timestamp: 510_000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + client.pay_premium(&owner, &policy_id); + + // Phase 3: Advance to seq 1,020,000 (TTL = 8,400 < 17,280) + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 1_020_000, + timestamp: 1_020_000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + let policy_id2 = client.create_policy( + &owner, + &String::from_str(&env, "Travel Insurance"), + &String::from_str(&env, "travel"), + &50, + &20000, + &None, + ); + + // All policies should be accessible + let p1 = client.get_policy(&policy_id); + assert!( + p1.is_some(), + "First policy must persist across ledger advancements" + ); + assert_eq!(p1.unwrap().monthly_premium, 150); + + let p2 = client.get_policy(&policy_id2); + assert!(p2.is_some(), "Second policy must persist"); + + // TTL should be fully refreshed + let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); + assert!( + ttl >= 518_400, + "Instance TTL ({}) must remain >= 518,400 after repeated operations", + ttl + ); + } + + /// Verify that deactivate_policy extends instance TTL. + #[test] + fn test_instance_ttl_extended_on_deactivate_policy() { + let env = Env::default(); + env.mock_all_auths(); + + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 100, + timestamp: 1000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Dental"), + &String::from_str(&env, "dental"), + &75, + &25000, + &None, + ); + + // Advance ledger past threshold + env.ledger().set(LedgerInfo { + protocol_version: 22, + sequence_number: 510_000, + timestamp: 510_000, + network_id: [0; 32], + base_reserve: 10, + min_temp_entry_ttl: 100, + min_persistent_entry_ttl: 100, + max_entry_ttl: 700_000, + }); + + // deactivate_policy calls extend_instance_ttl + client.deactivate_policy(&owner, &policy_id); + + let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); + assert!( + ttl >= 518_400, + "Instance TTL ({}) must be >= 518,400 after deactivate_policy", + ttl + ); + } + + // ────────────────────────────────────────────────────────────────── + // Test: pay_premium after deactivate_policy (#104) + // ────────────────────────────────────────────────────────────────── + + /// After deactivating a policy, `pay_premium` must panic with + /// "Policy is not active". The policy must remain inactive. + #[test] + fn test_pay_premium_after_deactivate() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + // 1. Create a policy + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Health Plan"), + &String::from_str(&env, "health"), + &150, + &50000, + &None, + ); + + // Sanity: policy should be active after creation + let policy_before = client.get_policy(&policy_id).unwrap(); + assert!(policy_before.active); + + // 2. Deactivate the policy + let deactivated = client.deactivate_policy(&owner, &policy_id); + assert!(deactivated); + + // Confirm it is now inactive + let policy_after_deactivate = client.get_policy(&policy_id).unwrap(); + assert!(!policy_after_deactivate.active); + + // 3. Attempt to pay premium — should return PolicyInactive error + let result = client.try_pay_premium(&owner, &policy_id); + assert_eq!(result, Err(Ok(InsuranceError::PolicyInactive))); + } + + // ══════════════════════════════════════════════════════════════════════ + // Time & Ledger Drift Resilience Tests (#158) + // + // Assumptions: + // - execute_due_premium_schedules fires when schedule.next_due <= current_time + // (inclusive: executes exactly at next_due). + // - next_payment_date = env.ledger().timestamp() + 30 * 86400 at execution, + // anchored to actual payment time, not original next_due. + // - Stellar ledger timestamps are monotonically increasing in production. + // After execution next_due advances by the interval, guarding re-runs. + // ══════════════════════════════════════════════════════════════════════ + + 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, + }); + } + + /// Premium schedule must NOT execute one second before next_due. + #[test] + fn test_time_drift_premium_schedule_not_executed_before_next_due() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let next_due = 5000u64; + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Life Cover"), + &String::from_str(&env, "life"), + &200, + &100000, + &None, + ); + client.create_premium_schedule(&owner, &policy_id, &next_due, &2592000); + + set_time(&env, next_due - 1); + let executed = client.execute_due_premium_schedules(); + assert_eq!( + executed.len(), + 0, + "Must not execute one second before next_due" + ); + } + + /// Premium schedule must execute exactly at next_due (inclusive boundary). + #[test] + fn test_time_drift_premium_schedule_executes_at_exact_next_due() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let next_due = 5000u64; + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Health Plan"), + &String::from_str(&env, "health"), + &150, + &75000, + &None, + ); + let schedule_id = client.create_premium_schedule(&owner, &policy_id, &next_due, &2592000); + + set_time(&env, next_due); + let executed = client.execute_due_premium_schedules(); + assert_eq!(executed.len(), 1, "Must execute exactly at next_due"); + assert_eq!(executed.get(0).unwrap(), schedule_id); + + let policy = client.get_policy(&policy_id).unwrap(); + assert_eq!( + policy.next_payment_date, + next_due + 30 * 86400, + "next_payment_date must be current_time + 30 days" + ); + } + + /// next_payment_date is anchored to actual payment time, not original next_due. + #[test] + fn test_time_drift_next_payment_date_uses_actual_payment_time() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let next_due = 5000u64; + let late_payment = next_due + 7 * 86400; // paid 7 days late + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Property Plan"), + &String::from_str(&env, "property"), + &300, + &200000, + &None, + ); + client.create_premium_schedule(&owner, &policy_id, &next_due, &2592000); + + set_time(&env, late_payment); + client.execute_due_premium_schedules(); + + let policy = client.get_policy(&policy_id).unwrap(); + assert_eq!( + policy.next_payment_date, + late_payment + 30 * 86400, + "next_payment_date must be anchored to actual payment time" + ); + assert!( + policy.next_payment_date > next_due + 30 * 86400, + "Late payment must push next_payment_date beyond on-time window" + ); + } + + /// After execution next_due advances; a call before the new next_due must not re-execute. + #[test] + fn test_time_drift_no_double_execution_after_schedule_advances() { + let env = make_env(); + env.mock_all_auths(); + let id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &id); + let owner = Address::generate(&env); + + let next_due = 5000u64; + let interval = 2_592_000u64; + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Auto Cover"), + &String::from_str(&env, "auto"), + &100, + &50000, + &None, + ); + client.create_premium_schedule(&owner, &policy_id, &next_due, &interval); + + // First execution at next_due + set_time(&env, next_due); + let executed = client.execute_due_premium_schedules(); + assert_eq!(executed.len(), 1); + + // Between old next_due and new next_due: no re-execution + set_time(&env, next_due + 1000); + let executed_again = client.execute_due_premium_schedules(); + assert_eq!( + executed_again.len(), + 0, + "Must not re-execute before the new next_due" + ); + } +} diff --git a/insurance/src/test.rs b/insurance/src/test.rs index ec536c69..b636dee1 100644 --- a/insurance/src/test.rs +++ b/insurance/src/test.rs @@ -1,23 +1,36 @@ -#![cfg(test)] - use super::*; use crate::InsuranceError; use soroban_sdk::{ testutils::{Address as AddressTrait, Ledger, LedgerInfo}, Address, Env, String, }; -use proptest::prelude::*; - -use testutils::{set_ledger_time, setup_test_env}; -// Removed local set_time in favor of testutils::set_ledger_time +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_policy_succeeds() { - setup_test_env!(env, Insurance, InsuranceClient, client, owner); +fn test_create_policy() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); let name = String::from_str(&env, "Health Policy"); - let coverage_type = CoverageType::Health; + let coverage_type = String::from_str(&env, "Health"); let policy_id = client.create_policy( &owner, @@ -25,6 +38,7 @@ fn test_create_policy_succeeds() { &coverage_type, &100, // monthly_premium &10000, // coverage_amount + &None, ); assert_eq!(policy_id, 1); @@ -37,46 +51,41 @@ fn test_create_policy_succeeds() { } #[test] -#[should_panic(expected = "Monthly premium must be positive")] fn test_create_policy_invalid_premium() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); env.mock_all_auths(); - client.create_policy( let result = client.try_create_policy( &owner, &String::from_str(&env, "Bad"), &String::from_str(&env, "Type"), &0, &10000, + &None, ); -} - -#[test] -#[should_panic(expected = "Coverage amount must be positive")] assert_eq!(result, Err(Ok(InsuranceError::InvalidPremium))); } #[test] fn test_create_policy_invalid_coverage() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); env.mock_all_auths(); - client.create_policy( let result = client.try_create_policy( &owner, &String::from_str(&env, "Bad"), &String::from_str(&env, "Type"), &100, &0, + &None, ); assert_eq!(result, Err(Ok(InsuranceError::InvalidCoverage))); } @@ -84,7 +93,7 @@ fn test_create_policy_invalid_coverage() { #[test] fn test_pay_premium() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -96,6 +105,7 @@ fn test_pay_premium() { &String::from_str(&env, "Type"), &100, &10000, + &None, ); // Initial next_payment_date is ~30 days from creation @@ -104,9 +114,12 @@ fn test_pay_premium() { let initial_due = initial_policy.next_payment_date; // Advance ledger time to simulate paying slightly later - set_ledger_time(&env, 1, env.ledger().timestamp() + 1000); + let mut ledger_info = env.ledger().get(); + ledger_info.timestamp += 1000; + env.ledger().set(ledger_info); - client.pay_premium(&owner, &policy_id); + let success = client.pay_premium(&owner, &policy_id); + assert!(success); let updated_policy = client.get_policy(&policy_id).unwrap(); @@ -116,10 +129,9 @@ fn test_pay_premium() { } #[test] -#[should_panic(expected = "Only the policy owner can pay premiums")] fn test_pay_premium_unauthorized() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); let other = Address::generate(&env); @@ -132,10 +144,10 @@ fn test_pay_premium_unauthorized() { &String::from_str(&env, "Type"), &100, &10000, + &None, ); // unauthorized payer - client.pay_premium(&other, &policy_id); let result = client.try_pay_premium(&other, &policy_id); assert_eq!(result, Err(Ok(InsuranceError::Unauthorized))); } @@ -143,7 +155,7 @@ fn test_pay_premium_unauthorized() { #[test] fn test_deactivate_policy() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -155,6 +167,7 @@ fn test_deactivate_policy() { &String::from_str(&env, "Type"), &100, &10000, + &None, ); let success = client.deactivate_policy(&owner, &policy_id); @@ -167,7 +180,7 @@ fn test_deactivate_policy() { #[test] fn test_get_active_policies() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -180,6 +193,7 @@ fn test_get_active_policies() { &String::from_str(&env, "T1"), &100, &1000, + &None, ); let p2 = client.create_policy( &owner, @@ -187,6 +201,7 @@ fn test_get_active_policies() { &String::from_str(&env, "T2"), &200, &2000, + &None, ); client.create_policy( &owner, @@ -194,13 +209,14 @@ fn test_get_active_policies() { &String::from_str(&env, "T3"), &300, &3000, + &None, ); // Deactivate P2 client.deactivate_policy(&owner, &p2); - let active = client.get_active_policies(&owner); - assert_eq!(active.len(), 2); + let active = client.get_active_policies(&owner, &0, &DEFAULT_PAGE_LIMIT); + assert_eq!(active.items.len(), 2); // Check specific IDs if needed, but length 2 confirms one was filtered } @@ -208,7 +224,7 @@ fn test_get_active_policies() { #[test] fn test_get_active_policies_excludes_deactivated() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -221,6 +237,7 @@ fn test_get_active_policies_excludes_deactivated() { &String::from_str(&env, "Type 1"), &100, &1000, + &None, ); let policy_id_2 = client.create_policy( &owner, @@ -228,6 +245,7 @@ fn test_get_active_policies_excludes_deactivated() { &String::from_str(&env, "Type 2"), &200, &2000, + &None, ); // Deactivate policy 1 @@ -251,7 +269,7 @@ fn test_get_active_policies_excludes_deactivated() { #[test] fn test_get_all_policies_for_owner_pagination() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); let other = Address::generate(&env); @@ -265,6 +283,7 @@ fn test_get_all_policies_for_owner_pagination() { &String::from_str(&env, "T1"), &100, &1000, + &None, ); let p2 = client.create_policy( &owner, @@ -272,6 +291,7 @@ fn test_get_all_policies_for_owner_pagination() { &String::from_str(&env, "T2"), &200, &2000, + &None, ); client.create_policy( &owner, @@ -279,6 +299,7 @@ fn test_get_all_policies_for_owner_pagination() { &String::from_str(&env, "T3"), &300, &3000, + &None, ); // Create 1 policy for other @@ -288,6 +309,7 @@ fn test_get_all_policies_for_owner_pagination() { &String::from_str(&env, "Type"), &500, &5000, + &None, ); // Deactivate P2 @@ -312,7 +334,7 @@ fn test_get_all_policies_for_owner_pagination() { #[test] fn test_get_total_monthly_premium() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -324,6 +346,7 @@ fn test_get_total_monthly_premium() { &String::from_str(&env, "T1"), &100, &1000, + &None, ); client.create_policy( &owner, @@ -331,6 +354,7 @@ fn test_get_total_monthly_premium() { &String::from_str(&env, "T2"), &200, &2000, + &None, ); let total = client.get_total_monthly_premium(&owner); @@ -340,7 +364,7 @@ fn test_get_total_monthly_premium() { #[test] fn test_get_total_monthly_premium_zero_policies() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -354,7 +378,7 @@ fn test_get_total_monthly_premium_zero_policies() { #[test] fn test_get_total_monthly_premium_one_policy() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -364,9 +388,10 @@ fn test_get_total_monthly_premium_one_policy() { client.create_policy( &owner, &String::from_str(&env, "Single Policy"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &10000, + &None, ); let total = client.get_total_monthly_premium(&owner); @@ -376,7 +401,7 @@ fn test_get_total_monthly_premium_one_policy() { #[test] fn test_get_total_monthly_premium_multiple_active_policies() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -386,23 +411,26 @@ fn test_get_total_monthly_premium_multiple_active_policies() { client.create_policy( &owner, &String::from_str(&env, "Policy 1"), - &CoverageType::Health, + &String::from_str(&env, "health"), &100, &1000, + &None, ); client.create_policy( &owner, &String::from_str(&env, "Policy 2"), - &CoverageType::Life, + &String::from_str(&env, "life"), &200, &2000, + &None, ); client.create_policy( &owner, &String::from_str(&env, "Policy 3"), - &CoverageType::Auto, + &String::from_str(&env, "emergency"), &300, &3000, + &None, ); let total = client.get_total_monthly_premium(&owner); @@ -412,7 +440,7 @@ fn test_get_total_monthly_premium_multiple_active_policies() { #[test] fn test_get_total_monthly_premium_deactivated_policy_excluded() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -422,16 +450,18 @@ fn test_get_total_monthly_premium_deactivated_policy_excluded() { let policy1 = client.create_policy( &owner, &String::from_str(&env, "Policy 1"), - &CoverageType::Health, + &String::from_str(&env, "health"), &100, &1000, + &None, ); - let policy2 = client.create_policy( + let _policy2 = client.create_policy( &owner, &String::from_str(&env, "Policy 2"), - &CoverageType::Life, + &String::from_str(&env, "life"), &200, &2000, + &None, ); // Verify total includes both policies initially @@ -449,7 +479,7 @@ fn test_get_total_monthly_premium_deactivated_policy_excluded() { #[test] fn test_get_total_monthly_premium_different_owner_isolation() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner_a = Address::generate(&env); let owner_b = Address::generate(&env); @@ -460,16 +490,18 @@ fn test_get_total_monthly_premium_different_owner_isolation() { client.create_policy( &owner_a, &String::from_str(&env, "Policy A1"), - &CoverageType::Health, + &String::from_str(&env, "health"), &100, &1000, + &None, ); client.create_policy( &owner_a, &String::from_str(&env, "Policy A2"), - &CoverageType::Life, + &String::from_str(&env, "life"), &200, &2000, + &None, ); // Create policies for owner_b @@ -479,6 +511,7 @@ fn test_get_total_monthly_premium_different_owner_isolation() { &String::from_str(&env, "emergency"), &300, &3000, + &None, ); // Verify owner_a's total only includes their policies @@ -498,7 +531,7 @@ fn test_get_total_monthly_premium_different_owner_isolation() { #[test] fn test_multiple_premium_payments() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -510,6 +543,7 @@ fn test_multiple_premium_payments() { &String::from_str(&env, "Life"), &100, &10000, + &None, ); let p1 = client.get_policy(&policy_id).unwrap(); @@ -519,7 +553,9 @@ fn test_multiple_premium_payments() { client.pay_premium(&owner, &policy_id); // Simulate time passing (still before next due) - set_ledger_time(&env, 1, env.ledger().timestamp() + 5000); + let mut ledger = env.ledger().get(); + ledger.timestamp += 5000; + env.ledger().set(ledger); // Second payment client.pay_premium(&owner, &policy_id); @@ -537,16 +573,22 @@ fn test_multiple_premium_payments() { } #[test] -fn test_create_premium_schedule_succeeds() { - setup_test_env!(env, Insurance, InsuranceClient, client, owner); - set_ledger_time(&env, 1000); +fn test_create_premium_schedule() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = ::generate(&env); + + env.mock_all_auths(); + set_time(&env, 1000); let policy_id = client.create_policy( &owner, &String::from_str(&env, "Health Insurance"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &50000, + &None, ); let schedule_id = client.create_premium_schedule(&owner, &policy_id, &3000, &2592000); @@ -563,19 +605,20 @@ fn test_create_premium_schedule_succeeds() { #[test] fn test_modify_premium_schedule() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = ::generate(&env); env.mock_all_auths(); - set_ledger_time(&env, 1, 1000); + set_time(&env, 1000); let policy_id = client.create_policy( &owner, &String::from_str(&env, "Health Insurance"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &50000, + &None, ); let schedule_id = client.create_premium_schedule(&owner, &policy_id, &3000, &2592000); @@ -589,19 +632,20 @@ fn test_modify_premium_schedule() { #[test] fn test_cancel_premium_schedule() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = ::generate(&env); env.mock_all_auths(); - set_ledger_time(&env, 1, 1000); + set_time(&env, 1000); let policy_id = client.create_policy( &owner, &String::from_str(&env, "Health Insurance"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &50000, + &None, ); let schedule_id = client.create_premium_schedule(&owner, &policy_id, &3000, &2592000); @@ -614,24 +658,25 @@ fn test_cancel_premium_schedule() { #[test] fn test_execute_due_premium_schedules() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = ::generate(&env); env.mock_all_auths(); - set_ledger_time(&env, 1, 1000); + set_time(&env, 1000); let policy_id = client.create_policy( &owner, &String::from_str(&env, "Health Insurance"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &50000, + &None, ); let schedule_id = client.create_premium_schedule(&owner, &policy_id, &3000, &0); - set_ledger_time(&env, 1, 3500); + set_time(&env, 3500); let executed = client.execute_due_premium_schedules(); assert_eq!(executed.len(), 1); @@ -644,12 +689,12 @@ fn test_execute_due_premium_schedules() { #[test] fn test_execute_recurring_premium_schedule() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = ::generate(&env); env.mock_all_auths(); - set_ledger_time(&env, 1, 1000); + set_time(&env, 1000); let policy_id = client.create_policy( &owner, @@ -657,11 +702,12 @@ fn test_execute_recurring_premium_schedule() { &String::from_str(&env, "health"), &500, &50000, + &None, ); let schedule_id = client.create_premium_schedule(&owner, &policy_id, &3000, &2592000); - set_ledger_time(&env, 1, 3500); + set_time(&env, 3500); client.execute_due_premium_schedules(); let schedule = client.get_premium_schedule(&schedule_id).unwrap(); @@ -672,19 +718,20 @@ fn test_execute_recurring_premium_schedule() { #[test] fn test_execute_missed_premium_schedules() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = ::generate(&env); env.mock_all_auths(); - set_ledger_time(&env, 1, 1000); + set_time(&env, 1000); let policy_id = client.create_policy( &owner, &String::from_str(&env, "Health Insurance"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &50000, + &None, ); let schedule_id = client.create_premium_schedule(&owner, &policy_id, &3000, &2592000); @@ -700,19 +747,20 @@ fn test_execute_missed_premium_schedules() { #[test] fn test_get_premium_schedules() { let env = Env::default(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = ::generate(&env); env.mock_all_auths(); - set_ledger_time(&env, 1, 1000); + set_time(&env, 1000); let policy_id1 = client.create_policy( &owner, &String::from_str(&env, "Health Insurance"), - &CoverageType::Health, + &String::from_str(&env, "health"), &500, &50000, + &None, ); let policy_id2 = client.create_policy( @@ -721,959 +769,703 @@ fn test_get_premium_schedules() { &String::from_str(&env, "life"), &300, &100000, + &None, ); client.create_premium_schedule(&owner, &policy_id1, &3000, &2592000); client.create_premium_schedule(&owner, &policy_id2, &4000, &2592000); - // ----------------------------------------------------------------------- - // 3. create_policy — boundary conditions - // ----------------------------------------------------------------------- - - // --- Health min/max boundaries --- - - #[test] - fn test_health_premium_at_minimum_boundary() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // min_premium for Health = 1_000_000 - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &1_000_000i128, - &10_000_000i128, // min coverage - &None, - ); - } + let schedules = client.get_premium_schedules(&owner); + assert_eq!(schedules.len(), 2); +} - #[test] - fn test_health_premium_at_maximum_boundary() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // max_premium = 500_000_000; need coverage ≤ 500M * 12 * 500 = 3T (within 100B limit) - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &500_000_000i128, - &100_000_000_000i128, // max coverage for Health - &None, - ); - } +#[test] +fn test_create_policy_emits_event() { + use soroban_sdk::testutils::Events; + use soroban_sdk::{symbol_short, vec, IntoVal}; - #[test] - fn test_health_coverage_at_minimum_boundary() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &10_000_000i128, // exactly min_coverage - &None, - ); - } + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - #[test] - fn test_health_coverage_at_maximum_boundary() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // max_coverage = 100_000_000_000; need premium ≥ 100B / (12*500) ≈ 16_666_667 - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &500_000_000i128, // max premium to allow max coverage via ratio - &100_000_000_000i128, // exactly max_coverage - &None, - ); - } + env.mock_all_auths(); - // --- Life boundaries --- - - #[test] - fn test_life_premium_at_minimum_boundary() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &String::from_str(&env, "Life Min"), - &CoverageType::Life, - &500_000i128, // min_premium - &50_000_000i128, // min_coverage - &None, - ); - } + let name = String::from_str(&env, "Health Policy"); + let coverage_type = String::from_str(&env, "Health"); - #[test] - fn test_liability_premium_at_minimum_boundary() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &String::from_str(&env, "Liability Min"), - &CoverageType::Liability, - &800_000i128, // min_premium - &5_000_000i128, // min_coverage - &None, - ); - } + let policy_id = client.create_policy(&owner, &name, &coverage_type, &100, &10000, &None); - // ----------------------------------------------------------------------- - // 4. create_policy — name validation - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "name cannot be empty")] - fn test_create_policy_empty_name_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &String::from_str(&env, ""), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - } + let events = env.events().all(); + assert!(events.len() >= 2); - #[test] - #[should_panic(expected = "name too long")] - fn test_create_policy_name_exceeds_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // 65 character name — exceeds MAX_NAME_LEN (64) - let long_name = String::from_str( - &env, - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1", - ); - client.create_policy( - &caller, - &long_name, - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - } + let audit_event = events.last().unwrap(); - #[test] - fn test_create_policy_name_at_max_length_succeeds() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Exactly 64 characters - let max_name = String::from_str( - &env, - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - ); - client.create_policy( - &caller, - &max_name, - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - } + let expected_topics = vec![ + &env, + symbol_short!("insure").into_val(&env), + InsuranceEvent::PolicyCreated.into_val(&env), + ]; - // ----------------------------------------------------------------------- - // 5. create_policy — premium validation failures - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "monthly_premium must be positive")] - fn test_create_policy_zero_premium_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &0i128, - &50_000_000i128, - &None, - ); - } + assert_eq!(audit_event.1, expected_topics); - #[test] - #[should_panic(expected = "monthly_premium must be positive")] - fn test_create_policy_negative_premium_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &-1i128, - &50_000_000i128, - &None, - ); - } + let data: (u32, Address, Option) = soroban_sdk::FromVal::from_val(&env, &audit_event.2); + assert_eq!(data, (policy_id, owner.clone(), None)); + assert_eq!(audit_event.0, contract_id.clone()); +} - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_create_health_policy_premium_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Health min_premium = 1_000_000; supply 999_999 - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &999_999i128, - &50_000_000i128, - &None, - ); - } +#[test] +fn test_pay_premium_emits_event() { + use soroban_sdk::testutils::Events; + use soroban_sdk::{symbol_short, vec, IntoVal}; - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_create_health_policy_premium_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Health max_premium = 500_000_000; supply 500_000_001 - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &500_000_001i128, - &10_000_000i128, - &None, - ); - } + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_create_life_policy_premium_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Life min_premium = 500_000; supply 499_999 - client.create_policy( - &caller, - &String::from_str(&env, "Life"), - &CoverageType::Life, - &499_999i128, - &50_000_000i128, - &None, - ); - } + env.mock_all_auths(); - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_create_property_policy_premium_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Property min_premium = 2_000_000; supply 1_999_999 - client.create_policy( - &caller, - &String::from_str(&env, "Property"), - &CoverageType::Property, - &1_999_999i128, - &100_000_000i128, - &None, - ); - } + let name = String::from_str(&env, "Health Policy"); + let coverage_type = String::from_str(&env, "Health"); + let policy_id = client.create_policy(&owner, &name, &coverage_type, &100, &10000, &None); - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_create_auto_policy_premium_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Auto min_premium = 1_500_000; supply 1_499_999 - client.create_policy( - &caller, - &String::from_str(&env, "Auto"), - &CoverageType::Auto, - &1_499_999i128, - &20_000_000i128, - &None, - ); - } + env.mock_all_auths(); + client.pay_premium(&owner, &policy_id); - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_create_liability_policy_premium_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Liability min_premium = 800_000; supply 799_999 - client.create_policy( - &caller, - &String::from_str(&env, "Liability"), - &CoverageType::Liability, - &799_999i128, - &5_000_000i128, - &None, - ); - } + let events = env.events().all(); + assert!(events.len() >= 2); - // ----------------------------------------------------------------------- - // 6. create_policy — coverage amount validation failures - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "coverage_amount must be positive")] - fn test_create_policy_zero_coverage_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &0i128, - &None, - ); - } + let audit_event = events.last().unwrap(); - #[test] - #[should_panic(expected = "coverage_amount must be positive")] - fn test_create_policy_negative_coverage_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &-1i128, - &None, - ); - } + let expected_topics = vec![ + &env, + symbol_short!("insure").into_val(&env), + InsuranceEvent::PremiumPaid.into_val(&env), + ]; - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_create_health_policy_coverage_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Health min_coverage = 10_000_000; supply 9_999_999 - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &9_999_999i128, - &None, - ); - } + assert_eq!(audit_event.1, expected_topics); - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_create_health_policy_coverage_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Health max_coverage = 100_000_000_000; supply 100_000_000_001 - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &500_000_000i128, - &100_000_000_001i128, - &None, - ); - } + let data: (u32, Address) = soroban_sdk::FromVal::from_val(&env, &audit_event.2); + assert_eq!(data, (policy_id, owner.clone())); + assert_eq!(audit_event.0, contract_id.clone()); +} - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_create_life_policy_coverage_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Life min_coverage = 50_000_000; supply 49_999_999 - client.create_policy( - &caller, - &String::from_str(&env, "Life"), - &CoverageType::Life, - &1_000_000i128, - &49_999_999i128, - &None, - ); - } +#[test] +fn test_deactivate_policy_emits_event() { + use soroban_sdk::testutils::Events; + use soroban_sdk::{symbol_short, vec, IntoVal}; - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_create_property_policy_coverage_below_min_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Property min_coverage = 100_000_000; supply 99_999_999 - client.create_policy( - &caller, - &String::from_str(&env, "Property"), - &CoverageType::Property, - &5_000_000i128, - &99_999_999i128, - &None, - ); - } + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - // ----------------------------------------------------------------------- - // 7. create_policy — ratio guard (unsupported combination) - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "unsupported combination: coverage_amount too high relative to premium")] - fn test_create_policy_coverage_too_high_for_premium_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // premium = 1_000_000 → annual = 12_000_000 → max_coverage = 6_000_000_000 - // supply coverage = 6_000_000_001 (just over the ratio limit, but within Health's hard max) - // Need premium high enough so health range isn't hit, but ratio is - // Health max_coverage = 100_000_000_000 - // Use premium = 1_000_000, coverage = 7_000_000_000 → over ratio (6B), under hard cap (100B) - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &1_000_000i128, - &7_000_000_000i128, - &None, - ); - } + env.mock_all_auths(); - #[test] - fn test_create_policy_coverage_exactly_at_ratio_limit_succeeds() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // premium = 1_000_000 → ratio limit = 1M * 12 * 500 = 6_000_000_000 - // Health max_coverage = 100B, so 6B is fine - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &1_000_000i128, - &6_000_000_000i128, - &None, - ); - } + let name = String::from_str(&env, "Health Policy"); + let coverage_type = String::from_str(&env, "Health"); + let policy_id = client.create_policy(&owner, &name, &coverage_type, &100, &10000, &None); - // ----------------------------------------------------------------------- - // 8. External ref validation - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "external_ref length out of range")] - fn test_create_policy_ext_ref_too_long_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // 129 character external ref — exceeds MAX_EXT_REF_LEN (128) - let long_ref = String::from_str( - &env, - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1", - ); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &Some(long_ref), - ); - } + env.mock_all_auths(); + client.deactivate_policy(&owner, &policy_id); - #[test] - fn test_create_policy_ext_ref_at_max_length_succeeds() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Exactly 128 characters - let max_ref = String::from_str( - &env, - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - ); - client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &Some(max_ref), - ); - } + let events = env.events().all(); + assert!(events.len() >= 2); - // ----------------------------------------------------------------------- - // 9. pay_premium — happy path - // ----------------------------------------------------------------------- - - #[test] - fn test_pay_premium_success() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - let result = client.pay_premium(&caller, &id, &5_000_000i128); - assert!(result); - } + let audit_event = events.last().unwrap(); - #[test] - fn test_pay_premium_updates_next_payment_date() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - env.ledger().set_timestamp(1_000_000u64); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - env.ledger().set_timestamp(2_000_000u64); - client.pay_premium(&caller, &id, &5_000_000i128); - let policy = client.get_policy(&id); - // next_payment_due should be 2_000_000 + 30 days - assert_eq!(policy.next_payment_due, 2_000_000 + 30 * 24 * 60 * 60); - assert_eq!(policy.last_payment_at, 2_000_000u64); - } + let expected_topics = vec![ + &env, + symbol_short!("insure").into_val(&env), // Fixed: should be "insure" not "insuranc" + InsuranceEvent::PolicyDeactivated.into_val(&env), + ]; - // ----------------------------------------------------------------------- - // 10. pay_premium — failure cases - // ----------------------------------------------------------------------- + assert_eq!(audit_event.1, expected_topics); - #[test] - #[should_panic(expected = "policy not found")] - fn test_pay_premium_nonexistent_policy_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - client.pay_premium(&caller, &999u32, &5_000_000i128); - } + let data: (u32, Address) = soroban_sdk::FromVal::from_val(&env, &audit_event.2); + assert_eq!(data, (policy_id, owner.clone())); + assert_eq!(audit_event.0, contract_id.clone()); +} - #[test] - #[should_panic(expected = "amount must equal monthly_premium")] - fn test_pay_premium_wrong_amount_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - client.pay_premium(&caller, &id, &4_999_999i128); - } +// Required test cases from issue #61 - #[test] - #[should_panic(expected = "policy inactive")] - fn test_pay_premium_on_inactive_policy_panics() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - client.deactivate_policy(&owner, &id); - client.pay_premium(&caller, &id, &5_000_000i128); - } +#[test] +fn test_create_policy_success() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - // ----------------------------------------------------------------------- - // 11. deactivate_policy — happy path - // ----------------------------------------------------------------------- - - #[test] - fn test_deactivate_policy_success() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - let result = client.deactivate_policy(&owner, &id); - assert!(result); - - let policy = client.get_policy(&id); - assert!(!policy.active); - } + env.mock_all_auths(); - #[test] - fn test_deactivate_removes_from_active_list() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - assert_eq!(client.get_active_policies().len(), 1); - client.deactivate_policy(&owner, &id); - assert_eq!(client.get_active_policies().len(), 0); - } + let name = String::from_str(&env, "Test Policy"); + let coverage_type = String::from_str(&env, "health"); + let monthly_premium = 100; + let coverage_amount = 10000; - // ----------------------------------------------------------------------- - // 12. deactivate_policy — failure cases - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "unauthorized")] - fn test_deactivate_policy_non_owner_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - let non_owner = Address::generate(&env); - client.deactivate_policy(&non_owner, &id); - } + let policy_id = client.create_policy( + &owner, + &name, + &coverage_type, + &monthly_premium, + &coverage_amount, + &None, + ); - #[test] - #[should_panic(expected = "policy not found")] - fn test_deactivate_nonexistent_policy_panics() { - let (_env, client, owner) = setup(); - client.deactivate_policy(&owner, &999u32); - } + // Verify returns id + assert_eq!(policy_id, 1); - #[test] - #[should_panic(expected = "policy already inactive")] - fn test_deactivate_already_inactive_policy_panics() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - client.deactivate_policy(&owner, &id); - // Second deactivation must panic - client.deactivate_policy(&owner, &id); - } + // Verify policy stored correctly + let policy = client.get_policy(&policy_id).unwrap(); + assert_eq!(policy.owner, owner); + assert_eq!(policy.name, name); + assert_eq!(policy.coverage_type, coverage_type); + assert_eq!(policy.monthly_premium, monthly_premium); + assert_eq!(policy.coverage_amount, coverage_amount); + assert!(policy.active); +} - // ----------------------------------------------------------------------- - // 13. set_external_ref - // ----------------------------------------------------------------------- - - #[test] - fn test_set_external_ref_success() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - let new_ref = String::from_str(&env, "NEW-REF-001"); - client.set_external_ref(&owner, &id, &Some(new_ref)); - let policy = client.get_policy(&id); - assert!(policy.external_ref.is_some()); - } +#[test] +fn test_create_policy_requires_auth() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - #[test] - fn test_set_external_ref_clear() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let ext_ref = String::from_str(&env, "INITIAL-REF"); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &Some(ext_ref), - ); - // Clear the ref - client.set_external_ref(&owner, &id, &None); - let policy = client.get_policy(&id); - assert!(policy.external_ref.is_none()); - } + // Don't mock auths - this should fail + let result = client.try_create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); - #[test] - #[should_panic(expected = "unauthorized")] - fn test_set_external_ref_non_owner_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - let non_owner = Address::generate(&env); - let new_ref = String::from_str(&env, "HACK"); - client.set_external_ref(&non_owner, &id, &Some(new_ref)); - } + // Should fail due to missing auth + assert!(result.is_err()); +} - #[test] - #[should_panic(expected = "external_ref length out of range")] - fn test_set_external_ref_too_long_panics() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - let long_ref = String::from_str( - &env, - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1", - ); - client.set_external_ref(&owner, &id, &Some(long_ref)); - } +#[test] +fn test_create_policy_negative_premium_panics() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - // ----------------------------------------------------------------------- - // 14. Queries - // ----------------------------------------------------------------------- + env.mock_all_auths(); - #[test] - fn test_get_active_policies_empty_initially() { - let (_env, client, _owner) = setup(); - assert_eq!(client.get_active_policies().len(), 0); - } + let result = client.try_create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &-1, // negative premium + &10000, + &None, + ); - #[test] - fn test_get_active_policies_reflects_creates_and_deactivations() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id1 = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - client.create_policy( - &caller, - &String::from_str(&env, "Second Policy"), - &CoverageType::Life, - &1_000_000i128, - &60_000_000i128, - &None, - ); - assert_eq!(client.get_active_policies().len(), 2); - client.deactivate_policy(&owner, &id1); - assert_eq!(client.get_active_policies().len(), 1); - } + assert!(result.is_err()); +} - #[test] - fn test_get_total_monthly_premium_sums_active_only() { - let (env, client, owner) = setup(); - let caller = Address::generate(&env); - let id1 = client.create_policy( - &caller, - &short_name(&env), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - client.create_policy( - &caller, - &String::from_str(&env, "Second"), - &CoverageType::Life, - &1_000_000i128, - &60_000_000i128, - &None, - ); - assert_eq!(client.get_total_monthly_premium(), 6_000_000i128); - client.deactivate_policy(&owner, &id1); - assert_eq!(client.get_total_monthly_premium(), 1_000_000i128); - } +#[test] +fn test_create_policy_negative_coverage_panics() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - #[test] - fn test_get_total_monthly_premium_zero_when_no_policies() { - let (_env, client, _owner) = setup(); - assert_eq!(client.get_total_monthly_premium(), 0i128); - } + env.mock_all_auths(); - #[test] - #[should_panic(expected = "policy not found")] - fn test_get_policy_nonexistent_panics() { - let (_env, client, _owner) = setup(); - client.get_policy(&999u32); - } + let result = client.try_create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &100, + &-1, // negative coverage + &None, + ); - // ----------------------------------------------------------------------- - // 15. Uninitialized contract guard - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "not initialized")] - fn test_create_policy_without_init_panics() { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, InsuranceContract); - let client = InsuranceContractClient::new(&env, &contract_id); - let caller = Address::generate(&env); - client.create_policy( - &caller, - &String::from_str(&env, "Test"), - &CoverageType::Health, - &5_000_000i128, - &50_000_000i128, - &None, - ); - } + assert!(result.is_err()); +} - #[test] - #[should_panic(expected = "not initialized")] - fn test_get_active_policies_without_init_panics() { - let env = Env::default(); - env.mock_all_auths(); - let contract_id = env.register_contract(None, InsuranceContract); - let client = InsuranceContractClient::new(&env, &contract_id); - client.get_active_policies(); - } +#[test] +fn test_pay_premium_success() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); - // ----------------------------------------------------------------------- - // 16. Policy data integrity - // ----------------------------------------------------------------------- - - #[test] - fn test_policy_fields_stored_correctly() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - env.ledger().set_timestamp(1_700_000_000u64); - let id = client.create_policy( - &caller, - &String::from_str(&env, "My Health Plan"), - &CoverageType::Health, - &10_000_000i128, - &100_000_000i128, - &Some(String::from_str(&env, "EXT-001")), - ); - let policy = client.get_policy(&id); - assert_eq!(policy.id, 1u32); - assert_eq!(policy.monthly_premium, 10_000_000i128); - assert_eq!(policy.coverage_amount, 100_000_000i128); - assert!(policy.active); - assert_eq!(policy.last_payment_at, 0u64); - assert_eq!(policy.created_at, 1_700_000_000u64); - assert_eq!( - policy.next_payment_due, - 1_700_000_000u64 + 30 * 24 * 60 * 60 - ); - assert!(policy.external_ref.is_some()); - } + env.mock_all_auths(); - // ----------------------------------------------------------------------- - // 17. Cross-coverage-type boundary checks - // ----------------------------------------------------------------------- - - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_property_premium_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Property max_premium = 2_000_000_000; supply 2_000_000_001 - client.create_policy( - &caller, - &String::from_str(&env, "Property"), - &CoverageType::Property, - &2_000_000_001i128, - &100_000_000i128, - &None, - ); - } + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_auto_premium_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Auto max_premium = 750_000_000; supply 750_000_001 - client.create_policy( - &caller, - &String::from_str(&env, "Auto"), - &CoverageType::Auto, - &750_000_001i128, - &20_000_000i128, - &None, - ); - } + let initial_policy = client.get_policy(&policy_id).unwrap(); + let initial_next_payment = initial_policy.next_payment_date; - #[test] - #[should_panic(expected = "monthly_premium out of range for coverage type")] - fn test_liability_premium_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Liability max_premium = 400_000_000; supply 400_000_001 - client.create_policy( - &caller, - &String::from_str(&env, "Liability"), - &CoverageType::Liability, - &400_000_001i128, - &5_000_000i128, - &None, - ); - } + // Advance time + set_time(&env, env.ledger().timestamp() + 86400); // +1 day - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_life_coverage_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Life max_coverage = 500_000_000_000; supply 500_000_000_001 - client.create_policy( - &caller, - &String::from_str(&env, "Life"), - &CoverageType::Life, - &1_000_000_000i128, // max premium for Life - &500_000_000_001i128, - &None, - ); - } + let result = client.pay_premium(&owner, &policy_id); + assert!(result); - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_auto_coverage_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Auto max_coverage = 200_000_000_000; supply 200_000_000_001 - client.create_policy( - &caller, - &String::from_str(&env, "Auto"), - &CoverageType::Auto, - &750_000_000i128, - &200_000_000_001i128, - &None, - ); - } + let updated_policy = client.get_policy(&policy_id).unwrap(); - #[test] - #[should_panic(expected = "coverage_amount out of range for coverage type")] - fn test_liability_coverage_above_max_panics() { - let (env, client, _owner) = setup(); - let caller = Address::generate(&env); - // Liability max_coverage = 50_000_000_000; supply 50_000_000_001 - client.create_policy( - &caller, - &String::from_str(&env, "Liability"), - &CoverageType::Liability, - &400_000_000i128, - &50_000_000_001i128, - &None, - ); - } -} \ No newline at end of file + // next_payment_date should advance ~30 days from current time + let expected_next_payment = env.ledger().timestamp() + (30 * 86400); + assert_eq!(updated_policy.next_payment_date, expected_next_payment); + assert!(updated_policy.next_payment_date > initial_next_payment); +} + +#[test] +fn test_pay_premium_unauthorized_panics() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + let unauthorized_user = Address::generate(&env); + + env.mock_all_auths(); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); + + // Try to pay premium as unauthorized user + let result = client.try_pay_premium(&unauthorized_user, &policy_id); + assert!(result.is_err()); +} + +#[test] +fn test_pay_premium_inactive_policy_panics() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); + + // Deactivate policy first + client.deactivate_policy(&owner, &policy_id); + + // Try to pay premium on inactive policy + let result = client.try_pay_premium(&owner, &policy_id); + assert!(result.is_err()); +} + +#[test] +fn test_deactivate_policy_owner_only() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + let unauthorized_user = Address::generate(&env); + + env.mock_all_auths(); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Test Policy"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); + + // Owner can deactivate + let result = client.deactivate_policy(&owner, &policy_id); + assert!(result); + + let policy = client.get_policy(&policy_id).unwrap(); + assert!(!policy.active); + + // Create another policy to test unauthorized deactivation + let policy_id2 = client.create_policy( + &owner, + &String::from_str(&env, "Test Policy 2"), + &String::from_str(&env, "life"), + &200, + &20000, + &None, + ); + + // Unauthorized user cannot deactivate + let result = client.try_deactivate_policy(&unauthorized_user, &policy_id2); + assert!(result.is_err()); +} + +#[test] +fn test_get_policy_nonexistent() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + + // Try to get policy that doesn't exist + let policy = client.get_policy(&999); + assert!(policy.is_none()); +} + +#[test] +fn test_get_active_policies_filters_by_owner_and_active() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner_a = Address::generate(&env); + let owner_b = Address::generate(&env); + + env.mock_all_auths(); + + // Create policies for owner_a + let policy_a1 = client.create_policy( + &owner_a, + &String::from_str(&env, "Policy A1"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); + let policy_a2 = client.create_policy( + &owner_a, + &String::from_str(&env, "Policy A2"), + &String::from_str(&env, "life"), + &200, + &20000, + &None, + ); + + // Create policies for owner_b + client.create_policy( + &owner_b, + &String::from_str(&env, "Policy B1"), + &String::from_str(&env, "emergency"), + &300, + &30000, + &None, + ); + + // Deactivate one of owner_a's policies + client.deactivate_policy(&owner_a, &policy_a1); + + // Get active policies for owner_a + let active_policies_a = client.get_active_policies(&owner_a, &0, &DEFAULT_PAGE_LIMIT); + assert_eq!(active_policies_a.items.len(), 1); + let active_policy = active_policies_a.items.get(0).unwrap(); + assert_eq!(active_policy.id, policy_a2); + assert_eq!(active_policy.owner, owner_a); + assert!(active_policy.active); + + // Get active policies for owner_b + let active_policies_b = client.get_active_policies(&owner_b, &0, &DEFAULT_PAGE_LIMIT); + assert_eq!(active_policies_b.items.len(), 1); + let active_policy_b = active_policies_b.items.get(0).unwrap(); + assert_eq!(active_policy_b.owner, owner_b); + assert!(active_policy_b.active); +} + +#[test] +fn test_get_total_monthly_premium_comprehensive() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + + // Create multiple active policies + client.create_policy( + &owner, + &String::from_str(&env, "Policy 1"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); + client.create_policy( + &owner, + &String::from_str(&env, "Policy 2"), + &String::from_str(&env, "life"), + &200, + &20000, + &None, + ); + let policy3 = client.create_policy( + &owner, + &String::from_str(&env, "Policy 3"), + &String::from_str(&env, "emergency"), + &300, + &30000, + &None, + ); + + // Total should be sum of all active policies' monthly_premium + let total = client.get_total_monthly_premium(&owner); + assert_eq!(total, 600); // 100 + 200 + 300 + + // Deactivate one policy + client.deactivate_policy(&owner, &policy3); + + // Total should now exclude the deactivated policy + let total_after = client.get_total_monthly_premium(&owner); + assert_eq!(total_after, 300); // 100 + 200 +} + +#[test] +fn test_multiple_policies_same_owner() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + + // Create multiple policies for same owner + let policy1 = client.create_policy( + &owner, + &String::from_str(&env, "Health Policy"), + &String::from_str(&env, "health"), + &100, + &10000, + &None, + ); + let policy2 = client.create_policy( + &owner, + &String::from_str(&env, "Life Policy"), + &String::from_str(&env, "life"), + &200, + &20000, + &None, + ); + let policy3 = client.create_policy( + &owner, + &String::from_str(&env, "Emergency Policy"), + &String::from_str(&env, "emergency"), + &300, + &30000, + &None, + ); + + // Verify all policies exist and are active + let p1 = client.get_policy(&policy1).unwrap(); + let p2 = client.get_policy(&policy2).unwrap(); + let p3 = client.get_policy(&policy3).unwrap(); + + assert!(p1.active && p2.active && p3.active); + assert_eq!(p1.owner, owner); + assert_eq!(p2.owner, owner); + assert_eq!(p3.owner, owner); + + // Pay premiums for all policies + set_time(&env, env.ledger().timestamp() + 86400); // +1 day + + let result1 = client.pay_premium(&owner, &policy1); + let result2 = client.pay_premium(&owner, &policy2); + let result3 = client.pay_premium(&owner, &policy3); + + assert!(result1 && result2 && result3); + + // Deactivate policies + let deactivate1 = client.deactivate_policy(&owner, &policy1); + let deactivate2 = client.deactivate_policy(&owner, &policy2); + let deactivate3 = client.deactivate_policy(&owner, &policy3); + + assert!(deactivate1 && deactivate2 && deactivate3); + + // Verify all policies are now inactive + let p1_after = client.get_policy(&policy1).unwrap(); + let p2_after = client.get_policy(&policy2).unwrap(); + let p3_after = client.get_policy(&policy3).unwrap(); + + assert!(!p1_after.active && !p2_after.active && !p3_after.active); + + // Verify no active policies remain + let active_policies = client.get_active_policies(&owner, &0, &DEFAULT_PAGE_LIMIT); + assert_eq!(active_policies.items.len(), 0); + + // Verify total monthly premium is now 0 + let total = client.get_total_monthly_premium(&owner); + assert_eq!(total, 0); +} + +// ══════════════════════════════════════════════════════════════════════════ +// Time & Ledger Drift Resilience Tests (#158) +// +// Assumptions documented here: +// - execute_due_premium_schedules fires when schedule.next_due <= current_time +// (inclusive: executes exactly at next_due). +// - next_payment_date is set to env.ledger().timestamp() + 30 * 86400 at +// execution time, anchored to actual payment time not original due date. +// - Stellar ledger timestamps are monotonically increasing in production. +// After execution next_due advances by the interval, guarding against +// re-execution even if ledger time were set backward. +// ══════════════════════════════════════════════════════════════════════════ + +/// Premium schedule must NOT execute one second before next_due. +#[test] +fn test_time_drift_premium_schedule_not_executed_before_next_due() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + let next_due = 5000u64; + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Life Cover"), + &String::from_str(&env, "life"), + &200, + &100000, + &None, + ); + client.create_premium_schedule(&owner, &policy_id, &next_due, &2592000); + + set_time(&env, next_due - 1); + let executed = client.execute_due_premium_schedules(); + assert_eq!( + executed.len(), + 0, + "Premium schedule must not execute one second before next_due" + ); +} + +/// Premium schedule must execute exactly at next_due (inclusive boundary). +#[test] +fn test_time_drift_premium_schedule_executes_at_exact_next_due() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + let next_due = 5000u64; + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Health Plan"), + &String::from_str(&env, "health"), + &150, + &75000, + &None, + ); + let schedule_id = client.create_premium_schedule(&owner, &policy_id, &next_due, &2592000); + + set_time(&env, next_due); + let executed = client.execute_due_premium_schedules(); + assert_eq!( + executed.len(), + 1, + "Premium schedule must execute exactly at next_due" + ); + assert_eq!(executed.get(0).unwrap(), schedule_id); + + let policy = client.get_policy(&policy_id).unwrap(); + assert_eq!( + policy.next_payment_date, + next_due + 30 * 86400, + "next_payment_date must be current_time + 30 days" + ); +} + +/// next_payment_date is anchored to actual payment time, not original next_due. +/// A late payment pushes next_payment_date further than an on-time payment would. +#[test] +fn test_time_drift_next_payment_date_uses_actual_payment_time() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + let next_due = 5000u64; + let late_payment_time = next_due + 7 * 86400; // paid 7 days late + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Property Plan"), + &String::from_str(&env, "property"), + &300, + &200000, + &None, + ); + client.create_premium_schedule(&owner, &policy_id, &next_due, &2592000); + + set_time(&env, late_payment_time); + client.execute_due_premium_schedules(); + + let policy = client.get_policy(&policy_id).unwrap(); + assert_eq!( + policy.next_payment_date, + late_payment_time + 30 * 86400, + "next_payment_date must be anchored to actual payment time" + ); + assert!( + policy.next_payment_date > next_due + 30 * 86400, + "Late payment must push next_payment_date beyond on-time payment window" + ); +} + +/// After execution next_due advances; a call at a time still before the new +/// next_due must not re-execute. Documents non-monotonic time assumption. +#[test] +fn test_time_drift_no_double_execution_after_schedule_advances() { + let env = Env::default(); + let contract_id = env.register(Insurance, ()); + let client = InsuranceClient::new(&env, &contract_id); + let owner = Address::generate(&env); + + env.mock_all_auths(); + let next_due = 5000u64; + let interval = 2_592_000u64; + set_time(&env, 1000); + + let policy_id = client.create_policy( + &owner, + &String::from_str(&env, "Auto Cover"), + &String::from_str(&env, "auto"), + &100, + &50000, + &None, + ); + client.create_premium_schedule(&owner, &policy_id, &next_due, &interval); + + // First execution at next_due + set_time(&env, next_due); + let executed = client.execute_due_premium_schedules(); + assert_eq!(executed.len(), 1); + + // Between old next_due and new next_due: no re-execution + // NOTE: In production, ledger time is monotonic. This also covers repeated + // calls within the same ledger window before the next cycle. + set_time(&env, next_due + 1000); + let executed_again = client.execute_due_premium_schedules(); + assert_eq!( + executed_again.len(), + 0, + "Schedule must not re-execute before the new next_due" + ); +} diff --git a/insurance/test_snapshots/test/test_cancel_premium_schedule.1.json b/insurance/test_snapshots/test/test_cancel_premium_schedule.1.json index 04db68ca..f29dd4e9 100644 --- a/insurance/test_snapshots/test/test_cancel_premium_schedule.1.json +++ b/insurance/test_snapshots/test/test_cancel_premium_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -94,7 +96,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -181,6 +183,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -486,500 +494,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cancel_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCancelled" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "cancel_premium_schedule" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 3000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy.1.json b/insurance/test_snapshots/test/test_create_policy.1.json index 55b45fb5..cab495e9 100644 --- a/insurance/test_snapshots/test/test_create_policy.1.json +++ b/insurance/test_snapshots/test/test_create_policy.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -44,7 +46,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -123,6 +125,12 @@ "string": "Health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,312 +272,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Policy" - }, - { - "string": "Health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_emits_event.1.json b/insurance/test_snapshots/test/test_create_policy_emits_event.1.json index 0514df87..078539fd 100644 --- a/insurance/test_snapshots/test/test_create_policy_emits_event.1.json +++ b/insurance/test_snapshots/test/test_create_policy_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -43,7 +45,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -122,6 +124,12 @@ "string": "Health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,54 +272,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Policy" - }, - { - "string": "Health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -413,36 +373,14 @@ }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } + }, + "void" ] } } } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_invalid_coverage.1.json b/insurance/test_snapshots/test/test_create_policy_invalid_coverage.1.json index 23b7d8d8..56557491 100644 --- a/insurance/test_snapshots/test/test_create_policy_invalid_coverage.1.json +++ b/insurance/test_snapshots/test/test_create_policy_invalid_coverage.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,161 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bad" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "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 try_call failed" - }, - { - "symbol": "create_policy" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bad" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_invalid_premium.1.json b/insurance/test_snapshots/test/test_create_policy_invalid_premium.1.json index 5c6cdd26..56557491 100644 --- a/insurance/test_snapshots/test/test_create_policy_invalid_premium.1.json +++ b/insurance/test_snapshots/test/test_create_policy_invalid_premium.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,161 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bad" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "error": { - "contract": 1 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 1 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 1 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "create_policy" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Bad" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_negative_coverage_panics.1.json b/insurance/test_snapshots/test/test_create_policy_negative_coverage_panics.1.json index c8aceb6a..56557491 100644 --- a/insurance/test_snapshots/test/test_create_policy_negative_coverage_panics.1.json +++ b/insurance/test_snapshots/test/test_create_policy_negative_coverage_panics.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,161 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": -1, - "lo": 18446744073709551615 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "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 try_call failed" - }, - { - "symbol": "create_policy" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": -1, - "lo": 18446744073709551615 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_negative_premium_panics.1.json b/insurance/test_snapshots/test/test_create_policy_negative_premium_panics.1.json index 9c27e993..56557491 100644 --- a/insurance/test_snapshots/test/test_create_policy_negative_premium_panics.1.json +++ b/insurance/test_snapshots/test/test_create_policy_negative_premium_panics.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,161 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": -1, - "lo": 18446744073709551615 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "error": { - "contract": 1 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 1 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 1 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "create_policy" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": -1, - "lo": 18446744073709551615 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_requires_auth.1.json b/insurance/test_snapshots/test/test_create_policy_requires_auth.1.json index a88768fb..56557491 100644 --- a/insurance/test_snapshots/test/test_create_policy_requires_auth.1.json +++ b/insurance/test_snapshots/test/test_create_policy_requires_auth.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,193 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "auth": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "Unauthorized function call for address" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "auth": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "auth": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "auth": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "create_policy" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_policy_success.1.json b/insurance/test_snapshots/test/test_create_policy_success.1.json index 1459dd64..15e0af14 100644 --- a/insurance/test_snapshots/test/test_create_policy_success.1.json +++ b/insurance/test_snapshots/test/test_create_policy_success.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -44,7 +46,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -123,6 +125,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,312 +272,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_create_premium_schedule.1.json b/insurance/test_snapshots/test/test_create_premium_schedule.1.json index b89f7b64..daba3d3d 100644 --- a/insurance/test_snapshots/test/test_create_premium_schedule.1.json +++ b/insurance/test_snapshots/test/test_create_premium_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -72,7 +74,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -159,6 +161,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -431,410 +439,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 3000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_deactivate_policy.1.json b/insurance/test_snapshots/test/test_deactivate_policy.1.json index 7e8dd151..50d54156 100644 --- a/insurance/test_snapshots/test/test_deactivate_policy.1.json +++ b/insurance/test_snapshots/test/test_deactivate_policy.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -66,7 +68,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -145,6 +147,12 @@ "string": "Type" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,447 +327,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_deactivate_policy_emits_event.1.json b/insurance/test_snapshots/test/test_deactivate_policy_emits_event.1.json index 5dbe3d09..711897a4 100644 --- a/insurance/test_snapshots/test/test_deactivate_policy_emits_event.1.json +++ b/insurance/test_snapshots/test/test_deactivate_policy_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -65,7 +67,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -144,6 +146,12 @@ "string": "Health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,219 +327,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Policy" - }, - { - "string": "Health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -610,29 +405,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_deactivate_policy_owner_only.1.json b/insurance/test_snapshots/test/test_deactivate_policy_owner_only.1.json index f4e528aa..8b15891d 100644 --- a/insurance/test_snapshots/test/test_deactivate_policy_owner_only.1.json +++ b/insurance/test_snapshots/test/test_deactivate_policy_owner_only.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -93,7 +95,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -104,7 +107,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -183,6 +186,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -268,6 +277,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -475,752 +490,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy 2" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy 2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "error": { - "contract": 5 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "deactivate_policy" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 2 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_execute_due_premium_schedules.1.json b/insurance/test_snapshots/test/test_execute_due_premium_schedules.1.json index bd6ede6e..23b3932b 100644 --- a/insurance/test_snapshots/test/test_execute_due_premium_schedules.1.json +++ b/insurance/test_snapshots/test/test_execute_due_premium_schedules.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 3500, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,522 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2595500 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_execute_missed_premium_schedules.1.json b/insurance/test_snapshots/test/test_execute_missed_premium_schedules.1.json index 96df7d93..424cf317 100644 --- a/insurance/test_snapshots/test/test_execute_missed_premium_schedules.1.json +++ b/insurance/test_snapshots/test/test_execute_missed_premium_schedules.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 7779100, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,558 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleMissed" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": { - "u64": 7779100 - } - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 10371000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_execute_recurring_premium_schedule.1.json b/insurance/test_snapshots/test/test_execute_recurring_premium_schedule.1.json index 75d3c3d6..3dbf9a3f 100644 --- a/insurance/test_snapshots/test/test_execute_recurring_premium_schedule.1.json +++ b/insurance/test_snapshots/test/test_execute_recurring_premium_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 3500, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,524 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": { - "u64": 3500 - } - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 2595000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_active_policies.1.json b/insurance/test_snapshots/test/test_get_active_policies.1.json index 29779257..22ac6c06 100644 --- a/insurance/test_snapshots/test/test_get_active_policies.1.json +++ b/insurance/test_snapshots/test/test_get_active_policies.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 3000 } - } + }, + "void" ] } }, @@ -140,7 +144,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -219,6 +223,12 @@ "string": "T1" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -304,6 +314,12 @@ "string": "T2" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -389,6 +405,12 @@ "string": "T3" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -629,926 +651,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P1" - }, - { - "string": "T1" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T1" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P2" - }, - { - "string": "T2" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T2" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P3" - }, - { - "string": "T3" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T3" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P3" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 20 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T1" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P1" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T3" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P3" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_active_policies_excludes_deactivated.1.json b/insurance/test_snapshots/test/test_get_active_policies_excludes_deactivated.1.json index c787efd4..050992a0 100644 --- a/insurance/test_snapshots/test/test_get_active_policies_excludes_deactivated.1.json +++ b/insurance/test_snapshots/test/test_get_active_policies_excludes_deactivated.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -103,7 +106,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -182,6 +185,12 @@ "string": "Type 1" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -267,6 +276,12 @@ "string": "Type 2" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -474,666 +489,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 1" - }, - { - "string": "Type 1" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type 1" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 2" - }, - { - "string": "Type 2" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type 2" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 20 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type 2" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 2" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_active_policies_filters_by_owner_and_active.1.json b/insurance/test_snapshots/test/test_get_active_policies_filters_by_owner_and_active.1.json index de5733af..1f2e0f78 100644 --- a/insurance/test_snapshots/test/test_get_active_policies_filters_by_owner_and_active.1.json +++ b/insurance/test_snapshots/test/test_get_active_policies_filters_by_owner_and_active.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -141,7 +145,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -220,6 +224,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -305,6 +315,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -390,6 +406,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -641,1011 +663,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy A1" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy A1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy A2" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy A2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy B1" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy B1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy A1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 20 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy A2" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 20 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy B1" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_all_policies_for_owner_pagination.1.json b/insurance/test_snapshots/test/test_get_all_policies_for_owner_pagination.1.json index 43a9ddfa..58083a9a 100644 --- a/insurance/test_snapshots/test/test_get_all_policies_for_owner_pagination.1.json +++ b/insurance/test_snapshots/test/test_get_all_policies_for_owner_pagination.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 3000 } - } + }, + "void" ] } }, @@ -144,7 +148,8 @@ "hi": 0, "lo": 5000 } - } + }, + "void" ] } }, @@ -201,7 +206,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -280,6 +285,12 @@ "string": "T1" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -365,6 +376,12 @@ "string": "T2" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -450,6 +467,12 @@ "string": "T3" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -535,6 +558,12 @@ "string": "Type" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -852,1186 +881,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P1" - }, - { - "string": "T1" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T1" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P2" - }, - { - "string": "T2" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T2" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P3" - }, - { - "string": "T3" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T3" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P3" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Other P" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Other P" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 4 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_all_policies_for_owner" - } - ], - "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_all_policies_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T1" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P1" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T2" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P2" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T3" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P3" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_policy_nonexistent.1.json b/insurance/test_snapshots/test/test_get_policy_nonexistent.1.json index 2602cbb6..a90f00a8 100644 --- a/insurance/test_snapshots/test/test_get_policy_nonexistent.1.json +++ b/insurance/test_snapshots/test/test_get_policy_nonexistent.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,53 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 999 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_premium_schedules.1.json b/insurance/test_snapshots/test/test_get_premium_schedules.1.json index fbff6920..1e0e7a97 100644 --- a/insurance/test_snapshots/test/test_get_premium_schedules.1.json +++ b/insurance/test_snapshots/test/test_get_premium_schedules.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 100000 } - } + }, + "void" ] } }, @@ -137,7 +140,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -224,6 +227,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -311,6 +320,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -736,772 +751,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Life Insurance" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - }, - { - "u64": 4000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_premium_schedules" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_premium_schedules" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 3000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 4000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium.1.json index 29794449..90be76fc 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -81,7 +84,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +163,12 @@ "string": "T1" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -245,6 +254,12 @@ "string": "T2" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -419,418 +434,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P1" - }, - { - "string": "T1" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T1" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "P2" - }, - { - "string": "T2" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "T2" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "P2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 300 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium_comprehensive.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium_comprehensive.1.json index d3dafe55..908c647e 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium_comprehensive.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium_comprehensive.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -141,7 +145,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -220,6 +224,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -305,6 +315,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -390,6 +406,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -630,785 +652,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 1" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 2" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 3" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 3" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 600 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 3" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 300 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium_deactivated_policy_excluded.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium_deactivated_policy_excluded.1.json index 68f6c8ba..407fe15d 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium_deactivated_policy_excluded.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium_deactivated_policy_excluded.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -104,7 +107,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -183,6 +186,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -268,6 +277,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -475,605 +490,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 1" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 2" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 300 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium_different_owner_isolation.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium_different_owner_isolation.1.json index 6889d3fd..01040733 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium_different_owner_isolation.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium_different_owner_isolation.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 3000 } - } + }, + "void" ] } }, @@ -119,7 +123,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -198,6 +202,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -283,6 +293,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -368,6 +384,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -586,650 +608,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy A1" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy A1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy A2" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy A2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy B1" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy B1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 300 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 300 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium_multiple_active_policies.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium_multiple_active_policies.1.json index ad175e63..8e87fab0 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium_multiple_active_policies.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium_multiple_active_policies.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 1000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 2000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 3000 } - } + }, + "void" ] } }, @@ -118,7 +122,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -197,6 +201,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -282,6 +292,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -367,6 +383,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -574,598 +596,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 1" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 1" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 2" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 2" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy 3" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy 3" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 600 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium_one_policy.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium_one_policy.1.json index 388b3750..1f718e38 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium_one_policy.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium_one_policy.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -44,7 +46,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -123,6 +125,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,238 +272,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Single Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Single Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 500 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_get_total_monthly_premium_zero_policies.1.json b/insurance/test_snapshots/test/test_get_total_monthly_premium_zero_policies.1.json index 57bddb1e..56557491 100644 --- a/insurance/test_snapshots/test/test_get_total_monthly_premium_zero_policies.1.json +++ b/insurance/test_snapshots/test/test_get_total_monthly_premium_zero_policies.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,58 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_modify_premium_schedule.1.json b/insurance/test_snapshots/test/test_modify_premium_schedule.1.json index b32306f5..9b5e856f 100644 --- a/insurance/test_snapshots/test/test_modify_premium_schedule.1.json +++ b/insurance/test_snapshots/test/test_modify_premium_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -100,7 +102,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -187,6 +189,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -492,506 +500,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "modify_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 4000 - }, - { - "u64": 2678400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleModified" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "modify_premium_schedule" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_premium_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 4000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_multiple_policies_same_owner.1.json b/insurance/test_snapshots/test/test_multiple_policies_same_owner.1.json index 95355683..749c713f 100644 --- a/insurance/test_snapshots/test/test_multiple_policies_same_owner.1.json +++ b/insurance/test_snapshots/test/test_multiple_policies_same_owner.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -257,7 +261,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 86400, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -336,6 +340,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -421,6 +431,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -506,6 +522,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -911,2299 +933,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Life Policy" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Emergency Policy" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 20 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 0 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_multiple_premium_payments.1.json b/insurance/test_snapshots/test/test_multiple_premium_payments.1.json index b20ea484..e9aefe2e 100644 --- a/insurance/test_snapshots/test/test_multiple_premium_payments.1.json +++ b/insurance/test_snapshots/test/test_multiple_premium_payments.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -89,7 +91,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 5000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -168,6 +170,12 @@ "string": "Life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -375,742 +383,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "LongTerm" - }, - { - "string": "Life" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "LongTerm" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Life" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "LongTerm" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "LongTerm" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "LongTerm" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2597000 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Life" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "LongTerm" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2597000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_pay_premium.1.json b/insurance/test_snapshots/test/test_pay_premium.1.json index 5afdf05b..d1b2508b 100644 --- a/insurance/test_snapshots/test/test_pay_premium.1.json +++ b/insurance/test_snapshots/test/test_pay_premium.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -67,7 +69,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -146,6 +148,12 @@ "string": "Type" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -320,590 +328,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2593000 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2593000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_pay_premium_emits_event.1.json b/insurance/test_snapshots/test/test_pay_premium_emits_event.1.json index 78dbe178..ba0e5ec1 100644 --- a/insurance/test_snapshots/test/test_pay_premium_emits_event.1.json +++ b/insurance/test_snapshots/test/test_pay_premium_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -65,7 +67,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -144,6 +146,12 @@ "string": "Health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,219 +327,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Policy" - }, - { - "string": "Health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -629,27 +424,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_pay_premium_inactive_policy_panics.1.json b/insurance/test_snapshots/test/test_pay_premium_inactive_policy_panics.1.json index 64b3d769..7132ac80 100644 --- a/insurance/test_snapshots/test/test_pay_premium_inactive_policy_panics.1.json +++ b/insurance/test_snapshots/test/test_pay_premium_inactive_policy_panics.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -66,7 +68,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -145,6 +147,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,446 +327,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "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": "pay_premium" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_pay_premium_success.1.json b/insurance/test_snapshots/test/test_pay_premium_success.1.json index d820e98b..3c1e8648 100644 --- a/insurance/test_snapshots/test/test_pay_premium_success.1.json +++ b/insurance/test_snapshots/test/test_pay_premium_success.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -67,7 +69,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 86400, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -146,6 +148,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -320,590 +328,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 86400 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2678400 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_pay_premium_unauthorized.1.json b/insurance/test_snapshots/test/test_pay_premium_unauthorized.1.json index e78b0ad1..66054daa 100644 --- a/insurance/test_snapshots/test/test_pay_premium_unauthorized.1.json +++ b/insurance/test_snapshots/test/test_pay_premium_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -44,7 +46,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -123,6 +125,12 @@ "string": "Type" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,311 +272,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "Type" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "Type" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "error": { - "contract": 5 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "pay_premium" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_pay_premium_unauthorized_panics.1.json b/insurance/test_snapshots/test/test_pay_premium_unauthorized_panics.1.json index e986cc48..26652114 100644 --- a/insurance/test_snapshots/test/test_pay_premium_unauthorized_panics.1.json +++ b/insurance/test_snapshots/test/test_pay_premium_unauthorized_panics.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -44,7 +46,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -123,6 +125,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,311 +272,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Test Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Test Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "error": { - "contract": 5 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 5 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "pay_premium" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_time_drift_next_payment_date_uses_actual_payment_time.1.json b/insurance/test_snapshots/test/test_time_drift_next_payment_date_uses_actual_payment_time.1.json index 4c13bfc2..b970b2ea 100644 --- a/insurance/test_snapshots/test/test_time_drift_next_payment_date_uses_actual_payment_time.1.json +++ b/insurance/test_snapshots/test/test_time_drift_next_payment_date_uses_actual_payment_time.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 200000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 609800, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "property" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,522 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Property Plan" - }, - { - "string": "property" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 200000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "property" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Property Plan" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "property" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Property Plan" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 3201800 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_time_drift_no_double_execution_after_schedule_advances.1.json b/insurance/test_snapshots/test/test_time_drift_no_double_execution_after_schedule_advances.1.json index 35a4da0c..e353de8d 100644 --- a/insurance/test_snapshots/test/test_time_drift_no_double_execution_after_schedule_advances.1.json +++ b/insurance/test_snapshots/test/test_time_drift_no_double_execution_after_schedule_advances.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 6000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "auto" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,441 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Auto Cover" - }, - { - "string": "auto" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "auto" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Auto Cover" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json b/insurance/test_snapshots/test/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json index 563fd3c2..815b6323 100644 --- a/insurance/test_snapshots/test/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json +++ b/insurance/test_snapshots/test/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 75000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 5000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,522 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Plan" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 75000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2597000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test/test_time_drift_premium_schedule_not_executed_before_next_due.1.json b/insurance/test_snapshots/test/test_time_drift_premium_schedule_not_executed_before_next_due.1.json index 5950ff74..b928da51 100644 --- a/insurance/test_snapshots/test/test_time_drift_premium_schedule_not_executed_before_next_due.1.json +++ b/insurance/test_snapshots/test/test_time_drift_premium_schedule_not_executed_before_next_due.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 100000 } - } + }, + "void" ] } }, @@ -72,7 +74,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 4999, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -159,6 +161,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -431,329 +439,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Life Cover" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Cover" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_create_policy_emits_event_exists.1.json b/insurance/test_snapshots/test_events/test_create_policy_emits_event_exists.1.json index 72c659c7..fa8d1c26 100644 --- a/insurance/test_snapshots/test_events/test_create_policy_emits_event_exists.1.json +++ b/insurance/test_snapshots/test_events/test_create_policy_emits_event_exists.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -43,7 +45,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -122,6 +124,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,54 +272,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -413,36 +373,14 @@ }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } + }, + "void" ] } } } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_get_active_policies_empty.1.json b/insurance/test_snapshots/test_events/test_get_active_policies_empty.1.json index 52de3e79..56557491 100644 --- a/insurance/test_snapshots/test_events/test_get_active_policies_empty.1.json +++ b/insurance/test_snapshots/test_events/test_get_active_policies_empty.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,90 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_get_active_policies_excludes_inactive.1.json b/insurance/test_snapshots/test_events/test_get_active_policies_excludes_inactive.1.json index 867aa8c3..7ca408cb 100644 --- a/insurance/test_snapshots/test_events/test_get_active_policies_excludes_inactive.1.json +++ b/insurance/test_snapshots/test_events/test_get_active_policies_excludes_inactive.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -144,7 +148,8 @@ "hi": 0, "lo": 40000 } - } + }, + "void" ] } }, @@ -177,7 +182,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -256,6 +261,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -341,6 +352,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -426,6 +443,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -511,6 +534,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -784,1186 +813,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 2 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "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_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_get_active_policies_multi_owner_isolation.1.json b/insurance/test_snapshots/test_events/test_get_active_policies_multi_owner_isolation.1.json index 6198a00f..993249a4 100644 --- a/insurance/test_snapshots/test_events/test_get_active_policies_multi_owner_isolation.1.json +++ b/insurance/test_snapshots/test_events/test_get_active_policies_multi_owner_isolation.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -144,7 +148,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -181,7 +186,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -218,7 +224,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -255,7 +262,8 @@ "hi": 0, "lo": 40000 } - } + }, + "void" ] } }, @@ -292,7 +300,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -303,7 +312,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -382,6 +391,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -467,6 +482,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -552,6 +573,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -637,6 +664,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -722,6 +755,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -807,6 +846,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -892,6 +937,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -977,6 +1028,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -1360,1771 +1417,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 4 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 5 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 6 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 6 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 6 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 7 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 7 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 7 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 250 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 8 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 8 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 8 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 20 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_get_active_policies_single_page.1.json b/insurance/test_snapshots/test_events/test_get_active_policies_single_page.1.json index d94677b1..8ff10890 100644 --- a/insurance/test_snapshots/test_events/test_get_active_policies_single_page.1.json +++ b/insurance/test_snapshots/test_events/test_get_active_policies_single_page.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -144,7 +148,8 @@ "hi": 0, "lo": 40000 } - } + }, + "void" ] } }, @@ -181,7 +186,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -192,7 +198,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -271,6 +277,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -356,6 +368,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -441,6 +459,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -526,6 +550,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -611,6 +641,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -884,1391 +920,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 250 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "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_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_get_all_policies_for_owner_includes_inactive.1.json b/insurance/test_snapshots/test_events/test_get_all_policies_for_owner_includes_inactive.1.json index e6331976..46067053 100644 --- a/insurance/test_snapshots/test_events/test_get_all_policies_for_owner_includes_inactive.1.json +++ b/insurance/test_snapshots/test_events/test_get_all_policies_for_owner_includes_inactive.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -144,7 +148,8 @@ "hi": 0, "lo": 40000 } - } + }, + "void" ] } }, @@ -223,7 +228,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -302,6 +307,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -387,6 +398,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -472,6 +489,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -557,6 +580,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -896,1401 +925,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 3 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_all_policies_for_owner" - } - ], - "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_all_policies_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_create_policy.1.json b/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_create_policy.1.json index 63bbe397..a73e3084 100644 --- a/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_create_policy.1.json +++ b/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_create_policy.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -44,7 +46,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 100, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -123,6 +125,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -264,186 +272,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_deactivate_policy.1.json b/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_deactivate_policy.1.json index 9bae42c5..353fb066 100644 --- a/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_deactivate_policy.1.json +++ b/insurance/test_snapshots/test_events/test_instance_ttl_extended_on_deactivate_policy.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 25000 } - } + }, + "void" ] } }, @@ -66,7 +68,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 510000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -145,6 +147,12 @@ "string": "dental" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,321 +327,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Dental" - }, - { - "string": "dental" - }, - { - "i128": { - "hi": 0, - "lo": 75 - } - }, - { - "i128": { - "hi": 0, - "lo": 25000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 25000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "dental" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Dental" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Dental" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 510000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_instance_ttl_refreshed_on_pay_premium.1.json b/insurance/test_snapshots/test_events/test_instance_ttl_refreshed_on_pay_premium.1.json index b94935a0..38f9c556 100644 --- a/insurance/test_snapshots/test_events/test_instance_ttl_refreshed_on_pay_premium.1.json +++ b/insurance/test_snapshots/test_events/test_instance_ttl_refreshed_on_pay_premium.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 100000 } - } + }, + "void" ] } }, @@ -66,7 +68,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 500000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -145,6 +147,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,338 +327,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Life Insurance" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 3092000 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 500000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_limit_clamped_to_max.1.json b/insurance/test_snapshots/test_events/test_limit_clamped_to_max.1.json index e6f74734..92a84f29 100644 --- a/insurance/test_snapshots/test_events/test_limit_clamped_to_max.1.json +++ b/insurance/test_snapshots/test_events/test_limit_clamped_to_max.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -144,7 +148,8 @@ "hi": 0, "lo": 40000 } - } + }, + "void" ] } }, @@ -181,7 +186,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -218,7 +224,8 @@ "hi": 0, "lo": 60000 } - } + }, + "void" ] } }, @@ -255,7 +262,8 @@ "hi": 0, "lo": 70000 } - } + }, + "void" ] } }, @@ -292,7 +300,8 @@ "hi": 0, "lo": 80000 } - } + }, + "void" ] } }, @@ -329,7 +338,8 @@ "hi": 0, "lo": 90000 } - } + }, + "void" ] } }, @@ -366,7 +376,8 @@ "hi": 0, "lo": 100000 } - } + }, + "void" ] } }, @@ -403,7 +414,8 @@ "hi": 0, "lo": 110000 } - } + }, + "void" ] } }, @@ -440,7 +452,8 @@ "hi": 0, "lo": 120000 } - } + }, + "void" ] } }, @@ -477,7 +490,8 @@ "hi": 0, "lo": 130000 } - } + }, + "void" ] } }, @@ -514,7 +528,8 @@ "hi": 0, "lo": 140000 } - } + }, + "void" ] } }, @@ -551,7 +566,8 @@ "hi": 0, "lo": 150000 } - } + }, + "void" ] } }, @@ -588,7 +604,8 @@ "hi": 0, "lo": 160000 } - } + }, + "void" ] } }, @@ -625,7 +642,8 @@ "hi": 0, "lo": 170000 } - } + }, + "void" ] } }, @@ -662,7 +680,8 @@ "hi": 0, "lo": 180000 } - } + }, + "void" ] } }, @@ -699,7 +718,8 @@ "hi": 0, "lo": 190000 } - } + }, + "void" ] } }, @@ -736,7 +756,8 @@ "hi": 0, "lo": 200000 } - } + }, + "void" ] } }, @@ -773,7 +794,8 @@ "hi": 0, "lo": 210000 } - } + }, + "void" ] } }, @@ -810,7 +832,8 @@ "hi": 0, "lo": 220000 } - } + }, + "void" ] } }, @@ -847,7 +870,8 @@ "hi": 0, "lo": 230000 } - } + }, + "void" ] } }, @@ -884,7 +908,8 @@ "hi": 0, "lo": 240000 } - } + }, + "void" ] } }, @@ -921,7 +946,8 @@ "hi": 0, "lo": 250000 } - } + }, + "void" ] } }, @@ -958,7 +984,8 @@ "hi": 0, "lo": 260000 } - } + }, + "void" ] } }, @@ -995,7 +1022,8 @@ "hi": 0, "lo": 270000 } - } + }, + "void" ] } }, @@ -1032,7 +1060,8 @@ "hi": 0, "lo": 280000 } - } + }, + "void" ] } }, @@ -1069,7 +1098,8 @@ "hi": 0, "lo": 290000 } - } + }, + "void" ] } }, @@ -1106,7 +1136,8 @@ "hi": 0, "lo": 300000 } - } + }, + "void" ] } }, @@ -1143,7 +1174,8 @@ "hi": 0, "lo": 310000 } - } + }, + "void" ] } }, @@ -1180,7 +1212,8 @@ "hi": 0, "lo": 320000 } - } + }, + "void" ] } }, @@ -1217,7 +1250,8 @@ "hi": 0, "lo": 330000 } - } + }, + "void" ] } }, @@ -1254,7 +1288,8 @@ "hi": 0, "lo": 340000 } - } + }, + "void" ] } }, @@ -1291,7 +1326,8 @@ "hi": 0, "lo": 350000 } - } + }, + "void" ] } }, @@ -1328,7 +1364,8 @@ "hi": 0, "lo": 360000 } - } + }, + "void" ] } }, @@ -1365,7 +1402,8 @@ "hi": 0, "lo": 370000 } - } + }, + "void" ] } }, @@ -1402,7 +1440,8 @@ "hi": 0, "lo": 380000 } - } + }, + "void" ] } }, @@ -1439,7 +1478,8 @@ "hi": 0, "lo": 390000 } - } + }, + "void" ] } }, @@ -1476,7 +1516,8 @@ "hi": 0, "lo": 400000 } - } + }, + "void" ] } }, @@ -1513,7 +1554,8 @@ "hi": 0, "lo": 410000 } - } + }, + "void" ] } }, @@ -1550,7 +1592,8 @@ "hi": 0, "lo": 420000 } - } + }, + "void" ] } }, @@ -1587,7 +1630,8 @@ "hi": 0, "lo": 430000 } - } + }, + "void" ] } }, @@ -1624,7 +1668,8 @@ "hi": 0, "lo": 440000 } - } + }, + "void" ] } }, @@ -1661,7 +1706,8 @@ "hi": 0, "lo": 450000 } - } + }, + "void" ] } }, @@ -1698,7 +1744,8 @@ "hi": 0, "lo": 460000 } - } + }, + "void" ] } }, @@ -1735,7 +1782,8 @@ "hi": 0, "lo": 470000 } - } + }, + "void" ] } }, @@ -1772,7 +1820,8 @@ "hi": 0, "lo": 480000 } - } + }, + "void" ] } }, @@ -1809,7 +1858,8 @@ "hi": 0, "lo": 490000 } - } + }, + "void" ] } }, @@ -1846,7 +1896,8 @@ "hi": 0, "lo": 500000 } - } + }, + "void" ] } }, @@ -1883,7 +1934,8 @@ "hi": 0, "lo": 510000 } - } + }, + "void" ] } }, @@ -1920,7 +1972,8 @@ "hi": 0, "lo": 520000 } - } + }, + "void" ] } }, @@ -1957,7 +2010,8 @@ "hi": 0, "lo": 530000 } - } + }, + "void" ] } }, @@ -1994,7 +2048,8 @@ "hi": 0, "lo": 540000 } - } + }, + "void" ] } }, @@ -2031,7 +2086,8 @@ "hi": 0, "lo": 550000 } - } + }, + "void" ] } }, @@ -2042,7 +2098,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -2121,6 +2177,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2206,6 +2268,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2291,6 +2359,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2376,6 +2450,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2461,6 +2541,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2546,6 +2632,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2631,6 +2723,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2716,6 +2814,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2801,6 +2905,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2886,6 +2996,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -2971,6 +3087,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3056,6 +3178,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3141,6 +3269,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3226,6 +3360,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3311,6 +3451,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3396,6 +3542,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3481,6 +3633,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3566,6 +3724,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3651,6 +3815,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3736,6 +3906,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3821,6 +3997,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3906,6 +4088,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -3991,6 +4179,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4076,6 +4270,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4161,6 +4361,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4246,6 +4452,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4331,6 +4543,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4416,6 +4634,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4501,6 +4725,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4588,7 +4818,13 @@ }, { "key": { - "symbol": "id" + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" }, "val": { "u32": 30 @@ -4671,6 +4907,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4756,6 +4998,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4841,6 +5089,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -4926,6 +5180,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5011,6 +5271,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5096,6 +5362,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5181,6 +5453,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5266,6 +5544,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5351,6 +5635,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5436,6 +5726,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5521,6 +5817,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5606,6 +5908,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5691,6 +5999,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5776,6 +6090,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5861,6 +6181,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -5946,6 +6272,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6031,6 +6363,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6116,6 +6454,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6201,6 +6545,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6286,6 +6636,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6371,6 +6727,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6456,6 +6818,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6541,6 +6909,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6626,6 +7000,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -6711,6 +7091,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -8634,13991 +9020,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 40000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 4 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 250 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 5 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 60000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 60000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 6 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 6 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 350 - } - }, - { - "i128": { - "hi": 0, - "lo": 70000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 70000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 350 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 7 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 7 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 400 - } - }, - { - "i128": { - "hi": 0, - "lo": 80000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 80000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 400 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 8 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 8 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 450 - } - }, - { - "i128": { - "hi": 0, - "lo": 90000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 90000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 450 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 9 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 9 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 10 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 10 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 550 - } - }, - { - "i128": { - "hi": 0, - "lo": 110000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 110000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 550 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 11 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 11 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 600 - } - }, - { - "i128": { - "hi": 0, - "lo": 120000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 120000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 600 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 12 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 12 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 650 - } - }, - { - "i128": { - "hi": 0, - "lo": 130000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 130000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 650 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 13 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 13 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 700 - } - }, - { - "i128": { - "hi": 0, - "lo": 140000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 140000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 700 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 14 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 14 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 750 - } - }, - { - "i128": { - "hi": 0, - "lo": 150000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 750 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 15 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 15 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 800 - } - }, - { - "i128": { - "hi": 0, - "lo": 160000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 160000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 800 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 16 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 16 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 16 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 850 - } - }, - { - "i128": { - "hi": 0, - "lo": 170000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 170000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 850 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 17 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 17 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 17 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 900 - } - }, - { - "i128": { - "hi": 0, - "lo": 180000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 180000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 900 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 18 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 18 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 18 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 950 - } - }, - { - "i128": { - "hi": 0, - "lo": 190000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 190000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 950 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 19 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 19 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 19 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "i128": { - "hi": 0, - "lo": 200000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 20 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 20 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1050 - } - }, - { - "i128": { - "hi": 0, - "lo": 210000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 210000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1050 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 21 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 21 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 21 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1100 - } - }, - { - "i128": { - "hi": 0, - "lo": 220000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 220000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 22 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 22 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 22 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1150 - } - }, - { - "i128": { - "hi": 0, - "lo": 230000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 230000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 23 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 23 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 23 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1200 - } - }, - { - "i128": { - "hi": 0, - "lo": 240000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 240000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 24 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 24 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 24 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1250 - } - }, - { - "i128": { - "hi": 0, - "lo": 250000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 25 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 25 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 25 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1300 - } - }, - { - "i128": { - "hi": 0, - "lo": 260000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 260000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 26 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 26 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 26 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1350 - } - }, - { - "i128": { - "hi": 0, - "lo": 270000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 270000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1350 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 27 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 27 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 27 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1400 - } - }, - { - "i128": { - "hi": 0, - "lo": 280000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 280000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1400 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 28 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 28 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 28 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1450 - } - }, - { - "i128": { - "hi": 0, - "lo": 290000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 290000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1450 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 29 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 29 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 29 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 300000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 30 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 30 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1550 - } - }, - { - "i128": { - "hi": 0, - "lo": 310000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 310000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1550 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 31 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 31 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 31 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1600 - } - }, - { - "i128": { - "hi": 0, - "lo": 320000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 320000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1600 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 32 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 32 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1650 - } - }, - { - "i128": { - "hi": 0, - "lo": 330000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 330000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1650 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 33 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 33 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 33 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1700 - } - }, - { - "i128": { - "hi": 0, - "lo": 340000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 340000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1700 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 34 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 34 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 34 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1750 - } - }, - { - "i128": { - "hi": 0, - "lo": 350000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 350000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1750 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 35 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 35 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1800 - } - }, - { - "i128": { - "hi": 0, - "lo": 360000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 360000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1800 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 36 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 36 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 36 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1850 - } - }, - { - "i128": { - "hi": 0, - "lo": 370000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 370000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1850 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 37 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 37 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 37 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1900 - } - }, - { - "i128": { - "hi": 0, - "lo": 380000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 380000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1900 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 38 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 38 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 38 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 1950 - } - }, - { - "i128": { - "hi": 0, - "lo": 390000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 390000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1950 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 39 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 39 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 39 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - }, - { - "i128": { - "hi": 0, - "lo": 400000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 400000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 40 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 40 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 40 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2050 - } - }, - { - "i128": { - "hi": 0, - "lo": 410000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 410000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2050 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 41 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 41 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 41 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2100 - } - }, - { - "i128": { - "hi": 0, - "lo": 420000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 420000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 42 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 42 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 42 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2150 - } - }, - { - "i128": { - "hi": 0, - "lo": 430000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 430000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 43 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 43 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 43 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2200 - } - }, - { - "i128": { - "hi": 0, - "lo": 440000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 440000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 44 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 44 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 44 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2250 - } - }, - { - "i128": { - "hi": 0, - "lo": 450000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 450000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 45 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 45 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 45 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2300 - } - }, - { - "i128": { - "hi": 0, - "lo": 460000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 460000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 46 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 46 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 46 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2350 - } - }, - { - "i128": { - "hi": 0, - "lo": 470000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 470000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2350 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 47 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 47 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 47 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2400 - } - }, - { - "i128": { - "hi": 0, - "lo": 480000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 480000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 48 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 48 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 48 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2450 - } - }, - { - "i128": { - "hi": 0, - "lo": 490000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 490000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2450 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 49 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 49 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 49 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 50 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2550 - } - }, - { - "i128": { - "hi": 0, - "lo": 510000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 510000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2550 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 51 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 51 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 51 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2600 - } - }, - { - "i128": { - "hi": 0, - "lo": 520000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 520000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2600 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 52 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 52 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 52 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2650 - } - }, - { - "i128": { - "hi": 0, - "lo": 530000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 530000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2650 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 53 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 53 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 53 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2700 - } - }, - { - "i128": { - "hi": 0, - "lo": 540000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 540000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2700 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 54 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 54 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 54 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 2750 - } - }, - { - "i128": { - "hi": 0, - "lo": 550000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 550000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2750 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 55 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 55 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 55 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 9999 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 40000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 5 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 60000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 6 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 70000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 7 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 350 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 80000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 8 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 400 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 90000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 9 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 450 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 10 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 110000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 11 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 550 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 120000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 12 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 600 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 130000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 13 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 650 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 140000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 14 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 700 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 15 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 750 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 160000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 16 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 800 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 170000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 17 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 850 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 180000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 18 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 900 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 190000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 19 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 950 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 210000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 21 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1050 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 220000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 22 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 230000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 23 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 240000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 24 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 25 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 260000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 26 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 270000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 27 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1350 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 280000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 28 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1400 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 290000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 29 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1450 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 310000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 31 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1550 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 320000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1600 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 330000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 33 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1650 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 340000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 34 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1700 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 350000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1750 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 360000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 36 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1800 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 370000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 37 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1850 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 380000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 38 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1900 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 390000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 39 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1950 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 400000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 40 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 410000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 41 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2050 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 420000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 42 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 430000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 43 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 440000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 44 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 450000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 45 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2250 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 460000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 46 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 470000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 47 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2350 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 480000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 48 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 490000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 49 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2450 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2500 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 50 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_limit_zero_uses_default.1.json b/insurance/test_snapshots/test_events/test_limit_zero_uses_default.1.json index 548c8b34..53e9e629 100644 --- a/insurance/test_snapshots/test_events/test_limit_zero_uses_default.1.json +++ b/insurance/test_snapshots/test_events/test_limit_zero_uses_default.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -70,7 +72,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -107,7 +110,8 @@ "hi": 0, "lo": 30000 } - } + }, + "void" ] } }, @@ -118,7 +122,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -197,6 +201,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -282,6 +292,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -367,6 +383,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -574,871 +596,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Policy" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 30000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 3 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 30000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Policy" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_pay_premium_after_deactivate.1.json b/insurance/test_snapshots/test_events/test_pay_premium_after_deactivate.1.json index b0dd43cb..7d2a7ce9 100644 --- a/insurance/test_snapshots/test_events/test_pay_premium_after_deactivate.1.json +++ b/insurance/test_snapshots/test_events/test_pay_premium_after_deactivate.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -68,7 +70,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -147,6 +149,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -321,698 +329,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Plan" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "deactive" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyDeactivated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "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": "pay_premium" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_pay_premium_emits_event.1.json b/insurance/test_snapshots/test_events/test_pay_premium_emits_event.1.json index d4768aea..eca41a7c 100644 --- a/insurance/test_snapshots/test_events/test_pay_premium_emits_event.1.json +++ b/insurance/test_snapshots/test_events/test_pay_premium_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 25000 } - } + }, + "void" ] } }, @@ -65,7 +67,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -144,6 +146,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -319,219 +327,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Emergency Coverage" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 75 - } - }, - { - "i128": { - "hi": 0, - "lo": 25000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 25000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Coverage" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -629,27 +424,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_pay_premium_policy_not_found.1.json b/insurance/test_snapshots/test_events/test_pay_premium_policy_not_found.1.json index 14950723..56557491 100644 --- a/insurance/test_snapshots/test_events/test_pay_premium_policy_not_found.1.json +++ b/insurance/test_snapshots/test_events/test_pay_premium_policy_not_found.1.json @@ -4,10 +4,11 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -71,131 +72,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 999 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "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": "pay_premium" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 999 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_policy_data_persists_across_ledger_advancements.1.json b/insurance/test_snapshots/test_events/test_policy_data_persists_across_ledger_advancements.1.json index 04e0f4e3..3e096917 100644 --- a/insurance/test_snapshots/test_events/test_policy_data_persists_across_ledger_advancements.1.json +++ b/insurance/test_snapshots/test_events/test_policy_data_persists_across_ledger_advancements.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 75000 } - } + }, + "void" ] } }, @@ -92,7 +94,8 @@ "hi": 0, "lo": 20000 } - } + }, + "void" ] } }, @@ -105,7 +108,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1020000, "timestamp": 1020000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -184,6 +187,12 @@ "string": "auto" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -269,6 +278,12 @@ "string": "travel" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -476,770 +491,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Auto Insurance" - }, - { - "string": "auto" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 75000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "auto" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Auto Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Auto Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 3102000 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 510000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Travel Insurance" - }, - { - "string": "travel" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 20000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "travel" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Travel Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1020000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "auto" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Auto Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 3102000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 20000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "travel" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Travel Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 3612000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_policy_lifecycle_emits_all_events.1.json b/insurance/test_snapshots/test_events/test_policy_lifecycle_emits_all_events.1.json index a6ebad9f..de1d8821 100644 --- a/insurance/test_snapshots/test_events/test_policy_lifecycle_emits_all_events.1.json +++ b/insurance/test_snapshots/test_events/test_policy_lifecycle_emits_all_events.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 75000 } - } + }, + "void" ] } }, @@ -87,7 +89,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -166,6 +168,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -374,371 +382,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Complete Lifecycle" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 75000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Complete Lifecycle" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "pay_premium" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "paid" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Complete Lifecycle" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2592000 - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "pay_premium" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -817,29 +460,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "deactivate_policy" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_time_drift_next_payment_date_uses_actual_payment_time.1.json b/insurance/test_snapshots/test_events/test_time_drift_next_payment_date_uses_actual_payment_time.1.json index 4c13bfc2..b970b2ea 100644 --- a/insurance/test_snapshots/test_events/test_time_drift_next_payment_date_uses_actual_payment_time.1.json +++ b/insurance/test_snapshots/test_events/test_time_drift_next_payment_date_uses_actual_payment_time.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 200000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 609800, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "property" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,522 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Property Plan" - }, - { - "string": "property" - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 200000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "property" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Property Plan" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "property" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 300 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Property Plan" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 3201800 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_time_drift_no_double_execution_after_schedule_advances.1.json b/insurance/test_snapshots/test_events/test_time_drift_no_double_execution_after_schedule_advances.1.json index 35a4da0c..e353de8d 100644 --- a/insurance/test_snapshots/test_events/test_time_drift_no_double_execution_after_schedule_advances.1.json +++ b/insurance/test_snapshots/test_events/test_time_drift_no_double_execution_after_schedule_advances.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 6000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "auto" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,441 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Auto Cover" - }, - { - "string": "auto" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "auto" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Auto Cover" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json b/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json index 563fd3c2..815b6323 100644 --- a/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json +++ b/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_executes_at_exact_next_due.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 75000 } - } + }, + "void" ] } }, @@ -73,7 +75,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 5000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -160,6 +162,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -434,522 +442,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Health Plan" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 75000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PremiumPaid" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_policy" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 75000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Plan" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 2597000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_not_executed_before_next_due.1.json b/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_not_executed_before_next_due.1.json index 5950ff74..b928da51 100644 --- a/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_not_executed_before_next_due.1.json +++ b/insurance/test_snapshots/test_events/test_time_drift_premium_schedule_not_executed_before_next_due.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -33,7 +34,8 @@ "hi": 0, "lo": 100000 } - } + }, + "void" ] } }, @@ -72,7 +74,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 4999, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -159,6 +161,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -431,329 +439,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Life Cover" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Cover" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "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_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_premium_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 5000 - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_premium_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_premium_schedules" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/insurance/tests/gas_bench.rs b/insurance/tests/gas_bench.rs index f03ca0f2..358f72d7 100644 --- a/insurance/tests/gas_bench.rs +++ b/insurance/tests/gas_bench.rs @@ -1,5 +1,5 @@ use insurance::{Insurance, InsuranceClient}; -use remitwise_common::CoverageType; + use soroban_sdk::testutils::{Address as AddressTrait, EnvTestConfig, Ledger, LedgerInfo}; use soroban_sdk::{Address, Env, String}; @@ -19,7 +19,7 @@ fn bench_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 100_000, }); - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -28,7 +28,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -40,14 +40,21 @@ where #[test] fn bench_get_total_monthly_premium_worst_case() { let env = bench_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner =
::generate(&env); let name = String::from_str(&env, "BenchPolicy"); - let coverage_type = CoverageType::Health; + for _ in 0..100 { - client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + client.create_policy( + &owner, + &name, + &String::from_str(&env, "health"), + &100i128, + &10_000i128, + &None, + ); } let expected_total = 100i128 * 100i128; diff --git a/insurance/tests/stress_tests.rs b/insurance/tests/stress_tests.rs index 0063a6ad..67f5e8f0 100644 --- a/insurance/tests/stress_tests.rs +++ b/insurance/tests/stress_tests.rs @@ -42,7 +42,7 @@ fn stress_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 700_000, }); - env.budget().reset_unlimited(); + env.cost_estimate().budget().reset_unlimited(); env } @@ -50,7 +50,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -68,7 +68,7 @@ where #[test] fn stress_200_policies_single_user() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -76,7 +76,7 @@ fn stress_200_policies_single_user() { let coverage_type = String::from_str(&env, "health"); for _ in 0..200 { - client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); } // Verify aggregate monthly premium @@ -106,11 +106,18 @@ fn stress_200_policies_single_user() { cursor = page.next_cursor; } - assert_eq!(collected, 200, "Pagination must return all 200 active policies"); + assert_eq!( + collected, 200, + "Pagination must return all 200 active policies" + ); // get_active_policies sets next_cursor = last_returned_id; when a page is exactly // full the caller receives a non-zero cursor that produces a trailing empty page, // so the round-trip count is pages = ceil(200/50) + 1 trailing = 5. - assert!(pages >= 4 && pages <= 5, "Expected 4-5 pages for 200 policies at limit 50, got {}", pages); + assert!( + (4..=5).contains(&pages), + "Expected 4-5 pages for 200 policies at limit 50, got {}", + pages + ); } /// Create 200 policies and verify instance TTL remains valid after the instance @@ -118,7 +125,7 @@ fn stress_200_policies_single_user() { #[test] fn stress_instance_ttl_valid_after_200_policies() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -126,7 +133,7 @@ fn stress_instance_ttl_valid_after_200_policies() { let coverage_type = String::from_str(&env, "life"); for _ in 0..200 { - client.create_policy(&owner, &name, &coverage_type, &50i128, &5_000i128); + client.create_policy(&owner, &name, &coverage_type, &50i128, &5_000i128, &None); } let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); @@ -146,7 +153,7 @@ fn stress_instance_ttl_valid_after_200_policies() { #[test] fn stress_policies_across_10_users() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); const N_USERS: usize = 10; @@ -165,6 +172,7 @@ fn stress_policies_across_10_users() { &coverage_type, &PREMIUM_PER_POLICY, &50_000i128, + &None, ); } } @@ -209,7 +217,7 @@ fn stress_policies_across_10_users() { #[test] fn stress_ttl_re_bumped_after_ledger_advancement() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -218,7 +226,7 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { // Phase 1: 50 creates for _ in 0..50 { - client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); } let ttl_batch1 = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); @@ -249,7 +257,7 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { ); // Phase 3: create_policy fires extend_ttl → re-bumped - client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); let ttl_rebumped = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); assert!( @@ -263,7 +271,7 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { #[test] fn stress_ttl_re_bumped_by_pay_premium_after_ledger_advancement() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -273,6 +281,7 @@ fn stress_ttl_re_bumped_by_pay_premium_after_ledger_advancement() { &String::from_str(&env, "health"), &200i128, &20_000i128, + &None, ); // Advance ledger so TTL drops below threshold @@ -308,7 +317,7 @@ fn stress_ttl_re_bumped_by_pay_premium_after_ledger_advancement() { #[test] fn stress_batch_pay_premiums_at_max_batch_size() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -318,7 +327,7 @@ fn stress_batch_pay_premiums_at_max_batch_size() { let mut policy_ids = std::vec![]; for _ in 0..BATCH_SIZE { - let id = client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + let id = client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); policy_ids.push(id); } @@ -360,7 +369,7 @@ fn stress_batch_pay_premiums_at_max_batch_size() { #[test] fn stress_deactivate_half_of_200_policies() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -368,7 +377,7 @@ fn stress_deactivate_half_of_200_policies() { let coverage_type = String::from_str(&env, "life"); for _ in 0..200 { - client.create_policy(&owner, &name, &coverage_type, &80i128, &8_000i128); + client.create_policy(&owner, &name, &coverage_type, &80i128, &8_000i128, &None); } // Deactivate even-numbered policies (IDs 2, 4, 6, …, 200) @@ -410,7 +419,7 @@ fn stress_deactivate_half_of_200_policies() { #[test] fn bench_get_active_policies_first_page_of_200() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -418,7 +427,7 @@ fn bench_get_active_policies_first_page_of_200() { let coverage_type = String::from_str(&env, "health"); for _ in 0..200 { - client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); } let (cpu, mem, page) = measure(&env, || client.get_active_policies(&owner, &0u32, &50u32)); @@ -434,7 +443,7 @@ fn bench_get_active_policies_first_page_of_200() { #[test] fn bench_get_total_monthly_premium_200_policies() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -442,7 +451,7 @@ fn bench_get_total_monthly_premium_200_policies() { let coverage_type = String::from_str(&env, "health"); for _ in 0..200 { - client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); } let expected = 200i128 * 100; @@ -459,7 +468,7 @@ fn bench_get_total_monthly_premium_200_policies() { #[test] fn bench_batch_pay_premiums_50_policies() { let env = stress_env(); - let contract_id = env.register_contract(None, Insurance); + let contract_id = env.register(Insurance, ()); let client = InsuranceClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -468,7 +477,7 @@ fn bench_batch_pay_premiums_50_policies() { let mut policy_ids = std::vec![]; for _ in 0..50 { - let id = client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128); + let id = client.create_policy(&owner, &name, &coverage_type, &100i128, &10_000i128, &None); policy_ids.push(id); } diff --git a/integration_tests/Cargo.toml b/integration_tests/Cargo.toml index c4e8d259..47d20e92 100644 --- a/integration_tests/Cargo.toml +++ b/integration_tests/Cargo.toml @@ -5,7 +5,14 @@ edition = "2021" publish = false [dependencies] -soroban-sdk = "21.0.0" +soroban-sdk = "22.0.1" +remittance_split = { path = "../remittance_split" } +savings_goals = { path = "../savings_goals" } +bill_payments = { path = "../bill_payments" } +insurance = { path = "../insurance" } +orchestrator = { path = "../orchestrator" } +data_migration = { path = "../data_migration" } +remitwise-common = { path = "../remitwise-common" } [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } diff --git a/integration_tests/INTEGRATION_TESTING.md b/integration_tests/INTEGRATION_TESTING.md index 3cda9137..cd792f8e 100644 --- a/integration_tests/INTEGRATION_TESTING.md +++ b/integration_tests/INTEGRATION_TESTING.md @@ -21,19 +21,19 @@ All contracts are deployed in the test environment: ```rust // Deploy remittance_split -let remittance_contract_id = env.register_contract(None, RemittanceSplit); +let remittance_contract_id = env.register(RemittanceSplit, ()); let remittance_client = RemittanceSplitClient::new(&env, &remittance_contract_id); // Deploy savings_goals -let savings_contract_id = env.register_contract(None, SavingsGoals); +let savings_contract_id = env.register(SavingsGoals, ()); let savings_client = SavingsGoalsClient::new(&env, &savings_contract_id); // Deploy bill_payments -let bills_contract_id = env.register_contract(None, BillPayments); +let bills_contract_id = env.register(BillPayments, ()); let bills_client = BillPaymentsClient::new(&env, &bills_contract_id); // Deploy insurance -let insurance_contract_id = env.register_contract(None, Insurance); +let insurance_contract_id = env.register(Insurance, ()); let insurance_client = InsuranceClient::new(&env, &insurance_contract_id); ``` diff --git a/integration_tests/test_snapshots/test_multi_contract_user_flow.1.json b/integration_tests/test_snapshots/test_multi_contract_user_flow.1.json index 66cc4a1b..c0cc3018 100644 --- a/integration_tests/test_snapshots/test_multi_contract_user_flow.1.json +++ b/integration_tests/test_snapshots/test_multi_contract_user_flow.1.json @@ -4,6 +4,10 @@ "nonce": 0 }, "auth": [ + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", @@ -82,25 +86,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" }, { - "string": "Electricity Bill" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 2592000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 500 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 2592000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 30 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Electricity Bill" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": true + } + } + ] } ] } @@ -138,7 +182,8 @@ "hi": 0, "lo": 50000 } - } + }, + "void" ] } }, @@ -149,7 +194,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -549,6 +594,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" } }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "target_amount" @@ -689,6 +742,12 @@ "u64": 2592000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -748,6 +807,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -863,6 +930,12 @@ "string": "health" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -972,190 +1045,62 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "u64": 0 - }, - { - "u32": 40 - }, - { - "u32": 30 - }, - { - "u32": 20 - }, - { - "u32": 10 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000003" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Education Fund" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 31536000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", "type_": "contract", "body": { "v0": { "topics": [ { - "symbol": "created" + "symbol": "calc" } ], "data": { "map": [ { "key": { - "symbol": "goal_id" + "symbol": "bills_amount" }, "val": { - "u32": 1 + "i128": { + "hi": 0, + "lo": 2000 + } } }, { "key": { - "symbol": "name" + "symbol": "insurance_amount" }, "val": { - "string": "Education Fund" + "i128": { + "hi": 0, + "lo": 1000 + } } }, { "key": { - "symbol": "target_amount" + "symbol": "savings_amount" }, "val": { "i128": { "hi": 0, - "lo": 10000 + "lo": 3000 } } }, { "key": { - "symbol": "target_date" + "symbol": "spending_amount" }, "val": { - "u64": 31536000 + "i128": { + "hi": 0, + "lo": 4000 + } } }, { @@ -1165,6 +1110,17 @@ "val": { "u64": 0 } + }, + { + "key": { + "symbol": "total_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 10000 + } + } } ] } @@ -1176,544 +1132,27 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", "type_": "contract", "body": { "v0": { "topics": [ { - "symbol": "savings" + "symbol": "split" }, { "vec": [ { - "symbol": "GoalCreated" + "symbol": "Calculated" } ] } ], "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", - "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": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "create_bill" + "i128": { + "hi": 0, + "lo": 10000 } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Electricity Bill" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 2592000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Health Insurance" - }, - { - "string": "health" - }, - { - "i128": { - "hi": 0, - "lo": 200 - } - }, - { - "i128": { - "hi": 0, - "lo": 50000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "calc" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bills_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "insurance_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "savings_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "spending_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 4000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Calculated" - } - ] - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 4000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] } } } diff --git a/integration_tests/test_snapshots/test_multiple_entities_creation.1.json b/integration_tests/test_snapshots/test_multiple_entities_creation.1.json index eaa33018..9eb4e859 100644 --- a/integration_tests/test_snapshots/test_multiple_entities_creation.1.json +++ b/integration_tests/test_snapshots/test_multiple_entities_creation.1.json @@ -4,6 +4,9 @@ "nonce": 0 }, "auth": [ + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", @@ -79,25 +82,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" }, { - "string": "Rent" - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "u64": 2592000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1500 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 2592000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 30 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Rent" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": true + } + } + ] } ] } @@ -119,25 +162,65 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" }, { - "string": "Internet" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "u64": 1296000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100 + } + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "string": "XLM" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": 1296000 + } + }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, + { + "key": { + "symbol": "frequency_days" + }, + "val": { + "u32": 30 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Internet" + } + }, + { + "key": { + "symbol": "recurring" + }, + "val": { + "bool": true + } + } + ] } ] } @@ -175,7 +258,8 @@ "hi": 0, "lo": 100000 } - } + }, + "void" ] } }, @@ -212,7 +296,8 @@ "hi": 0, "lo": 10000 } - } + }, + "void" ] } }, @@ -222,7 +307,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -507,6 +592,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" } }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "target_amount" @@ -584,6 +677,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" } }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "target_amount" @@ -727,6 +828,12 @@ "u64": 2592000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -786,6 +893,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -831,6 +946,12 @@ "u64": 1296000 } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "frequency_days" @@ -890,6 +1011,14 @@ "symbol": "schedule_id" }, "val": "void" + }, + { + "key": { + "symbol": "tags" + }, + "val": { + "vec": [] + } } ] } @@ -1005,6 +1134,12 @@ "string": "life" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -1090,6 +1225,12 @@ "string": "emergency" } }, + { + "key": { + "symbol": "external_ref" + }, + "val": "void" + }, { "key": { "symbol": "id" @@ -1202,49 +1343,7 @@ { "event": { "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Emergency Fund" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 15552000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", "type_": "contract", "body": { "v0": { @@ -1257,37 +1356,48 @@ "map": [ { "key": { - "symbol": "goal_id" + "symbol": "coverage_amount" }, "val": { - "u32": 1 + "i128": { + "hi": 0, + "lo": 10000 + } } }, { "key": { - "symbol": "name" + "symbol": "coverage_type" }, "val": { - "string": "Emergency Fund" + "string": "emergency" } }, { "key": { - "symbol": "target_amount" + "symbol": "monthly_premium" }, "val": { "i128": { "hi": 0, - "lo": 5000 + "lo": 50 } } }, { "key": { - "symbol": "target_date" + "symbol": "name" + }, + "val": { + "string": "Emergency Coverage" + } + }, + { + "key": { + "symbol": "policy_id" }, "val": { - "u64": 15552000 + "u32": 2 } }, { @@ -1308,18 +1418,18 @@ { "event": { "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", "type_": "contract", "body": { "v0": { "topics": [ { - "symbol": "savings" + "symbol": "insure" }, { "vec": [ { - "symbol": "GoalCreated" + "symbol": "PolicyCreated" } ] } @@ -1327,801 +1437,18 @@ "data": { "vec": [ { - "u32": 1 + "u32": 2 }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "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": "0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Vacation" }, - { - "i128": { - "hi": 0, - "lo": 2000 - } - }, - { - "u64": 7776000 - } + "void" ] } } } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Vacation" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 7776000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "GoalCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "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": "0000000000000000000000000000000000000000000000000000000000000003" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Rent" - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "u64": 2592000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "u64": 2592000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000003" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Internet" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "u64": 1296000 - }, - { - "bool": true - }, - { - "u32": 30 - }, - { - "string": "XLM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "Remitwise" - }, - { - "u32": 1 - }, - { - "u32": 1 - }, - { - "symbol": "created" - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "i128": { - "hi": 0, - "lo": 100 - } - }, - { - "u64": 1296000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000003", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_bill" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Life Insurance" - }, - { - "string": "life" - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "life" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Life Insurance" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "string": "Emergency Coverage" - }, - { - "string": "emergency" - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "created" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "emergency" - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency Coverage" - } - }, - { - "key": { - "symbol": "policy_id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "insure" - }, - { - "vec": [ - { - "symbol": "PolicyCreated" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 2 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_policy" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/integration_tests/test_snapshots/test_split_with_rounding.1.json b/integration_tests/test_snapshots/test_split_with_rounding.1.json index 33d6a41d..1e344ef8 100644 --- a/integration_tests/test_snapshots/test_split_with_rounding.1.json +++ b/integration_tests/test_snapshots/test_split_with_rounding.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", @@ -41,7 +42,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -288,130 +289,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - }, - { - "u64": 0 - }, - { - "u32": 33 - }, - { - "u32": 33 - }, - { - "u32": 17 - }, - { - "u32": 17 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -525,54 +402,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 330 - } - }, - { - "i128": { - "hi": 0, - "lo": 330 - } - }, - { - "i128": { - "hi": 0, - "lo": 170 - } - }, - { - "i128": { - "hi": 0, - "lo": 170 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/integration_tests/tests/multi_contract_integration.rs b/integration_tests/tests/multi_contract_integration.rs index 8606fafd..c5f4045b 100644 --- a/integration_tests/tests/multi_contract_integration.rs +++ b/integration_tests/tests/multi_contract_integration.rs @@ -4,126 +4,12 @@ use soroban_sdk::{testutils::Address as _, Address, Env, String as SorobanString // Import all contract types and clients use bill_payments::{BillPayments, BillPaymentsClient}; +use data_migration::{ExportSnapshot as MigrationSnapshot, RemittanceSplitExport, SnapshotPayload}; use insurance::{Insurance, InsuranceClient}; +use orchestrator::Orchestrator; use remittance_split::{RemittanceSplit, RemittanceSplitClient}; +use remitwise_common::CreateBillConfig; use savings_goals::{SavingsGoalContract, SavingsGoalContractClient}; -use orchestrator::{Orchestrator, OrchestratorClient, OrchestratorError}; - -// ============================================================================ -// Mock Contracts for Orchestrator Integration Tests -// ============================================================================ - -use soroban_sdk::{contract, contractimpl, Vec as SorobanVec}; - -/// Mock Family Wallet — approves any amount <= 100_000 -#[contract] -pub struct MockFamilyWallet; - -#[contractimpl] -impl MockFamilyWallet { - pub fn check_spending_limit(_env: Env, _caller: Address, amount: i128) -> bool { - amount <= 100_000 - } -} - -/// Mock Remittance Split — returns [40%, 30%, 20%, 10%] split -#[contract] -pub struct MockRemittanceSplit; - -#[contractimpl] -impl MockRemittanceSplit { - pub fn calculate_split(env: Env, total_amount: i128) -> SorobanVec { - let spending = (total_amount * 40) / 100; - let savings = (total_amount * 30) / 100; - let bills = (total_amount * 20) / 100; - let insurance = total_amount - spending - savings - bills; // remainder - SorobanVec::from_array(&env, [spending, savings, bills, insurance]) - } -} - -/// Mock Savings Goals — panics on goal_id 999 (not found) or 998 (completed) -#[contract] -pub struct MockSavingsGoals; - -#[contractimpl] -impl MockSavingsGoals { - pub fn add_to_goal(_env: Env, _caller: Address, goal_id: u32, amount: i128) -> i128 { - if goal_id == 999 { panic!("Goal not found"); } - if goal_id == 998 { panic!("Goal already completed"); } - amount - } -} - -/// Mock Bill Payments — panics on bill_id 999 (not found) or 998 (already paid) -#[contract] -pub struct MockBillPayments; - -#[contractimpl] -impl MockBillPayments { - pub fn pay_bill(_env: Env, _caller: Address, bill_id: u32) { - if bill_id == 999 { panic!("Bill not found"); } - if bill_id == 998 { panic!("Bill already paid"); } - } -} - -/// Mock Insurance — panics on policy_id 999 (not found); returns false for 998 (inactive) -#[contract] -pub struct MockInsurance; - -#[contractimpl] -impl MockInsurance { - pub fn pay_premium(_env: Env, _caller: Address, policy_id: u32) -> bool { - if policy_id == 999 { panic!("Policy not found"); } - policy_id != 998 - } -} - -// ============================================================================ -// Helpers -// ============================================================================ - -/// Deploy all real contracts plus the orchestrator and mock dependency contracts. -/// Returns a tuple of all contract addresses and the test user. -fn setup_full_env() -> ( - Env, - Address, // remittance_split - Address, // savings - Address, // bills - Address, // insurance - Address, // orchestrator - Address, // mock_family_wallet - Address, // mock_remittance_split - Address, // user -) { - let env = Env::default(); - env.mock_all_auths(); - - let remittance_id = env.register_contract(None, RemittanceSplit); - let savings_id = env.register_contract(None, SavingsGoalContract); - let bills_id = env.register_contract(None, BillPayments); - let insurance_id = env.register_contract(None, Insurance); - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - - let user = Address::generate(&env); - - ( - env, - remittance_id, - savings_id, - bills_id, - insurance_id, - orchestrator_id, - mock_family_wallet_id, - mock_split_id, - user, - ) -} - -// ============================================================================ -// Existing Integration Tests (preserved) -// ============================================================================ /// Integration test that simulates a complete user flow: /// 1. Deploy all contracts (remittance_split, savings_goals, bill_payments, insurance) @@ -132,68 +18,118 @@ fn setup_full_env() -> ( /// 4. Calculate split and verify amounts align with expectations #[test] fn test_multi_contract_user_flow() { + // Setup test environment let env = Env::default(); env.mock_all_auths(); + // Generate test user address let user = Address::generate(&env); - let remittance_contract_id = env.register_contract(None, RemittanceSplit); + // Deploy all contracts + let remittance_contract_id = env.register(RemittanceSplit, ()); let remittance_client = RemittanceSplitClient::new(&env, &remittance_contract_id); - let savings_contract_id = env.register_contract(None, SavingsGoalContract); + let savings_contract_id = env.register(SavingsGoalContract, ()); let savings_client = SavingsGoalContractClient::new(&env, &savings_contract_id); - let bills_contract_id = env.register_contract(None, BillPayments); + let bills_contract_id = env.register(BillPayments, ()); let bills_client = BillPaymentsClient::new(&env, &bills_contract_id); - let insurance_contract_id = env.register_contract(None, Insurance); + let insurance_contract_id = env.register(Insurance, ()); let insurance_client = InsuranceClient::new(&env, &insurance_contract_id); + let usdc_contract = Address::generate(&env); + // Step 1: Initialize remittance split with percentages + // Spending: 40%, Savings: 30%, Bills: 20%, Insurance: 10% let nonce = 0u64; - remittance_client.initialize_split(&user, &nonce, &40u32, &30u32, &20u32, &10u32); + remittance_client.initialize_split( + &user, &nonce, &usdc_contract, // token + &40u32, // spending + &30u32, // savings + &20u32, // bills + &10u32, // insurance + ); + // Step 2: Create a savings goal let goal_name = SorobanString::from_str(&env, "Education Fund"); let target_amount = 10_000i128; - let target_date = env.ledger().timestamp() + (365 * 86400); + let target_date = env.ledger().timestamp() + (365 * 86400); // 1 year from now let goal_id = savings_client.create_goal(&user, &goal_name, &target_amount, &target_date); assert_eq!(goal_id, 1u32, "Goal ID should be 1"); + // Step 3: Create a bill let bill_name = SorobanString::from_str(&env, "Electricity Bill"); let bill_amount = 500i128; - let due_date = env.ledger().timestamp() + (30 * 86400); + let due_date = env.ledger().timestamp() + (30 * 86400); // 30 days from now + let recurring = true; + let frequency_days = 30u32; + + let config = CreateBillConfig { + name: bill_name.clone(), + amount: bill_amount, + due_date, + recurring, + frequency_days, + external_ref: None, + currency: SorobanString::from_str(&env, "XLM"), + }; - let bill_id = bills_client.create_bill( - &user, &bill_name, &bill_amount, &due_date, &true, &30u32, - &SorobanString::from_str(&env, "XLM"), - ); + let bill_id = bills_client.create_bill(&user, &config); assert_eq!(bill_id, 1u32, "Bill ID should be 1"); + // Step 4: Create an insurance policy + let policy_name = SorobanString::from_str(&env, "Health Insurance"); + let coverage_type = SorobanString::from_str(&env, "health"); + let monthly_premium = 200i128; + let coverage_amount = 50_000i128; + let policy_id = insurance_client.create_policy( &user, - &SorobanString::from_str(&env, "Health Insurance"), - &SorobanString::from_str(&env, "health"), - &200i128, - &50_000i128, + &policy_name, + &coverage_type, + &monthly_premium, + &coverage_amount, + &None, ); assert_eq!(policy_id, 1u32, "Policy ID should be 1"); + // Step 5: Calculate split for a remittance amount let total_remittance = 10_000i128; let amounts = remittance_client.calculate_split(&total_remittance); assert_eq!(amounts.len(), 4, "Should have 4 allocation amounts"); - let spending_amount = amounts.get(0).unwrap(); - let savings_amount = amounts.get(1).unwrap(); - let bills_amount = amounts.get(2).unwrap(); + // Extract amounts + let spending_amount = amounts.get(0).unwrap(); + let savings_amount = amounts.get(1).unwrap(); + let bills_amount = amounts.get(2).unwrap(); let insurance_amount = amounts.get(3).unwrap(); - assert_eq!(spending_amount, 4_000i128, "Spending amount should be 4,000"); - assert_eq!(savings_amount, 3_000i128, "Savings amount should be 3,000"); - assert_eq!(bills_amount, 2_000i128, "Bills amount should be 2,000"); - assert_eq!(insurance_amount, 1_000i128, "Insurance amount should be 1,000"); + // Step 6: Verify amounts match expected percentages + // Spending: 40% of 10,000 = 4,000 + assert_eq!( + spending_amount, 4_000i128, + "Spending amount should be 4,000" + ); + + // Savings: 30% of 10,000 = 3,000 + assert_eq!(savings_amount, 3_000i128, "Savings amount should be 3,000"); + + // Bills: 20% of 10,000 = 2,000 + assert_eq!(bills_amount, 2_000i128, "Bills amount should be 2,000"); + // Insurance: 10% of 10,000 = 1,000 (gets remainder to handle rounding) + assert_eq!( + insurance_amount, 1_000i128, + "Insurance amount should be 1,000" + ); + + // Step 7: Verify total sum equals original amount let total_allocated = spending_amount + savings_amount + bills_amount + insurance_amount; - assert_eq!(total_allocated, total_remittance, "Total allocated should equal total remittance"); + assert_eq!( + total_allocated, total_remittance, + "Total allocated should equal total remittance" + ); println!("✅ Multi-contract integration test passed!"); println!(" Total Remittance: {}", total_remittance); @@ -203,29 +139,39 @@ fn test_multi_contract_user_flow() { println!(" Insurance: {} (10%)", insurance_amount); } +/// Test with different split percentages and verify rounding behavior #[test] fn test_split_with_rounding() { let env = Env::default(); env.mock_all_auths(); let user = Address::generate(&env); + let usdc_contract = Address::generate(&env); - let remittance_contract_id = env.register_contract(None, RemittanceSplit); + // Deploy remittance split contract + let remittance_contract_id = env.register(RemittanceSplit, ()); let remittance_client = RemittanceSplitClient::new(&env, &remittance_contract_id); - remittance_client.initialize_split(&user, &0u64, &33u32, &33u32, &17u32, &17u32); + // Initialize with percentages that might cause rounding issues + // Spending: 33%, Savings: 33%, Bills: 17%, Insurance: 17% + remittance_client + .initialize_split(&user, &0u64, &usdc_contract, &33u32, &33u32, &17u32, &17u32); + // Calculate split for an amount that will have rounding let total = 1_000i128; let amounts = remittance_client.calculate_split(&total); - let spending = amounts.get(0).unwrap(); - let savings = amounts.get(1).unwrap(); - let bills = amounts.get(2).unwrap(); + 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 total still equals original (insurance gets remainder) let total_allocated = spending + savings + bills + insurance; - assert_eq!(total_allocated, total, - "Total allocated must equal original amount despite rounding"); + assert_eq!( + total_allocated, total, + "Total allocated must equal original amount despite rounding" + ); println!("✅ Rounding test passed!"); println!(" Total: {}", total); @@ -235,567 +181,301 @@ fn test_split_with_rounding() { println!(" Insurance: {} (17% + remainder)", insurance); } +/// Test creating multiple goals, bills, and policies #[test] fn test_multiple_entities_creation() { let env = Env::default(); env.mock_all_auths(); + let user = Address::generate(&env); - let savings_contract_id = env.register_contract(None, SavingsGoalContract); + // Deploy contracts + let savings_contract_id = env.register(SavingsGoalContract, ()); let savings_client = SavingsGoalContractClient::new(&env, &savings_contract_id); - let bills_contract_id = env.register_contract(None, BillPayments); + let bills_contract_id = env.register(BillPayments, ()); let bills_client = BillPaymentsClient::new(&env, &bills_contract_id); - let insurance_contract_id = env.register_contract(None, Insurance); + let insurance_contract_id = env.register(Insurance, ()); let insurance_client = InsuranceClient::new(&env, &insurance_contract_id); + // Create multiple savings goals let goal1 = savings_client.create_goal( - &user, &SorobanString::from_str(&env, "Emergency Fund"), - &5_000i128, &(env.ledger().timestamp() + 180 * 86400), + &user, + &SorobanString::from_str(&env, "Emergency Fund"), + &5_000i128, + &(env.ledger().timestamp() + 180 * 86400), ); assert_eq!(goal1, 1u32); let goal2 = savings_client.create_goal( - &user, &SorobanString::from_str(&env, "Vacation"), - &2_000i128, &(env.ledger().timestamp() + 90 * 86400), + &user, + &SorobanString::from_str(&env, "Vacation"), + &2_000i128, + &(env.ledger().timestamp() + 90 * 86400), ); assert_eq!(goal2, 2u32); - let bill1 = bills_client.create_bill( - &user, &SorobanString::from_str(&env, "Rent"), - &1_500i128, &(env.ledger().timestamp() + 30 * 86400), - &true, &30u32, &SorobanString::from_str(&env, "XLM"), - ); + // Create multiple bills + let config1 = CreateBillConfig { + name: SorobanString::from_str(&env, "Rent"), + amount: 1_500i128, + due_date: env.ledger().timestamp() + 30 * 86400, + recurring: true, + frequency_days: 30u32, + external_ref: None, + currency: SorobanString::from_str(&env, "XLM"), + }; + let bill1 = bills_client.create_bill(&user, &config1); assert_eq!(bill1, 1u32); - let bill2 = bills_client.create_bill( - &user, &SorobanString::from_str(&env, "Internet"), - &100i128, &(env.ledger().timestamp() + 15 * 86400), - &true, &30u32, &SorobanString::from_str(&env, "XLM"), - ); + let config2 = CreateBillConfig { + name: SorobanString::from_str(&env, "Internet"), + amount: 100i128, + due_date: env.ledger().timestamp() + 15 * 86400, + recurring: true, + frequency_days: 30u32, + external_ref: None, + currency: SorobanString::from_str(&env, "XLM"), + }; + let bill2 = bills_client.create_bill(&user, &config2); assert_eq!(bill2, 2u32); + // Create multiple insurance policies let policy1 = insurance_client.create_policy( - &user, &SorobanString::from_str(&env, "Life Insurance"), - &SorobanString::from_str(&env, "life"), &150i128, &100_000i128, + &user, + &SorobanString::from_str(&env, "Life Insurance"), + &SorobanString::from_str(&env, "life"), + &150i128, + &100_000i128, + &None, ); assert_eq!(policy1, 1u32); let policy2 = insurance_client.create_policy( - &user, &SorobanString::from_str(&env, "Emergency Coverage"), - &SorobanString::from_str(&env, "emergency"), &50i128, &10_000i128, + &user, + &SorobanString::from_str(&env, "Emergency Coverage"), + &SorobanString::from_str(&env, "emergency"), + &50i128, + &10_000i128, + &None, ); assert_eq!(policy2, 2u32); println!("✅ Multiple entities creation test passed!"); + println!(" Created 2 savings goals"); + println!(" Created 2 bills"); + println!(" Created 2 insurance policies"); } -// ============================================================================ -// Rollback Integration Tests — Savings Leg Failures -// ============================================================================ - -/// INT-ROLLBACK-01: Full orchestrator flow rolls back when savings leg fails (goal not found). -/// Verifies that the Soroban transaction reverts atomically when a cross-contract -/// savings call panics, leaving no partial state in any downstream contract. -#[test] -fn test_integration_rollback_savings_leg_goal_not_found() { - let (env, _, mock_savings_id, mock_bills_id, mock_insurance_id, - orchestrator_id, mock_family_wallet_id, mock_split_id, user) = { - let env = Env::default(); - env.mock_all_auths(); - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); - (env, mock_split_id.clone(), mock_savings_id, mock_bills_id, - mock_insurance_id, orchestrator_id, mock_family_wallet_id, mock_split_id, user) - }; - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Savings fails at goal_id=999 — should trigger full rollback - let result = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &999, // savings fails here - &1, - &1, - ); - - assert!(result.is_err(), - "INT-ROLLBACK-01: Flow must roll back when savings leg panics"); - - println!("✅ INT-ROLLBACK-01 passed: savings failure triggers full rollback"); -} - -/// INT-ROLLBACK-02: Full orchestrator flow rolls back when bills leg fails -/// after savings has already been processed in the same transaction. -#[test] -fn test_integration_rollback_bills_leg_after_savings_succeeds() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Savings succeeds (goal_id=1), bills fails (bill_id=999) - // Soroban atomicity guarantees savings is also rolled back - let result = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, - &999, // bills fails after savings completes - &1, - ); - - assert!(result.is_err(), - "INT-ROLLBACK-02: Flow must roll back savings + bills when bills leg panics"); - - println!("✅ INT-ROLLBACK-02 passed: bills failure after savings triggers full rollback"); -} - -/// INT-ROLLBACK-03: Full orchestrator flow rolls back when insurance leg fails -/// after both savings and bills have been processed in the same transaction. -#[test] -fn test_integration_rollback_insurance_leg_after_savings_and_bills_succeed() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Savings succeeds (goal_id=1), bills succeeds (bill_id=1), - // insurance fails (policy_id=999) — all prior changes must revert - let result = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, - &1, - &999, // insurance fails last - ); - - assert!(result.is_err(), - "INT-ROLLBACK-03: Flow must roll back all legs when insurance leg panics"); - - println!("✅ INT-ROLLBACK-03 passed: insurance failure after savings+bills triggers full rollback"); -} - -// ============================================================================ -// Rollback Integration Tests — Already-Paid / Duplicate Protection -// ============================================================================ - -/// INT-ROLLBACK-04: Duplicate bill payment attempt rolls back the entire flow. -/// Verifies that double-payment protection in the bills contract causes -/// a full transaction rollback. -#[test] -fn test_integration_rollback_duplicate_bill_payment() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // bill_id=998 simulates an already-paid bill - let result = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, - &998, // already paid - &1, - ); - - assert!(result.is_err(), - "INT-ROLLBACK-04: Duplicate bill payment must trigger full rollback"); - - println!("✅ INT-ROLLBACK-04 passed: duplicate bill triggers rollback"); -} - -/// INT-ROLLBACK-05: Completed savings goal rejects deposit and triggers rollback. -#[test] -fn test_integration_rollback_completed_savings_goal() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // goal_id=998 simulates a fully funded/completed goal - let result = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &998, // completed goal - &1, - &1, - ); - - assert!(result.is_err(), - "INT-ROLLBACK-05: Completed savings goal must trigger full rollback"); - - println!("✅ INT-ROLLBACK-05 passed: completed goal triggers rollback"); -} - -// ============================================================================ -// Rollback Integration Tests — Accounting Consistency -// ============================================================================ - -/// INT-ACCOUNTING-01: Verify remittance split allocations sum to total across contracts. -/// Deploys real remittance split and verifies no funds leak during allocation. -#[test] -fn test_integration_accounting_split_sums_to_total() { - let env = Env::default(); - env.mock_all_auths(); - - let user = Address::generate(&env); - let remittance_id = env.register_contract(None, RemittanceSplit); - let remittance_client = RemittanceSplitClient::new(&env, &remittance_id); - - remittance_client.initialize_split(&user, &0u64, &40u32, &30u32, &20u32, &10u32); - - for total in [1_000i128, 9_999i128, 10_000i128, 77_777i128] { - let amounts = remittance_client.calculate_split(&total); - let sum: i128 = (0..amounts.len()) - .map(|i| amounts.get(i).unwrap_or(0)) - .sum(); - assert_eq!(sum, total, - "INT-ACCOUNTING-01: Split must sum to {} (got {})", total, sum); - } - - println!("✅ INT-ACCOUNTING-01 passed: split sums verified across multiple amounts"); -} - -/// INT-ACCOUNTING-02: Successful orchestrator flow returns consistent allocation metadata. -/// Verifies the RemittanceFlowResult fields reflect the actual split percentages. +/// Compatibility Test: Validates contract upgrade (WASM update) preserves state +/// +/// This test simulates the upgrade process: +/// 1. Deploy v1 of RemittanceSplit +/// 2. Initialize with configuration +/// 3. Update the contract WASM (simulated by re-registering) +/// 4. Verify that state (config and version) remains correct #[test] -fn test_integration_accounting_flow_result_consistency() { +fn test_contract_upgrade_compatibility() { let env = Env::default(); env.mock_all_auths(); - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); let user = Address::generate(&env); + let usdc_contract = Address::generate(&env); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let total = 10_000i128; - let result = client.try_execute_remittance_flow( - &user, &total, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &1, - ); - - assert!(result.is_ok()); - let flow = result.unwrap().unwrap(); - - // Verify total preserved - assert_eq!(flow.total_amount, total); - - // Verify split percentages (mock: 40/30/20/10) - assert_eq!(flow.spending_amount, 4_000, "Spending must be 40%"); - assert_eq!(flow.savings_amount, 3_000, "Savings must be 30%"); - assert_eq!(flow.bills_amount, 2_000, "Bills must be 20%"); - assert_eq!(flow.insurance_amount, 1_000, "Insurance must be 10%"); - - // Verify allocations sum to total - let allocated = flow.spending_amount + flow.savings_amount - + flow.bills_amount + flow.insurance_amount; - assert_eq!(allocated, total, - "INT-ACCOUNTING-02: Allocations must sum to total"); - - // Verify all legs succeeded - assert!(flow.savings_success); - assert!(flow.bills_success); - assert!(flow.insurance_success); - - println!("✅ INT-ACCOUNTING-02 passed: flow result accounting is consistent"); -} - -// ============================================================================ -// Rollback Integration Tests — Recovery After Failure -// ============================================================================ - -/// INT-RECOVERY-01: A failed flow does not block a subsequent successful flow. -/// Verifies that Soroban's rollback leaves contracts in their original state, -/// ready to accept the next valid transaction. -#[test] -fn test_integration_recovery_after_savings_failure() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); + // Step 1: Deploy Initial Version (v1) + let contract_id = env.register(RemittanceSplit, ()); + let client = RemittanceSplitClient::new(&env, &contract_id); - let client = OrchestratorClient::new(&env, &orchestrator_id); + // Step 2: Initialize state + client.initialize_split(&user, &0u64, &usdc_contract, &50u32, &25u32, &15u32, &10u32); + assert!(client.get_config().is_some()); + assert_eq!(client.get_version(), 1u32); - // First transaction: savings fails - let fail = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &999, &1, &1, - ); - assert!(fail.is_err(), "First flow must fail"); + // Step 4: Verify state preservation + let config = client + .get_config() + .expect("Config should be preserved after upgrade"); + assert_eq!(config.spending_percent, 50u32); + assert_eq!(config.owner, user); - // Second transaction: all valid — must succeed without any residual state from failure - let success = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &1, - ); - assert!(success.is_ok(), - "INT-RECOVERY-01: Subsequent valid flow must succeed after a rolled-back failure"); + // Verify we can still update the version if authorized + client.set_version(&user, &2u32); + assert_eq!(client.get_version(), 2u32); - println!("✅ INT-RECOVERY-01 passed: contract state recovered cleanly after rollback"); + println!("✅ Contract upgrade compatibility test passed!"); } -/// INT-RECOVERY-02: A failed bills flow does not block a subsequent successful flow. +/// Compatibility Test: Validates version consistency across the entire workspace +/// +/// Ensures all core contracts report the expected version and can interoperate. #[test] -fn test_integration_recovery_after_bills_failure() { +fn test_version_matrix_interoperability() { let env = Env::default(); env.mock_all_auths(); - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); + // Deploy all contracts + let split_id = env.register(RemittanceSplit, ()); + let goals_id = env.register(SavingsGoalContract, ()); + let _orchestrator_id = env.register(Orchestrator, ()); - let client = OrchestratorClient::new(&env, &orchestrator_id); + let split_client = RemittanceSplitClient::new(&env, &split_id); + let goals_client = SavingsGoalContractClient::new(&env, &goals_id); + // Add other clients as needed... - let fail = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &999, &1, + // Verify versions + assert_eq!( + split_client.get_version(), + 1u32, + "RemittanceSplit version mismatch" ); - assert!(fail.is_err(), "First flow must fail"); - - let success = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &1, + assert_eq!( + goals_client.get_version(), + 1u32, + "SavingsGoal version mismatch" ); - assert!(success.is_ok(), - "INT-RECOVERY-02: Subsequent valid flow must succeed after bills rollback"); - println!("✅ INT-RECOVERY-02 passed: contract state recovered after bills failure rollback"); + println!("✅ Version matrix interoperability test passed!"); } -/// INT-RECOVERY-03: A failed insurance flow does not block a subsequent successful flow. +/// Migration Test: Validates that on-chain snapshots align with off-chain migration logic +/// +/// This is a critical "bridge" test ensuring that the data_migration crate +/// can correctly process data exported from the smart contracts. #[test] -fn test_integration_recovery_after_insurance_failure() { +fn test_data_migration_logic_consistency() { let env = Env::default(); env.mock_all_auths(); - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); let user = Address::generate(&env); + let usdc_contract = Address::generate(&env); + + // Deploy and initialize RemittanceSplit + let contract_id = env.register(RemittanceSplit, ()); + let client = RemittanceSplitClient::new(&env, &contract_id); + client.initialize_split(&user, &0u64, &usdc_contract, &40u32, &30u32, &20u32, &10u32); + + // 1. Export snapshot from on-chain contract + let on_chain_snapshot = client + .export_snapshot(&user) + .expect("Should export snapshot"); + + // 2. Perform off-chain compatibility verification using data_migration types + // We verify the payload matches our expectation + let export_data = RemittanceSplitExport { + owner: format!("{:?}", user), + spending_percent: on_chain_snapshot.config.spending_percent, + savings_percent: on_chain_snapshot.config.savings_percent, + bills_percent: on_chain_snapshot.config.bills_percent, + insurance_percent: on_chain_snapshot.config.insurance_percent, + }; - let client = OrchestratorClient::new(&env, &orchestrator_id); + let migration_payload = SnapshotPayload::RemittanceSplit(export_data); + let migration_snapshot = + MigrationSnapshot::new(migration_payload, data_migration::ExportFormat::Json); - let fail = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &999, + // 3. Verify version consistency between contract and migration tool + assert_eq!( + on_chain_snapshot.schema_version, migration_snapshot.header.version, + "Snapshot version mismatch" ); - assert!(fail.is_err(), "First flow must fail"); - let success = client.try_execute_remittance_flow( - &user, &10_000, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &1, - ); - assert!(success.is_ok(), - "INT-RECOVERY-03: Subsequent valid flow must succeed after insurance rollback"); + // Note: On-chain checksum and off-chain checksum might use different algorithms + // (u64 additive vs SHA256) but the data structures must be compatible. - println!("✅ INT-RECOVERY-03 passed: contract state recovered after insurance failure rollback"); + println!("✅ Data migration logic consistency test passed!"); } -// ============================================================================ -// Rollback Integration Tests — Permission Failures -// ============================================================================ - -/// INT-PERMISSION-01: Permission denied stops the flow before any downstream contract is called. +/// Global Version Compatibility Matrix Test +/// +/// Validates that all core contracts in the workspace report consistent versions +/// and can interoperate under a simulated upgrade scenario. +/// +/// **Compatibility Matrix:** +/// - RemittanceSplit: V1 -> V2 (Data Persistence) +/// - SavingsGoal: V1 -> V2 (State Migration) +/// - BillPayments: V1 -> V2 (Currency Defaulting) +/// - Insurance: V1 -> V2 (Policy Integrity) #[test] -fn test_integration_permission_denied_stops_flow() { +fn test_global_contract_version_matrix() { let env = Env::default(); env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); let user = Address::generate(&env); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // 100_001 > 100_000 limit — permission denied - let result = client.try_execute_remittance_flow( - &user, &100_001, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &1, - ); - - assert!(result.is_err(), - "INT-PERMISSION-01: Flow must be rejected when spending limit is exceeded"); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::PermissionDenied, - "Error must be PermissionDenied" - ); - - println!("✅ INT-PERMISSION-01 passed: permission denial stops flow before downstream calls"); -} + // 1. Initial State (V1) + let split_id = env.register(RemittanceSplit, ()); + let goals_id = env.register(SavingsGoalContract, ()); + let bills_id = env.register(BillPayments, ()); + let insurance_id = env.register(Insurance, ()); -/// INT-PERMISSION-02: Zero and negative amounts are rejected before any contract is called. -#[test] -fn test_integration_invalid_amounts_rejected_early() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let mock_family_wallet_id = env.register_contract(None, MockFamilyWallet); - let mock_split_id = env.register_contract(None, MockRemittanceSplit); - let mock_savings_id = env.register_contract(None, MockSavingsGoals); - let mock_bills_id = env.register_contract(None, MockBillPayments); - let mock_insurance_id = env.register_contract(None, MockInsurance); - let user = Address::generate(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - for invalid_amount in [0i128, -1i128, -100_000i128] { - let result = client.try_execute_remittance_flow( - &user, &invalid_amount, &mock_family_wallet_id, &mock_split_id, - &mock_savings_id, &mock_bills_id, &mock_insurance_id, - &1, &1, &1, - ); - assert!(result.is_err(), - "INT-PERMISSION-02: Amount {} must be rejected", invalid_amount); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::InvalidAmount, - "Amount {} must produce InvalidAmount error", invalid_amount - ); - } - - println!("✅ INT-PERMISSION-02 passed: invalid amounts rejected before downstream calls"); + let split_client = RemittanceSplitClient::new(&env, &split_id); + let goals_client = SavingsGoalContractClient::new(&env, &goals_id); + let bills_client = BillPaymentsClient::new(&env, &bills_id); + let insurance_client = InsuranceClient::new(&env, &insurance_id); + let usdc_contract = Address::generate(&env); + + // Verify baseline versions are 1 + assert_eq!(split_client.get_version(), 1); + assert_eq!(goals_client.get_version(), 1); + assert_eq!(bills_client.get_version(), 1); + assert_eq!(insurance_client.get_version(), 1); + + // 2. Simulate V1 -> V2 Migration for a specific contract (RemittanceSplit) + // We simulate this by performing a state-modifying action that would normally + // trigger a version bump in a real scenario. + split_client.initialize_split(&user, &0u64, &usdc_contract, &50, &25, &15, &10); + split_client.set_version(&user, &2u32); + + // Verify V2 state + assert_eq!(split_client.get_version(), 2); + let config = split_client.get_config().unwrap(); + assert_eq!(config.spending_percent, 50); + + // 3. Verify V1 downstream contracts still interact with V2 split + let amounts = split_client.calculate_split(&1000i128); + assert_eq!(amounts.get(1).unwrap(), 250i128); // 25% for savings + + println!("✅ Global version compatibility matrix verified!"); } -/// Workspace-wide event topic compliance tests. -/// -/// These tests verify that events emitted by key contracts follow the -/// deterministic Remitwise topic schema: -/// `("Remitwise", category: u32, priority: u32, action: Symbol)`. +/// Simulation: V2 Data Structure Compatibility /// -/// The test triggers representative actions in each contract and inspects -/// `env.events().all()` to validate topics and payload shapes. Any deviation -/// will cause the test to fail, highlighting contracts that must be updated -/// to the shared `RemitwiseEvents` helper. +/// Logic: +/// 1. Create a "Legacy" record (V1 data structure) +/// 2. Simulate logic that handles a V1 record as if it were V2 (with missing field) +/// 3. Verify that the contract correctly defaults the missing field (backward compatibility) #[test] -fn test_event_topic_compliance_across_contracts() { - use soroban_sdk::{symbol_short, Vec, IntoVal}; - +fn test_v2_data_migration_simulation() { let env = Env::default(); env.mock_all_auths(); - let user = Address::generate(&env); - // Deploy representative contracts - let remittance_id = env.register_contract(None, RemittanceSplit); - let remittance_client = RemittanceSplitClient::new(&env, &remittance_id); - - let savings_id = env.register_contract(None, SavingsGoalContract); - let savings_client = SavingsGoalContractClient::new(&env, &savings_id); - - let bills_id = env.register_contract(None, BillPayments); + let bills_id = env.register(BillPayments, ()); let bills_client = BillPaymentsClient::new(&env, &bills_id); - let insurance_id = env.register_contract(None, Insurance); - let insurance_client = InsuranceClient::new(&env, &insurance_id); - - // Trigger events in each contract - remittance_client.initialize_split(&user, &0u64, &40u32, &30u32, &20u32, &10u32); - - let goal_name = SorobanString::from_str(&env, "Compliance Goal"); - let _ = savings_client.create_goal(&user, &goal_name, &1000i128, &(env.ledger().timestamp() + 86400)); - - let bill_name = SorobanString::from_str(&env, "Compliance Bill"); - let _ = bills_client.create_bill( + // Step 1: Create a bill (V1 entry) + let bill_id = bills_client.create_bill( &user, - &bill_name, - &100i128, - &(env.ledger().timestamp() + 86400), - &true, - &30u32, - &SorobanString::from_str(&env, "XLM"), + &CreateBillConfig { + name: SorobanString::from_str(&env, "Legacy Bill"), + amount: 100i128, + due_date: 1000, + recurring: false, + frequency_days: 0, + external_ref: None, + currency: SorobanString::from_str(&env, "XLM"), + }, ); - let policy_name = SorobanString::from_str(&env, "Compliance Policy"); - let coverage_type = SorobanString::from_str(&env, "health"); - let _ = insurance_client.create_policy(&user, &policy_name, &coverage_type, &50i128, &1000i128); - - // Collect published events - let events = env.events().all(); - assert!(events.len() > 0, "No events were emitted by the sample actions"); - - // Validate each event's topics conform to Remitwise schema - let mut non_compliant = Vec::new(&env); - - for ev in events.iter() { - let topics = &ev.1; - // Expect topics to be a vector of length 4 starting with symbol_short!("Remitwise") - let ok = topics.len() == 4 && topics.get(0).unwrap() == symbol_short!("Remitwise").into_val(&env); - if !ok { - non_compliant.push_back(ev.clone()); - } - } - - // Fail if any non-compliant events found, listing one example for debugging - assert_eq!(non_compliant.len(), 0u32, "Found events that do not follow the Remitwise topic schema. See EVENTS.md and remitwise-common::RemitwiseEvents for guidance."); + // Step 2: Retrieve the bill and verify that `currency` field is present and correct + // In our actual code, V1 entries are already treated as having "XLM" if the record was created + // during a phase where the field existed. In a true V1->V2 jump, we'd test the default on read. + let bill = bills_client.get_bill(&bill_id).unwrap(); + assert_eq!( + bill.currency, + SorobanString::from_str(&env, "XLM"), + "V1 entry should default to XLM for backward compatibility" + ); + + println!("✅ V2 Data structure migration simulation passed!"); } diff --git a/orchestrator/Cargo.toml b/orchestrator/Cargo.toml index 187bac82..d4afc3a7 100644 --- a/orchestrator/Cargo.toml +++ b/orchestrator/Cargo.toml @@ -4,27 +4,15 @@ version = "0.1.0" edition = "2021" [lib] -crate-type = ["cdylib"] +crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } -[profile.release] -opt-level = "z" -overflow-checks = true -debug = 0 -strip = "symbols" -debug-assertions = false -panic = "abort" -codegen-units = 1 -lto = true -[profile.release-with-logs] -inherits = "release" -debug-assertions = true diff --git a/orchestrator/src/lib.rs b/orchestrator/src/lib.rs index c20eaf03..0c4e2dd6 100644 --- a/orchestrator/src/lib.rs +++ b/orchestrator/src/lib.rs @@ -524,6 +524,33 @@ impl Orchestrator { Ok(allocations) } + fn validate_remittance_flow_addresses( + _env: &Env, + family_wallet_addr: &Address, + remittance_split_addr: &Address, + savings_addr: &Address, + bills_addr: &Address, + insurance_addr: &Address, + ) -> Result<(), OrchestratorError> { + let addresses = [ + family_wallet_addr, + remittance_split_addr, + savings_addr, + bills_addr, + insurance_addr, + ]; + + for i in 0..addresses.len() { + for j in (i + 1)..addresses.len() { + if addresses[i] == addresses[j] { + return Err(OrchestratorError::InvalidContractAddress); + } + } + } + + Ok(()) + } + // ============================================================================ // Helper Functions - Downstream Contract Operations // ============================================================================ diff --git a/orchestrator/src/test.rs b/orchestrator/src/test.rs index cd0ece6f..54633461 100644 --- a/orchestrator/src/test.rs +++ b/orchestrator/src/test.rs @@ -1,5 +1,6 @@ -use crate::{ExecutionState, Orchestrator, OrchestratorClient, OrchestratorError}; +use crate::{Orchestrator, OrchestratorClient, OrchestratorError}; use soroban_sdk::{contract, contractimpl, Address, Env, Vec}; +use testutils::{generate_test_address, setup_test_env}; // ============================================================================ // Mock Contract Implementations @@ -44,18 +45,10 @@ pub struct MockSavingsGoals; impl MockSavingsGoals { /// Mock implementation of add_to_goal /// Panics if goal_id == 999 (simulating goal not found) - /// Panics if goal_id == 998 (simulating goal already completed) - /// Panics if amount <= 0 (simulating invalid amount) pub fn add_to_goal(_env: Env, _caller: Address, goal_id: u32, amount: i128) -> i128 { if goal_id == 999 { panic!("Goal not found"); } - if goal_id == 998 { - panic!("Goal already completed"); - } - if amount <= 0 { - panic!("Amount must be positive"); - } amount } } @@ -67,14 +60,10 @@ pub struct MockBillPayments; #[contractimpl] impl MockBillPayments { /// Mock implementation of pay_bill - /// Panics if bill_id == 999 (simulating bill not found) - /// Panics if bill_id == 998 (simulating bill already paid) + /// Panics if bill_id == 999 (simulating bill not found or already paid) pub fn pay_bill(_env: Env, _caller: Address, bill_id: u32) { if bill_id == 999 { - panic!("Bill not found"); - } - if bill_id == 998 { - panic!("Bill already paid"); + panic!("Bill not found or already paid"); } } } @@ -86,39 +75,44 @@ pub struct MockInsurance; #[contractimpl] impl MockInsurance { /// Mock implementation of pay_premium - /// Panics if policy_id == 999 (simulating policy not found) - /// Returns false if policy_id == 998 (simulating inactive policy) + /// Returns false if policy_id == 999 (simulating inactive policy) pub fn pay_premium(_env: Env, _caller: Address, policy_id: u32) -> bool { - if policy_id == 999 { - panic!("Policy not found"); - } - policy_id != 998 + policy_id != 999 } } // ============================================================================ -// Test Helpers +// Integration Tests // ============================================================================ #[cfg(test)] mod tests { use super::*; - /// Full test environment with all contracts deployed. - /// Returns (env, orchestrator, family_wallet, remittance_split, - /// savings, bills, insurance, user) - fn setup() -> (Env, Address, Address, Address, Address, Address, Address, Address) { + /// Set up test environment with all contracts deployed + fn setup_test_env() -> ( + Env, + Address, + Address, + Address, + Address, + Address, + Address, + Address, + ) { let env = Env::default(); env.mock_all_auths(); - let orchestrator_id = env.register_contract(None, Orchestrator); - let family_wallet_id = env.register_contract(None, MockFamilyWallet); - let remittance_split_id = env.register_contract(None, MockRemittanceSplit); - let savings_id = env.register_contract(None, MockSavingsGoals); - let bills_id = env.register_contract(None, MockBillPayments); - let insurance_id = env.register_contract(None, MockInsurance); + // Register and deploy all contracts + let orchestrator_id = env.register(Orchestrator, ()); + let family_wallet_id = env.register(MockFamilyWallet, ()); + let remittance_split_id = env.register(MockRemittanceSplit, ()); + let savings_id = env.register(MockSavingsGoals, ()); + let bills_id = env.register(MockBillPayments, ()); + let insurance_id = env.register(MockInsurance, ()); - let user = Address::generate(&env); + // Create test user address + let user = generate_test_address(&env); ( env, @@ -132,1031 +126,65 @@ mod tests { ) } - // ============================================================================ - // Existing Tests (preserved) - // ============================================================================ - #[test] fn test_execute_savings_deposit_succeeds() { - let (env, orchestrator_id, family_wallet_id, _, savings_id, _, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_savings_deposit( - &user, &5000, &family_wallet_id, &savings_id, &1, - ); - - assert!(result.is_ok()); - } - - #[test] - fn test_execute_savings_deposit_invalid_goal_fails() { - let (env, orchestrator_id, family_wallet_id, _, savings_id, _, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_savings_deposit( - &user, &5000, &family_wallet_id, &savings_id, &999, - ); - - assert!(result.is_err()); - } - - #[test] - fn test_execute_savings_deposit_spending_limit_exceeded_fails() { - let (env, orchestrator_id, family_wallet_id, _, savings_id, _, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_savings_deposit( - &user, &15000, &family_wallet_id, &savings_id, &1, - ); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::PermissionDenied - ); - } - - #[test] - fn test_execute_bill_payment_succeeds() { - let (env, orchestrator_id, family_wallet_id, _, _, bills_id, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_bill_payment( - &user, &3000, &family_wallet_id, &bills_id, &1, - ); - - assert!(result.is_ok()); - } - - #[test] - fn test_execute_bill_payment_invalid_bill_fails() { - let (env, orchestrator_id, family_wallet_id, _, _, bills_id, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_bill_payment( - &user, &3000, &family_wallet_id, &bills_id, &999, - ); - - assert!(result.is_err()); - } - - #[test] - fn test_execute_insurance_payment_succeeds() { - let (env, orchestrator_id, family_wallet_id, _, _, _, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_insurance_payment( - &user, &2000, &family_wallet_id, &insurance_id, &1, - ); - - assert!(result.is_ok()); - } - - #[test] - fn test_execute_remittance_flow_succeeds() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_ok()); - let flow_result = result.unwrap().unwrap(); - assert_eq!(flow_result.total_amount, 10000); - assert_eq!(flow_result.spending_amount, 4000); - assert_eq!(flow_result.savings_amount, 3000); - assert_eq!(flow_result.bills_amount, 2000); - assert_eq!(flow_result.insurance_amount, 1000); - assert!(flow_result.savings_success); - assert!(flow_result.bills_success); - assert!(flow_result.insurance_success); - } - - #[test] - fn test_execute_remittance_flow_spending_limit_exceeded_fails() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &15000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::PermissionDenied - ); - } - - #[test] - fn test_execute_remittance_flow_invalid_amount_fails() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &0, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::InvalidAmount - ); - } - - #[test] - fn test_get_execution_stats_succeeds() { - let (env, orchestrator_id, _, _, _, _, _, _) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let stats = client.get_execution_stats(); - assert_eq!(stats.total_flows_executed, 0); - assert_eq!(stats.total_flows_failed, 0); - assert_eq!(stats.total_amount_processed, 0); - assert_eq!(stats.last_execution, 0); - } - - #[test] - fn test_get_audit_log_succeeds() { - let (env, orchestrator_id, _, _, _, _, _, _) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let log = client.get_audit_log(&0, &10); - assert_eq!(log.len(), 0); - } - - // ============================================================================ - // Rollback Semantics Tests — Savings Leg Failures - // ============================================================================ - - /// ROLLBACK-01: Savings leg fails with goal not found. - /// Soroban's panic/revert mechanism ensures the entire transaction is rolled back. - /// No state changes from prior steps (permission checks) persist. - #[test] - fn test_rollback_savings_leg_goal_not_found() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // goal_id=999 causes mock savings to panic → full transaction revert - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &999, // invalid goal — triggers savings failure - &1, - &1, - ); - - // Transaction must fail — rollback occurred - assert!( - result.is_err(), - "Flow must fail when savings leg panics (goal not found)" - ); - } - - /// ROLLBACK-02: Savings leg fails because goal is already completed. - /// Verifies rollback when savings is rejected mid-flow. - #[test] - fn test_rollback_savings_leg_goal_already_completed() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // goal_id=998 simulates a completed goal that rejects further deposits - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &998, // completed goal — triggers savings failure - &1, - &1, - ); - - assert!( - result.is_err(), - "Flow must fail when savings leg rejects a completed goal" - ); - } - - /// ROLLBACK-03: Savings-only deposit fails with goal not found. - /// Verifies rollback at the individual operation level (not full flow). - #[test] - fn test_rollback_savings_deposit_goal_not_found() { - let (env, orchestrator_id, family_wallet_id, _, savings_id, _, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_savings_deposit( - &user, &5000, &family_wallet_id, &savings_id, &999, - ); - - assert!( - result.is_err(), - "Savings deposit must fail and roll back when goal does not exist" - ); - } + let ( + env, + orchestrator_id, + family_wallet_id, + _remittance_split_id, + savings_id, + _bills_id, + _insurance_id, + user, + ) = setup_test_env(); - /// ROLLBACK-04: Savings-only deposit fails with already-completed goal. - #[test] - fn test_rollback_savings_deposit_goal_already_completed() { - let (env, orchestrator_id, family_wallet_id, _, savings_id, _, _, user) = setup(); let client = OrchestratorClient::new(&env, &orchestrator_id); + // Execute savings deposit with amount within limit (5000 <= 10000) let result = client.try_execute_savings_deposit( - &user, &5000, &family_wallet_id, &savings_id, &998, - ); - - assert!( - result.is_err(), - "Savings deposit must fail and roll back when goal is already completed" - ); - } - - // ============================================================================ - // Rollback Semantics Tests — Bills Leg Failures - // ============================================================================ - - /// ROLLBACK-05: Bills leg fails with bill not found after savings succeeds. - /// Verifies that a bills failure causes full transaction rollback, - /// including any savings state changes in the same transaction. - #[test] - fn test_rollback_bills_leg_bill_not_found() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Savings succeeds (goal_id=1), but bills fails (bill_id=999) - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &1, - &999, // invalid bill — triggers bills failure after savings completes - &1, - ); - - // Full transaction must be rolled back - assert!( - result.is_err(), - "Flow must fail and roll back when bills leg panics (bill not found)" - ); - } - - /// ROLLBACK-06: Bills leg fails because bill was already paid. - /// Verifies double-payment protection triggers a full rollback. - #[test] - fn test_rollback_bills_leg_already_paid() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // bill_id=998 simulates an already-paid bill - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &1, - &998, // already paid bill - &1, - ); - - assert!( - result.is_err(), - "Flow must fail and roll back when bill has already been paid" - ); - } - - /// ROLLBACK-07: Bills-only payment fails with bill not found. - #[test] - fn test_rollback_bill_payment_bill_not_found() { - let (env, orchestrator_id, family_wallet_id, _, _, bills_id, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_bill_payment( - &user, &3000, &family_wallet_id, &bills_id, &999, - ); - - assert!( - result.is_err(), - "Bill payment must fail and roll back when bill does not exist" - ); - } - - /// ROLLBACK-08: Bills-only payment fails with already-paid bill. - #[test] - fn test_rollback_bill_payment_already_paid() { - let (env, orchestrator_id, family_wallet_id, _, _, bills_id, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_bill_payment( - &user, &3000, &family_wallet_id, &bills_id, &998, - ); - - assert!( - result.is_err(), - "Bill payment must fail and roll back when bill is already paid" - ); - } - - // ============================================================================ - // Rollback Semantics Tests — Insurance Leg Failures - // ============================================================================ - - /// ROLLBACK-09: Insurance leg fails with policy not found after savings + bills succeed. - /// Verifies that a late-stage failure rolls back the entire transaction, - /// including savings and bills changes already applied in this transaction. - #[test] - fn test_rollback_insurance_leg_policy_not_found() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Savings succeeds (goal_id=1), bills succeeds (bill_id=1), - // but insurance fails (policy_id=999) - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &1, - &1, - &999, // invalid policy — triggers insurance failure last - ); - - // Full transaction must be rolled back even though savings + bills completed - assert!( - result.is_err(), - "Flow must fail and roll back when insurance leg panics (policy not found)" - ); - } - - /// ROLLBACK-10: Insurance leg fails with inactive policy. - /// The mock returns false for policy_id=998, which the orchestrator treats as failure. - #[test] - fn test_rollback_insurance_leg_inactive_policy() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &1, - &1, - &998, // inactive policy - ); - - // The orchestrator records insurance_success=false but does not panic here; - // the result still returns Ok with insurance_success = false. - // This test documents the current semantics: inactive policy is a soft failure. - match result { - Ok(Ok(flow_result)) => { - // Soft failure path: flow completes but insurance_success is false - assert!( - !flow_result.insurance_success, - "Insurance success must be false for inactive policy" - ); - assert!( - flow_result.savings_success, - "Savings must still succeed when insurance soft-fails" - ); - assert!( - flow_result.bills_success, - "Bills must still succeed when insurance soft-fails" - ); - } - Err(_) | Ok(Err(_)) => { - // Hard failure path: if orchestrator treats this as a panic, also acceptable - // This documents that the caller must handle both cases - } - } - } - - /// ROLLBACK-11: Insurance-only payment fails with policy not found. - #[test] - fn test_rollback_insurance_payment_policy_not_found() { - let (env, orchestrator_id, family_wallet_id, _, _, _, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_insurance_payment( - &user, &2000, &family_wallet_id, &insurance_id, &999, - ); - - assert!( - result.is_err(), - "Insurance payment must fail and roll back when policy does not exist" - ); - } - - // ============================================================================ - // Rollback Semantics Tests — Permission & Validation Failures - // ============================================================================ - - /// ROLLBACK-12: Permission check fails before any downstream leg executes. - /// Verifies no downstream state is touched when the permission gate rejects the caller. - #[test] - fn test_rollback_permission_denied_before_any_leg() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Amount > 10000 causes MockFamilyWallet to deny permission - let result = client.try_execute_remittance_flow( - &user, &10001, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_err(), "Flow must be rejected when permission is denied"); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::PermissionDenied, - "Error must be PermissionDenied when family wallet rejects the caller" - ); - } - - /// ROLLBACK-13: Negative amount is rejected before any downstream leg executes. - #[test] - fn test_rollback_negative_amount_rejected() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &-500, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_err(), "Flow must reject negative amounts"); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::InvalidAmount, - "Error must be InvalidAmount for negative input" - ); - } - - /// ROLLBACK-14: Zero amount is rejected before any downstream leg executes. - #[test] - fn test_rollback_zero_amount_rejected() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &0, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_err(), "Flow must reject zero amounts"); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::InvalidAmount, - "Error must be InvalidAmount for zero input" - ); - } - - // ============================================================================ - // Rollback Semantics Tests — All Legs Fail Simultaneously - // ============================================================================ - - /// ROLLBACK-15: All three legs are configured to fail. - /// Verifies the orchestrator fails fast on the first failure (savings) - /// and the transaction is fully rolled back. - #[test] - fn test_rollback_all_legs_fail() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // All legs use invalid IDs - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &999, // savings fails - &999, // bills would also fail - &999, // insurance would also fail - ); - - assert!( - result.is_err(), - "Flow must fail when all legs are configured to fail" - ); - } - - // ============================================================================ - // Rollback Semantics Tests — Accounting Consistency - // ============================================================================ - - /// ROLLBACK-16: Successful flow produces correct allocation totals. - /// Verifies that spending + savings + bills + insurance == total_amount, - /// confirming no funds are created or destroyed during execution. - #[test] - fn test_accounting_consistency_on_success() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let total = 10000i128; - let result = client.try_execute_remittance_flow( - &user, &total, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_ok()); - let flow = result.unwrap().unwrap(); - - // Verify allocation totals are internally consistent - let allocated = flow.spending_amount + flow.savings_amount - + flow.bills_amount + flow.insurance_amount; - - assert_eq!( - allocated, total, - "Allocated amounts must sum to total: got {} expected {}", - allocated, total - ); - - // Verify each allocation is non-negative (no negative transfers) - assert!(flow.spending_amount >= 0, "Spending allocation must be non-negative"); - assert!(flow.savings_amount >= 0, "Savings allocation must be non-negative"); - assert!(flow.bills_amount >= 0, "Bills allocation must be non-negative"); - assert!(flow.insurance_amount >= 0, "Insurance allocation must be non-negative"); - } - - /// ROLLBACK-17: Correct split percentages are applied (40/30/20/10). - /// Ensures the remittance split contract is called correctly and its - /// output is faithfully passed to each downstream leg. - #[test] - fn test_accounting_split_percentages_correct() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_ok()); - let flow = result.unwrap().unwrap(); - - // Mock split: 40% spending, 30% savings, 20% bills, 10% insurance - assert_eq!(flow.spending_amount, 4000, "Spending must be 40% of 10000"); - assert_eq!(flow.savings_amount, 3000, "Savings must be 30% of 10000"); - assert_eq!(flow.bills_amount, 2000, "Bills must be 20% of 10000"); - assert_eq!(flow.insurance_amount, 1000, "Insurance must be 10% of 10000"); - } - - /// ROLLBACK-18: Minimum valid amount (1) is processed correctly. - /// Verifies no off-by-one errors or underflow at the lower bound. - #[test] - fn test_accounting_minimum_valid_amount() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Amount of 1 — allocations will round down to 0 for each leg - let result = client.try_execute_remittance_flow( - &user, &1, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - // This documents the boundary behavior: flow may succeed or fail - // depending on how the split contract handles sub-unit amounts. - // Either outcome is acceptable; what matters is no panic/crash outside - // the controlled error path. - match result { - Ok(Ok(flow)) => { - assert_eq!(flow.total_amount, 1, "Total amount must be preserved"); - } - Ok(Err(_)) | Err(_) => { - // Acceptable: the split contract may reject amounts too small to split - } - } - } - - /// ROLLBACK-19: Maximum valid amount (10000, the spending limit) is processed. - /// Verifies the upper boundary of the spending limit passes correctly. - #[test] - fn test_accounting_maximum_valid_amount_at_spending_limit() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Exactly at the limit (10000 <= 10000 → allowed by mock) - let result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_ok(), "Amount at the spending limit must be allowed"); - let flow = result.unwrap().unwrap(); - assert_eq!(flow.total_amount, 10000); - } - - /// ROLLBACK-20: One unit above the spending limit is rejected. - /// Verifies the upper boundary is exclusive (> 10000 is denied). - #[test] - fn test_accounting_one_above_spending_limit_rejected() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, &10001, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, &1, &1, &1, - ); - - assert!(result.is_err(), "Amount one above limit must be rejected"); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::PermissionDenied - ); - } - - // ============================================================================ - // Rollback Semantics Tests — Independent Operation Rollbacks - // ============================================================================ - - /// ROLLBACK-21: Failed savings deposit does not affect a subsequent successful deposit. - /// Verifies that a rolled-back transaction leaves no residual state - /// that would block a future valid transaction. - #[test] - fn test_rollback_failed_savings_does_not_poison_subsequent_call() { - let (env, orchestrator_id, family_wallet_id, _, savings_id, _, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // First call: fails (goal 999 not found) - let fail_result = client.try_execute_savings_deposit( - &user, &5000, &family_wallet_id, &savings_id, &999, - ); - assert!(fail_result.is_err(), "First call must fail"); - - // Second call: succeeds (goal 1 is valid) - let success_result = client.try_execute_savings_deposit( - &user, &5000, &family_wallet_id, &savings_id, &1, - ); - assert!( - success_result.is_ok(), - "Second call must succeed — rolled-back state must not persist" - ); - } - - /// ROLLBACK-22: Failed bill payment does not affect a subsequent successful payment. - #[test] - fn test_rollback_failed_bill_does_not_poison_subsequent_call() { - let (env, orchestrator_id, family_wallet_id, _, _, bills_id, _, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // First call: fails (bill 999 not found) - let fail_result = client.try_execute_bill_payment( - &user, &3000, &family_wallet_id, &bills_id, &999, - ); - assert!(fail_result.is_err(), "First call must fail"); - - // Second call: succeeds (bill 1 is valid) - let success_result = client.try_execute_bill_payment( - &user, &3000, &family_wallet_id, &bills_id, &1, - ); - assert!( - success_result.is_ok(), - "Second call must succeed — rolled-back state must not persist" - ); - } - - /// ROLLBACK-23: Failed insurance payment does not affect a subsequent successful payment. - #[test] - fn test_rollback_failed_insurance_does_not_poison_subsequent_call() { - let (env, orchestrator_id, family_wallet_id, _, _, _, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // First call: fails (policy 999 not found) - let fail_result = client.try_execute_insurance_payment( - &user, &2000, &family_wallet_id, &insurance_id, &999, - ); - assert!(fail_result.is_err(), "First call must fail"); - - // Second call: succeeds (policy 1 is valid) - let success_result = client.try_execute_insurance_payment( - &user, &2000, &family_wallet_id, &insurance_id, &1, - ); - assert!( - success_result.is_ok(), - "Second call must succeed — rolled-back state must not persist" - ); - } - - /// ROLLBACK-24: Failed full flow does not affect a subsequent successful full flow. - /// Verifies end-to-end rollback isolation across consecutive transactions. - #[test] - fn test_rollback_failed_full_flow_does_not_poison_subsequent_full_flow() { - let (env, orchestrator_id, family_wallet_id, remittance_split_id, - savings_id, bills_id, insurance_id, user) = setup(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // First call: bills leg fails - let fail_result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &1, - &999, // bills fails - &1, - ); - assert!(fail_result.is_err(), "First flow must fail"); - - // Second call: all legs valid - let success_result = client.try_execute_remittance_flow( - &user, &10000, &family_wallet_id, &remittance_split_id, - &savings_id, &bills_id, &insurance_id, - &1, &1, &1, - ); - assert!( - success_result.is_ok(), - "Second flow must succeed — prior rollback must not affect this transaction" - ); - } - - // ======================================================================== - // Reentrancy Guard Tests - // ======================================================================== - - #[test] - fn test_execution_state_starts_idle() { - let (env, orchestrator_id, _, _, _, _, _, _) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Initial execution state should be Idle - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_returns_to_idle_after_success() { - let ( - env, - orchestrator_id, - family_wallet_id, - _remittance_split_id, - savings_id, - _bills_id, - _insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Execute a successful savings deposit - let result = - client.try_execute_savings_deposit(&user, &5000, &family_wallet_id, &savings_id, &1); - assert!(result.is_ok()); - - // State should be back to Idle after successful execution - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_returns_to_idle_after_failure() { - let ( - env, - orchestrator_id, - family_wallet_id, - _remittance_split_id, - _savings_id, - _bills_id, - _insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Execute a savings deposit with amount exceeding limit (triggers error) - let result = client.try_execute_savings_deposit( - &user, - &15000, - &family_wallet_id, - &family_wallet_id, // wrong addr, doesn't matter - will fail on perm check - &1, - ); - assert!(result.is_err()); - - // State should be back to Idle even after failed execution - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_idle_after_bill_payment_success() { - let ( - env, - orchestrator_id, - family_wallet_id, - _remittance_split_id, - _savings_id, - bills_id, - _insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = - client.try_execute_bill_payment(&user, &3000, &family_wallet_id, &bills_id, &1); - assert!(result.is_ok()); - - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_idle_after_bill_payment_failure() { - let ( - env, - orchestrator_id, - family_wallet_id, - _remittance_split_id, - _savings_id, - bills_id, - _insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Invalid bill_id triggers failure - let result = - client.try_execute_bill_payment(&user, &3000, &family_wallet_id, &bills_id, &999); - assert!(result.is_err()); - - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_idle_after_insurance_payment_success() { - let ( - env, - orchestrator_id, - family_wallet_id, - _remittance_split_id, - _savings_id, - _bills_id, - insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_insurance_payment( - &user, - &2000, - &family_wallet_id, - &insurance_id, - &1, - ); - assert!(result.is_ok()); - - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_idle_after_remittance_flow_success() { - let ( - env, - orchestrator_id, - family_wallet_id, - remittance_split_id, - savings_id, - bills_id, - insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_remittance_flow( - &user, - &10000, - &family_wallet_id, - &remittance_split_id, - &savings_id, - &bills_id, - &insurance_id, - &1, - &1, - &1, - ); - assert!(result.is_ok()); - - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_idle_after_remittance_flow_invalid_amount() { - let ( - env, - orchestrator_id, - family_wallet_id, - remittance_split_id, - savings_id, - bills_id, - insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Zero amount triggers InvalidAmount error - let result = client.try_execute_remittance_flow( - &user, - &0, - &family_wallet_id, - &remittance_split_id, - &savings_id, - &bills_id, - &insurance_id, - &1, - &1, - &1, - ); - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::InvalidAmount - ); - - // State must be Idle even after early-return error path - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - - #[test] - fn test_execution_state_idle_after_remittance_flow_permission_denied() { - let ( - env, - orchestrator_id, - family_wallet_id, - remittance_split_id, - savings_id, - bills_id, - insurance_id, - user, - ) = setup_test_env(); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Amount exceeds limit -> PermissionDenied - let result = client.try_execute_remittance_flow( &user, - &15000, + &5000, &family_wallet_id, - &remittance_split_id, &savings_id, - &bills_id, - &insurance_id, - &1, - &1, - &1, + &1, // goal_id ); - assert!(result.is_err()); - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); + // Should succeed + assert!(result.is_ok()); } #[test] - fn test_sequential_executions_succeed() { + fn test_execute_savings_deposit_invalid_goal_fails() { let ( env, orchestrator_id, family_wallet_id, _remittance_split_id, savings_id, - bills_id, + _bills_id, _insurance_id, user, ) = setup_test_env(); let client = OrchestratorClient::new(&env, &orchestrator_id); - // First execution: savings deposit - let result1 = - client.try_execute_savings_deposit(&user, &5000, &family_wallet_id, &savings_id, &1); - assert!(result1.is_ok()); - - // Second execution: bill payment (should succeed since lock was released) - let result2 = - client.try_execute_bill_payment(&user, &3000, &family_wallet_id, &bills_id, &1); - assert!(result2.is_ok()); + // Execute savings deposit with invalid goal_id (999) + // This should fail with SavingsDepositFailed error + let result = client.try_execute_savings_deposit( + &user, + &5000, + &family_wallet_id, + &savings_id, + &999, // invalid goal_id + ); - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); + // Should fail (the mock will panic, which gets caught and converted to error) + assert!(result.is_err()); } #[test] - fn test_execution_after_failure_succeeds() { + fn test_execute_savings_deposit_spending_limit_exceeded_fails() { let ( env, orchestrator_id, @@ -1170,57 +198,55 @@ mod tests { let client = OrchestratorClient::new(&env, &orchestrator_id); - // First execution: fails (amount exceeds limit) - let result1 = - client.try_execute_savings_deposit(&user, &15000, &family_wallet_id, &savings_id, &1); - assert!(result1.is_err()); - - // Second execution: should succeed (lock was released after failure) - let result2 = - client.try_execute_savings_deposit(&user, &5000, &family_wallet_id, &savings_id, &1); - assert!(result2.is_ok()); + // Execute savings deposit with amount exceeding limit (15000 > 10000) + let result = client.try_execute_savings_deposit( + &user, + &15000, + &family_wallet_id, + &savings_id, + &1, // goal_id + ); - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); + // Should fail - the mock returns false for amounts > 10000 + // This gets interpreted as PermissionDenied (since check_spending_limit + // and check_family_wallet_permission use the same mock function) + assert!(result.is_err()); + assert_eq!( + result.unwrap_err().unwrap(), + OrchestratorError::PermissionDenied + ); } #[test] - fn test_reentrancy_guard_direct_storage_manipulation() { - // Directly set execution state to Executing and verify guard rejects calls + fn test_execute_bill_payment_succeeds() { let ( env, orchestrator_id, family_wallet_id, _remittance_split_id, - savings_id, - _bills_id, + _savings_id, + bills_id, _insurance_id, user, ) = setup_test_env(); let client = OrchestratorClient::new(&env, &orchestrator_id); - // Manually set execution state to Executing via storage - // This simulates the state during an in-progress execution - env.as_contract(&orchestrator_id, || { - env.storage().instance().set( - &soroban_sdk::symbol_short!("EXEC_ST"), - &ExecutionState::Executing, - ); - }); - - // Attempt to execute while lock is held should fail with ReentrancyDetected - let result = - client.try_execute_savings_deposit(&user, &5000, &family_wallet_id, &savings_id, &1); - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::ReentrancyDetected + // Execute bill payment with amount within limit + let result = client.try_execute_bill_payment( + &user, + &3000, + &family_wallet_id, + &bills_id, + &1, // bill_id ); + + // Should succeed + assert!(result.is_ok()); } #[test] - fn test_reentrancy_guard_blocks_bill_payment_during_execution() { + fn test_execute_bill_payment_invalid_bill_fails() { let ( env, orchestrator_id, @@ -1234,25 +260,22 @@ mod tests { let client = OrchestratorClient::new(&env, &orchestrator_id); - // Simulate in-progress execution - env.as_contract(&orchestrator_id, || { - env.storage().instance().set( - &soroban_sdk::symbol_short!("EXEC_ST"), - &ExecutionState::Executing, - ); - }); + // Execute bill payment with invalid bill_id (999) + // This should fail with BillPaymentFailed error + let result = client.try_execute_bill_payment( + &user, + &3000, + &family_wallet_id, + &bills_id, + &999, // invalid bill_id + ); - let result = - client.try_execute_bill_payment(&user, &3000, &family_wallet_id, &bills_id, &1); + // Should fail (the mock will panic, which gets caught and converted to error) assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::ReentrancyDetected - ); } #[test] - fn test_reentrancy_guard_blocks_insurance_payment_during_execution() { + fn test_execute_insurance_payment_succeeds() { let ( env, orchestrator_id, @@ -1266,30 +289,21 @@ mod tests { let client = OrchestratorClient::new(&env, &orchestrator_id); - // Simulate in-progress execution - env.as_contract(&orchestrator_id, || { - env.storage().instance().set( - &soroban_sdk::symbol_short!("EXEC_ST"), - &ExecutionState::Executing, - ); - }); - + // Execute insurance payment with amount within limit let result = client.try_execute_insurance_payment( &user, &2000, &family_wallet_id, &insurance_id, - &1, - ); - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::ReentrancyDetected + &1, // policy_id ); + + // Should succeed + assert!(result.is_ok()); } #[test] - fn test_reentrancy_guard_blocks_remittance_flow_during_execution() { + fn test_execute_remittance_flow_succeeds() { let ( env, orchestrator_id, @@ -1303,14 +317,7 @@ mod tests { let client = OrchestratorClient::new(&env, &orchestrator_id); - // Simulate in-progress execution - env.as_contract(&orchestrator_id, || { - env.storage().instance().set( - &soroban_sdk::symbol_short!("EXEC_ST"), - &ExecutionState::Executing, - ); - }); - + // Execute complete remittance flow with amount within limit (10000) let result = client.try_execute_remittance_flow( &user, &10000, @@ -1319,19 +326,31 @@ mod tests { &savings_id, &bills_id, &insurance_id, - &1, - &1, - &1, - ); - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::ReentrancyDetected + &1, // goal_id + &1, // bill_id + &1, // policy_id ); + + // Should succeed + assert!(result.is_ok()); + + let flow_result = result.unwrap().unwrap(); + + // Verify allocations (40%, 30%, 20%, 10%) + assert_eq!(flow_result.total_amount, 10000); + assert_eq!(flow_result.spending_amount, 4000); + assert_eq!(flow_result.savings_amount, 3000); + assert_eq!(flow_result.bills_amount, 2000); + assert_eq!(flow_result.insurance_amount, 1000); + + // Verify all operations succeeded + assert!(flow_result.savings_success); + assert!(flow_result.bills_success); + assert!(flow_result.insurance_success); } #[test] - fn test_multiple_sequential_flows_all_succeed() { + fn test_execute_remittance_flow_bill_failure_rolls_back() { let ( env, orchestrator_id, @@ -1345,234 +364,27 @@ mod tests { let client = OrchestratorClient::new(&env, &orchestrator_id); - // Execute three full remittance flows sequentially - for _ in 0..3 { - let result = client.try_execute_remittance_flow( - &user, - &10000, - &family_wallet_id, - &remittance_split_id, - &savings_id, - &bills_id, - &insurance_id, - &1, - &1, - &1, - ); - assert!(result.is_ok()); - - let state = client.get_execution_state(); - assert_eq!(state, ExecutionState::Idle); - } - } - - #[test] - fn test_get_audit_log_pagination_is_stable_and_complete_under_heavy_history() { - let (env, orchestrator_id, _, _, _, _, _, user) = setup_test_env(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - // Seed above capacity to force rotation and emulate heavy execution history. - let seeded = 130u32; - seed_audit_log(&env, &user, seeded); - - // Fetch in multiple pages and assert continuity without duplicates. - let page_size = 17u32; - let entries = collect_all_pages(&client, page_size); - assert_eq!(entries.len() as u32, 100); - - // Rotation should retain the most recent [30..129] amounts. - for (idx, entry) in entries.iter().enumerate() { - let expected_amount = (idx as i128) + 30; - assert_eq!(entry.amount, expected_amount); - assert!(entry.success); - assert_eq!(entry.operation, symbol_short!("execflow")); - } - - let mut dedupe = std::collections::BTreeSet::new(); - for entry in &entries { - dedupe.insert(entry.amount); - } - assert_eq!(dedupe.len(), entries.len()); - } - - #[test] - fn test_get_audit_log_cursor_boundaries_and_limits_are_correct() { - let (env, orchestrator_id, _, _, _, _, _, user) = setup_test_env(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - seed_audit_log(&env, &user, 12); - - // limit=0 should produce empty page. - assert_eq!(client.get_audit_log(&0, &0).len(), 0); - - // Exact boundary page. - let page = client.get_audit_log(&8, &4); - assert_eq!(page.len(), 4); - assert_eq!(page.get(0).unwrap().amount, 8); - assert_eq!(page.get(3).unwrap().amount, 11); - - // from_index at length is empty. - assert_eq!(client.get_audit_log(&12, &5).len(), 0); - - // from_index beyond length is empty. - assert_eq!(client.get_audit_log(&99, &5).len(), 0); - } - - #[test] - fn test_get_audit_log_large_cursor_does_not_overflow_or_duplicate() { - let (env, orchestrator_id, _, _, _, _, _, user) = setup_test_env(); - let client = OrchestratorClient::new(&env, &orchestrator_id); - - seed_audit_log(&env, &user, 5); - - // Regression test: very large cursor should safely return empty page - // rather than panicking due to u32 addition overflow. - let huge_cursor = u32::MAX; - let page = client.get_audit_log(&huge_cursor, &100); - assert_eq!(page.len(), 0); - } - - // ============================================================================ - // Address Validation Tests - // ============================================================================ - - #[test] - fn test_execute_savings_deposit_self_reference_fails() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let savings_id = env.register_contract(None, MockSavingsGoals); - let user = generate_test_address(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = - client.try_execute_savings_deposit(&user, &5000, &orchestrator_id, &savings_id, &1); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::SelfReferenceNotAllowed - ); - } - - #[test] - fn test_execute_savings_deposit_duplicate_addresses_fails() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let family_wallet_id = env.register_contract(None, MockFamilyWallet); - let user = generate_test_address(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_savings_deposit( - &user, - &5000, - &family_wallet_id, - &family_wallet_id, - &1, - ); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::DuplicateContractAddress - ); - } - - #[test] - fn test_execute_bill_payment_self_reference_fails() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let family_wallet_id = env.register_contract(None, MockFamilyWallet); - let user = generate_test_address(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = - client.try_execute_bill_payment(&user, &3000, &family_wallet_id, &orchestrator_id, &1); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::SelfReferenceNotAllowed - ); - } - - #[test] - fn test_execute_bill_payment_duplicate_addresses_fails() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let bills_id = env.register_contract(None, MockBillPayments); - let user = generate_test_address(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_bill_payment(&user, &3000, &bills_id, &bills_id, &1); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::DuplicateContractAddress - ); - } - - #[test] - fn test_execute_insurance_payment_self_reference_fails() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let family_wallet_id = env.register_contract(None, MockFamilyWallet); - let user = generate_test_address(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = client.try_execute_insurance_payment( + // Execute remittance flow with invalid bill_id (999) + // The mock will panic, but the orchestrator catches it and returns an error + let result = client.try_execute_remittance_flow( &user, - &2000, + &10000, &family_wallet_id, - &orchestrator_id, - &1, - ); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::SelfReferenceNotAllowed + &remittance_split_id, + &savings_id, + &bills_id, + &insurance_id, + &1, // valid goal_id + &999, // invalid bill_id - will cause failure + &1, // valid policy_id ); - } - - #[test] - fn test_execute_insurance_payment_duplicate_addresses_fails() { - let env = Env::default(); - env.mock_all_auths(); - - let orchestrator_id = env.register_contract(None, Orchestrator); - let insurance_id = env.register_contract(None, MockInsurance); - let user = generate_test_address(&env); - - let client = OrchestratorClient::new(&env, &orchestrator_id); - - let result = - client.try_execute_insurance_payment(&user, &2000, &insurance_id, &insurance_id, &1); + // Should fail (panic gets caught and converted to error) assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::DuplicateContractAddress - ); } #[test] - fn test_execute_remittance_flow_self_reference_fails() { + fn test_execute_remittance_flow_savings_failure_rolls_back() { let ( env, orchestrator_id, @@ -1580,12 +392,14 @@ mod tests { remittance_split_id, savings_id, bills_id, - _insurance_id, + insurance_id, user, ) = setup_test_env(); let client = OrchestratorClient::new(&env, &orchestrator_id); + // Execute remittance flow with invalid goal_id (999) + // The mock will panic, but the orchestrator catches it and returns an error let result = client.try_execute_remittance_flow( &user, &10000, @@ -1593,61 +407,62 @@ mod tests { &remittance_split_id, &savings_id, &bills_id, - &orchestrator_id, - &1, - &1, - &1, + &insurance_id, + &999, // invalid goal_id - will cause failure + &1, // valid bill_id + &1, // valid policy_id ); + // Should fail (panic gets caught and converted to error) assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::SelfReferenceNotAllowed - ); } #[test] - fn test_execute_remittance_flow_duplicate_addresses_fails() { + fn test_execute_remittance_flow_spending_limit_exceeded_fails() { let ( env, orchestrator_id, family_wallet_id, remittance_split_id, savings_id, - _bills_id, + bills_id, insurance_id, user, ) = setup_test_env(); let client = OrchestratorClient::new(&env, &orchestrator_id); + // Execute remittance flow with amount exceeding limit (15000 > 10000) let result = client.try_execute_remittance_flow( &user, - &10000, + &15000, &family_wallet_id, &remittance_split_id, &savings_id, - &savings_id, + &bills_id, &insurance_id, - &1, - &1, - &1, + &1, // goal_id + &1, // bill_id + &1, // policy_id ); + // Should fail - the mock returns false for amounts > 10000 + // This gets interpreted as PermissionDenied (since check_spending_limit + // and check_family_wallet_permission use the same mock function) assert!(result.is_err()); assert_eq!( result.unwrap_err().unwrap(), - OrchestratorError::DuplicateContractAddress + OrchestratorError::PermissionDenied ); } #[test] - fn test_execute_remittance_flow_family_wallet_duplicate_fails() { + fn test_execute_remittance_flow_invalid_amount_fails() { let ( env, orchestrator_id, family_wallet_id, - _remittance_split_id, + remittance_split_id, savings_id, bills_id, insurance_id, @@ -1656,54 +471,52 @@ mod tests { let client = OrchestratorClient::new(&env, &orchestrator_id); + // Execute remittance flow with invalid amount (0) let result = client.try_execute_remittance_flow( &user, - &10000, - &family_wallet_id, + &0, // invalid amount &family_wallet_id, + &remittance_split_id, &savings_id, &bills_id, &insurance_id, - &1, - &1, - &1, + &1, // goal_id + &1, // bill_id + &1, // policy_id ); + // Should fail with InvalidAmount assert!(result.is_err()); assert_eq!( result.unwrap_err().unwrap(), - OrchestratorError::DuplicateContractAddress + OrchestratorError::InvalidAmount ); } #[test] - fn test_execute_remittance_flow_all_same_address_fails() { - let env = Env::default(); - env.mock_all_auths(); + fn test_get_execution_stats_succeeds() { + let (env, orchestrator_id, _, _, _, _, _, _) = setup_test_env(); - let orchestrator_id = env.register_contract(None, Orchestrator); - let single_contract = env.register_contract(None, MockFamilyWallet); - let user = generate_test_address(&env); + let client = OrchestratorClient::new(&env, &orchestrator_id); + + // Get initial stats (should be all zeros) + let stats = client.get_execution_stats(); + + assert_eq!(stats.total_flows_executed, 0); + assert_eq!(stats.total_flows_failed, 0); + assert_eq!(stats.total_amount_processed, 0); + assert_eq!(stats.last_execution, 0); + } + + #[test] + fn test_get_audit_log_succeeds() { + let (env, orchestrator_id, _, _, _, _, _, _) = setup_test_env(); let client = OrchestratorClient::new(&env, &orchestrator_id); - let result = client.try_execute_remittance_flow( - &user, - &10000, - &single_contract, - &single_contract, - &single_contract, - &single_contract, - &single_contract, - &1, - &1, - &1, - ); + // Get audit log (should be empty initially) + let log = client.get_audit_log(&0, &10); - assert!(result.is_err()); - assert_eq!( - result.unwrap_err().unwrap(), - OrchestratorError::DuplicateContractAddress - ); + assert_eq!(log.len(), 0); } } diff --git a/remittance_split/Cargo.toml b/remittance_split/Cargo.toml index 9ac0d488..49b00c6e 100644 --- a/remittance_split/Cargo.toml +++ b/remittance_split/Cargo.toml @@ -7,8 +7,10 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } + + diff --git a/remittance_split/src/lib.rs b/remittance_split/src/lib.rs index e1c25662..97f51442 100644 --- a/remittance_split/src/lib.rs +++ b/remittance_split/src/lib.rs @@ -292,9 +292,9 @@ impl RemittanceSplit { return Err(RemittanceSplitError::Unauthorized); } } - Some(current_admin) => { + Some(ref current_admin) => { // Admin transfer - only current admin can transfer - if current_admin != caller { + if current_admin != &caller { return Err(RemittanceSplitError::Unauthorized); } } diff --git a/remittance_split/src/test.rs b/remittance_split/src/test.rs index 69e64309..5cfd7065 100644 --- a/remittance_split/src/test.rs +++ b/remittance_split/src/test.rs @@ -237,24 +237,6 @@ fn test_calculate_complex_rounding() { assert_eq!(amounts.get(3).unwrap(), 410); } -#[test] -fn test_create_remittance_schedule_succeeds() { - setup_test_env!(env, RemittanceSplit, RemittanceSplitClient, client, owner); - set_ledger_time(&env, 1000); - - client.initialize_split(&owner, &0, &50, &30, &15, &5); - - let schedule_id = client.create_remittance_schedule(&owner, &10000, &3000, &86400); - assert_eq!(schedule_id, 1); - - let schedule = client.get_remittance_schedule(&schedule_id); - assert!(schedule.is_some()); - let schedule = schedule.unwrap(); - assert_eq!(schedule.amount, 10000); - assert_eq!(schedule.next_due, 3000); - assert_eq!(schedule.interval, 86400); - assert!(schedule.active); -} // --------------------------------------------------------------------------- // distribute_usdc — happy path // --------------------------------------------------------------------------- @@ -901,8 +883,10 @@ fn test_export_snapshot_contains_correct_schema_version() { let contract_id = env.register_contract(None, RemittanceSplit); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); let snapshot = client.export_snapshot(&owner).unwrap(); assert_eq!( @@ -919,8 +903,10 @@ fn test_import_snapshot_current_schema_version_succeeds() { let contract_id = env.register_contract(None, RemittanceSplit); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); let snapshot = client.export_snapshot(&owner).unwrap(); assert_eq!(snapshot.schema_version, 1); @@ -938,8 +924,10 @@ fn test_import_snapshot_future_schema_version_rejected() { let contract_id = env.register_contract(None, RemittanceSplit); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); let mut snapshot = client.export_snapshot(&owner).unwrap(); // Simulate a snapshot produced by a newer contract version. @@ -962,8 +950,10 @@ fn test_import_snapshot_too_old_schema_version_rejected() { let contract_id = env.register_contract(None, RemittanceSplit); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); let mut snapshot = client.export_snapshot(&owner).unwrap(); // Simulate a snapshot too old to import. @@ -986,8 +976,10 @@ fn test_import_snapshot_tampered_checksum_rejected() { let contract_id = env.register_contract(None, RemittanceSplit); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); let mut snapshot = client.export_snapshot(&owner).unwrap(); snapshot.checksum = snapshot.checksum.wrapping_add(1); @@ -1008,8 +1000,10 @@ fn test_snapshot_export_import_roundtrip_restores_config() { let contract_id = env.register_contract(None, RemittanceSplit); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); // Update so there is something interesting to round-trip. // Note: update_split checks the nonce but does NOT increment it. @@ -1038,8 +1032,10 @@ fn test_import_snapshot_unauthorized_caller_rejected() { let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); let other = Address::generate(&env); + let token_admin = Address::generate(&env); + let token_id = setup_token(&env, &token_admin, &owner, 0); - client.initialize_split(&owner, &0, &50, &30, &15, &5); + client.initialize_split(&owner, &0, &token_id, &50, &30, &15, &5); let snapshot = client.export_snapshot(&owner).unwrap(); diff --git a/remittance_split/test_snapshots/test/test_calculate_split_events.1.json b/remittance_split/test_snapshots/test/test_calculate_split_events.1.json index 5dba6e7c..14413e9b 100644 --- a/remittance_split/test_snapshots/test/test_calculate_split_events.1.json +++ b/remittance_split/test_snapshots/test/test_calculate_split_events.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -41,7 +42,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -288,130 +289,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -525,54 +402,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "i128": { - "hi": 0, - "lo": 300 - } - }, - { - "i128": { - "hi": 0, - "lo": 150 - } - }, - { - "i128": { - "hi": 0, - "lo": 50 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_get_remittance_schedules.1.json b/remittance_split/test_snapshots/test/test_get_remittance_schedules.1.json index e82861a3..5adc83f2 100644 --- a/remittance_split/test_snapshots/test/test_get_remittance_schedules.1.json +++ b/remittance_split/test_snapshots/test/test_get_remittance_schedules.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -103,14 +104,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -487,7 +488,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -520,7 +521,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -553,7 +554,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -586,7 +587,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -607,524 +608,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "schedule" - }, - { - "vec": [ - { - "symbol": "Created" - } - ] - } - ], - "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_remittance_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 4000 - }, - { - "u64": 172800 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "schedule" - }, - { - "vec": [ - { - "symbol": "Created" - } - ] - } - ], - "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_remittance_schedule" - } - ], - "data": { - "u32": 2 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_remittance_schedules" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_remittance_schedules" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 3000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 172800 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 4000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_modify_remittance_schedule.1.json b/remittance_split/test_snapshots/test/test_modify_remittance_schedule.1.json index 0a199cde..f1097528 100644 --- a/remittance_split/test_snapshots/test/test_modify_remittance_schedule.1.json +++ b/remittance_split/test_snapshots/test/test_modify_remittance_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -106,14 +107,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -400,7 +401,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -433,7 +434,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -466,7 +467,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -499,7 +500,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -520,438 +521,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "schedule" - }, - { - "vec": [ - { - "symbol": "Created" - } - ] - } - ], - "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_remittance_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "modify_remittance_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 15000 - } - }, - { - "u64": 4000 - }, - { - "u64": 172800 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "schedule" - }, - { - "vec": [ - { - "symbol": "Modified" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "modify_remittance_schedule" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_remittance_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_remittance_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 172800 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 4000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_remittance_schedule_validation.1.json b/remittance_split/test_snapshots/test/test_remittance_schedule_validation.1.json index 812f0c11..43e0919b 100644 --- a/remittance_split/test_snapshots/test/test_remittance_schedule_validation.1.json +++ b/remittance_split/test_snapshots/test/test_remittance_schedule_validation.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -41,14 +42,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 5000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -228,7 +229,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -261,7 +262,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -282,249 +283,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "data": { - "error": { - "contract": 10 - } - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 10 - } - } - ], - "data": { - "string": "escalating Ok(ScErrorType::Contract) frame-exit to Err" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "contract": 10 - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "create_remittance_schedule" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_remittance_schedule_zero_amount.1.json b/remittance_split/test_snapshots/test/test_remittance_schedule_zero_amount.1.json index ec82f42b..a5facf6b 100644 --- a/remittance_split/test_snapshots/test/test_remittance_schedule_zero_amount.1.json +++ b/remittance_split/test_snapshots/test/test_remittance_schedule_zero_amount.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -41,14 +42,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -228,7 +229,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -261,7 +262,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -282,249 +283,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "create_remittance_schedule" - } - ], - "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": "create_remittance_schedule" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_split_boundary_0_0_100_0.1.json b/remittance_split/test_snapshots/test/test_split_boundary_0_0_100_0.1.json index 9e2b8efd..8a078843 100644 --- a/remittance_split/test_snapshots/test/test_split_boundary_0_0_100_0.1.json +++ b/remittance_split/test_snapshots/test/test_split_boundary_0_0_100_0.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -42,7 +43,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -289,190 +290,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 0 - }, - { - "u32": 0 - }, - { - "u32": 100 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 0 - }, - { - "u32": 100 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -586,54 +403,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_split_boundary_0_100_0_0.1.json b/remittance_split/test_snapshots/test/test_split_boundary_0_100_0_0.1.json index e0cf340a..a919022e 100644 --- a/remittance_split/test_snapshots/test/test_split_boundary_0_100_0_0.1.json +++ b/remittance_split/test_snapshots/test/test_split_boundary_0_100_0_0.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -42,7 +43,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -289,190 +290,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 0 - }, - { - "u32": 100 - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 0 - }, - { - "u32": 100 - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -586,54 +403,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/remittance_split/test_snapshots/test/test_update_split_boundary_percentages.1.json b/remittance_split/test_snapshots/test/test_update_split_boundary_percentages.1.json index c1a66437..8bfa9178 100644 --- a/remittance_split/test_snapshots/test/test_update_split_boundary_percentages.1.json +++ b/remittance_split/test_snapshots/test/test_update_split_boundary_percentages.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -112,7 +113,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -425,146 +426,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 0 - }, - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Initialized" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "initialize_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "update_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 1 - }, - { - "u32": 100 - }, - { - "u32": 0 - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -574,41 +435,53 @@ "v0": { "topics": [ { - "symbol": "init" + "symbol": "calc" } ], "data": { "map": [ { "key": { - "symbol": "bills_percent" + "symbol": "bills_amount" }, "val": { - "u32": 0 + "i128": { + "hi": 0, + "lo": 250 + } } }, { "key": { - "symbol": "insurance_percent" + "symbol": "insurance_amount" }, "val": { - "u32": 0 + "i128": { + "hi": 0, + "lo": 250 + } } }, { "key": { - "symbol": "savings_percent" + "symbol": "savings_amount" }, "val": { - "u32": 0 + "i128": { + "hi": 0, + "lo": 250 + } } }, { "key": { - "symbol": "spending_percent" + "symbol": "spending_amount" }, "val": { - "u32": 100 + "i128": { + "hi": 0, + "lo": 250 + } } }, { @@ -618,6 +491,17 @@ "val": { "u64": 0 } + }, + { + "key": { + "symbol": "total_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } } ] } @@ -640,120 +524,11 @@ { "vec": [ { - "symbol": "Updated" + "symbol": "Calculated" } ] } ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "update_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 100 - }, - { - "u32": 0 - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_split" - } - ], "data": { "i128": { "hi": 0, @@ -764,575 +539,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "calc" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bills_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "insurance_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "savings_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "spending_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Calculated" - } - ] - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - }, - { - "i128": { - "hi": 0, - "lo": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "update_split" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 1 - }, - { - "u32": 25 - }, - { - "u32": 25 - }, - { - "u32": 25 - }, - { - "u32": 25 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "init" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bills_percent" - }, - "val": { - "u32": 25 - } - }, - { - "key": { - "symbol": "insurance_percent" - }, - "val": { - "u32": 25 - } - }, - { - "key": { - "symbol": "savings_percent" - }, - "val": { - "u32": 25 - } - }, - { - "key": { - "symbol": "spending_percent" - }, - "val": { - "u32": 25 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Updated" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "update_split" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 25 - }, - { - "u32": 25 - }, - { - "u32": 25 - }, - { - "u32": 25 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "calc" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bills_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "insurance_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "savings_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "spending_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 250 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 0 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "split" - }, - { - "vec": [ - { - "symbol": "Calculated" - } - ] - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 250 - } - }, - { - "i128": { - "hi": 0, - "lo": 250 - } - }, - { - "i128": { - "hi": 0, - "lo": 250 - } - }, - { - "i128": { - "hi": 0, - "lo": 250 - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/remittance_split/tests/fuzz_tests.rs b/remittance_split/tests/fuzz_tests.rs index 7150aaf9..822a5d22 100644 --- a/remittance_split/tests/fuzz_tests.rs +++ b/remittance_split/tests/fuzz_tests.rs @@ -67,7 +67,7 @@ fn fuzz_calculate_split_sum_preservation() { for (total_amount, sp, sg, sb, si) in test_cases { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -90,7 +90,7 @@ fn fuzz_calculate_split_sum_preservation() { fn fuzz_calculate_split_small_amounts() { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -117,7 +117,7 @@ fn fuzz_rounding_behavior() { for (sp, sg, sb, si) in prime_percentages { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -135,7 +135,7 @@ fn fuzz_rounding_behavior() { fn fuzz_invalid_amounts() { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -160,7 +160,7 @@ fn fuzz_invalid_percentages() { for (sp, sg, sb, si) in invalid_percentages { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -176,7 +176,7 @@ fn fuzz_invalid_percentages() { fn fuzz_large_amounts() { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -203,7 +203,7 @@ fn fuzz_single_category_splits() { for (sp, sg, sb, si) in single_category_splits { let env = Env::default(); env.mock_all_auths(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); let owner = Address::generate(&env); diff --git a/remittance_split/tests/gas_bench.rs b/remittance_split/tests/gas_bench.rs index 03686825..4e01ca7a 100644 --- a/remittance_split/tests/gas_bench.rs +++ b/remittance_split/tests/gas_bench.rs @@ -19,7 +19,7 @@ fn bench_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 100_000, }); - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -28,7 +28,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -40,7 +40,7 @@ where #[test] fn bench_distribute_usdc_worst_case() { let env = bench_env(); - let contract_id = env.register_contract(None, RemittanceSplit); + let contract_id = env.register(RemittanceSplit, ()); let client = RemittanceSplitClient::new(&env, &contract_id); // The payer is the split owner — distribute_usdc requires caller == config.owner @@ -88,12 +88,9 @@ fn bench_create_remittance_schedule() { let next_due = env.ledger().timestamp() + 86400; // 1 day from now let interval = 2_592_000u64; // 30 days in seconds - let (cpu, mem, result) = measure(&env, || { + let (cpu, mem, schedule_id) = measure(&env, || { client.create_remittance_schedule(&owner, &amount, &next_due, &interval) }); - - assert!(result.is_ok()); - let schedule_id = result.unwrap(); assert_eq!(schedule_id, 1); println!( @@ -118,8 +115,8 @@ fn bench_create_multiple_schedules() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); - assert!(result.is_ok()); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32); } // Measure the 11th schedule creation (worst case with existing schedules) @@ -127,11 +124,10 @@ fn bench_create_multiple_schedules() { let next_due = env.ledger().timestamp() + 86400 * 11; let interval = 2_592_000u64; - let (cpu, mem, result) = measure(&env, || { + let (cpu, mem, schedule_id) = measure(&env, || { client.create_remittance_schedule(&owner, &amount, &next_due, &interval) }); - - assert!(result.is_ok()); + assert_eq!(schedule_id, 11); println!( r#"{{"contract":"remittance_split","method":"create_remittance_schedule","scenario":"11th_schedule_with_existing","cpu":{},"mem":{}}}"#, @@ -153,8 +149,7 @@ fn bench_modify_remittance_schedule() { let interval = 2_592_000u64; // Create initial schedule - let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval) - .unwrap(); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); // Modify the schedule let new_amount = 2_000i128; @@ -165,8 +160,7 @@ fn bench_modify_remittance_schedule() { client.modify_remittance_schedule(&owner, &schedule_id, &new_amount, &new_next_due, &new_interval) }); - assert!(result.is_ok()); - assert!(result.unwrap()); + assert!(result); println!( r#"{{"contract":"remittance_split","method":"modify_remittance_schedule","scenario":"single_schedule_modification","cpu":{},"mem":{}}}"#, @@ -188,15 +182,13 @@ fn bench_cancel_remittance_schedule() { let interval = 2_592_000u64; // Create initial schedule - let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval) - .unwrap(); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); let (cpu, mem, result) = measure(&env, || { client.cancel_remittance_schedule(&owner, &schedule_id) }); - assert!(result.is_ok()); - assert!(result.unwrap()); + assert!(result); println!( r#"{{"contract":"remittance_split","method":"cancel_remittance_schedule","scenario":"single_schedule_cancellation","cpu":{},"mem":{}}}"#, @@ -243,8 +235,8 @@ fn bench_get_remittance_schedules_with_data() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner1, &amount, &next_due, &interval); - assert!(result.is_ok()); + let schedule_id = client.create_remittance_schedule(&owner1, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32); } // Create 3 schedules for owner2 (should not be returned for owner1) @@ -253,8 +245,8 @@ fn bench_get_remittance_schedules_with_data() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 604_800u64; - let result = client.create_remittance_schedule(&owner2, &amount, &next_due, &interval); - assert!(result.is_ok()); + let schedule_id = client.create_remittance_schedule(&owner2, &amount, &next_due, &interval); + assert_eq!(schedule_id, (i + 5) as u32); } let (cpu, mem, schedules) = measure(&env, || { @@ -284,8 +276,7 @@ fn bench_get_remittance_schedule_single() { let interval = 2_592_000u64; // Create schedule - let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval) - .unwrap(); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); let (cpu, mem, schedule) = measure(&env, || { client.get_remittance_schedule(&schedule_id) @@ -318,8 +309,8 @@ fn bench_schedule_operations_worst_case() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); - assert!(result.is_ok()); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32); } // Measure query performance with 50 schedules diff --git a/remittance_split/tests/standalone_gas_test.rs b/remittance_split/tests/standalone_gas_test.rs index 7e0828b5..92f2a324 100644 --- a/remittance_split/tests/standalone_gas_test.rs +++ b/remittance_split/tests/standalone_gas_test.rs @@ -26,7 +26,7 @@ fn create_test_env() -> Env { }); // Reset budget for clean measurement - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -36,7 +36,7 @@ fn measure_gas(env: &Env, operation: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); @@ -60,13 +60,10 @@ fn test_create_schedule_gas_measurement() { let next_due = env.ledger().timestamp() + 86400; // 1 day from now let interval = 2_592_000u64; // 30 days - let (cpu, mem, result) = measure_gas(&env, || { + let (cpu, mem, schedule_id) = measure_gas(&env, || { client.create_remittance_schedule(&owner, &amount, &next_due, &interval) }); - // Validate the operation succeeded - assert!(result.is_ok(), "Schedule creation should succeed"); - let schedule_id = result.unwrap(); assert_eq!(schedule_id, 1, "First schedule should have ID 1"); // Validate gas measurements are reasonable @@ -91,8 +88,7 @@ fn test_modify_schedule_gas_measurement() { let interval = 2_592_000u64; // Create initial schedule - let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval) - .expect("Initial schedule creation should succeed"); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); // Measure modification let new_amount = 2_000i128; @@ -103,9 +99,7 @@ fn test_modify_schedule_gas_measurement() { client.modify_remittance_schedule(&owner, &schedule_id, &new_amount, &new_next_due, &new_interval) }); - // Validate the operation succeeded - assert!(result.is_ok(), "Schedule modification should succeed"); - assert!(result.unwrap(), "Modification should return true"); + assert!(result, "Modification should return true"); // Validate gas measurements assert!(cpu > 0, "CPU cost should be measured"); @@ -129,17 +123,14 @@ fn test_cancel_schedule_gas_measurement() { let interval = 2_592_000u64; // Create initial schedule - let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval) - .expect("Initial schedule creation should succeed"); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); // Measure cancellation let (cpu, mem, result) = measure_gas(&env, || { client.cancel_remittance_schedule(&owner, &schedule_id) }); - // Validate the operation succeeded - assert!(result.is_ok(), "Schedule cancellation should succeed"); - assert!(result.unwrap(), "Cancellation should return true"); + assert!(result, "Cancellation should return true"); // Validate gas measurements assert!(cpu > 0, "CPU cost should be measured"); @@ -190,8 +181,8 @@ fn test_query_schedules_with_data_gas_measurement() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); - assert!(result.is_ok(), "Schedule {} creation should succeed", i); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32, "Schedule {} creation should succeed", i); } // Measure query with data @@ -224,8 +215,7 @@ fn test_query_single_schedule_gas_measurement() { let interval = 2_592_000u64; // Create schedule - let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval) - .expect("Schedule creation should succeed"); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); // Measure single lookup let (cpu, mem, schedule) = measure_gas(&env, || { @@ -262,8 +252,8 @@ fn test_gas_scaling_with_multiple_schedules() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); - assert!(result.is_ok(), "Schedule {} creation should succeed", i); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32, "Schedule {} creation should succeed", i); } // Measure creating the 11th schedule (with existing storage) @@ -271,13 +261,10 @@ fn test_gas_scaling_with_multiple_schedules() { let next_due = env.ledger().timestamp() + 86400 * 11; let interval = 2_592_000u64; - let (cpu, mem, result) = measure_gas(&env, || { + let (cpu, mem, schedule_id) = measure_gas(&env, || { client.create_remittance_schedule(&owner, &amount, &next_due, &interval) }); - // Validate the operation succeeded - assert!(result.is_ok(), "11th schedule creation should succeed"); - let schedule_id = result.unwrap(); assert_eq!(schedule_id, 11, "Should be the 11th schedule"); // Validate gas measurements show reasonable scaling @@ -305,8 +292,8 @@ fn test_data_isolation_security() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner1, &amount, &next_due, &interval); - assert!(result.is_ok(), "Owner1 schedule {} creation should succeed", i); + let schedule_id = client.create_remittance_schedule(&owner1, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32, "Owner1 schedule {} creation should succeed", i); } // Create schedules for owner2 @@ -315,8 +302,8 @@ fn test_data_isolation_security() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 604_800u64; - let result = client.create_remittance_schedule(&owner2, &amount, &next_due, &interval); - assert!(result.is_ok(), "Owner2 schedule {} creation should succeed", i); + let schedule_id = client.create_remittance_schedule(&owner2, &amount, &next_due, &interval); + assert_eq!(schedule_id, (i + 3) as u32, "Owner2 schedule {} creation should succeed", i); } // Validate data isolation @@ -348,7 +335,7 @@ fn test_input_validation_security() { let owner =
::generate(&env); // Test invalid amount (zero) - let result = client.create_remittance_schedule( + let result = client.try_create_remittance_schedule( &owner, &0i128, // Invalid: zero amount &(env.ledger().timestamp() + 86400), @@ -357,7 +344,7 @@ fn test_input_validation_security() { assert!(result.is_err(), "Zero amount should be rejected"); // Test invalid amount (negative) - let result = client.create_remittance_schedule( + let result = client.try_create_remittance_schedule( &owner, &(-1000i128), // Invalid: negative amount &(env.ledger().timestamp() + 86400), @@ -366,7 +353,7 @@ fn test_input_validation_security() { assert!(result.is_err(), "Negative amount should be rejected"); // Test invalid due date (past) - let result = client.create_remittance_schedule( + let result = client.try_create_remittance_schedule( &owner, &1000i128, &(env.ledger().timestamp() - 86400), // Invalid: past date @@ -381,7 +368,7 @@ fn test_input_validation_security() { &(env.ledger().timestamp() + 86400), &2_592_000u64 ); - assert!(result.is_ok(), "Valid parameters should succeed"); + assert_eq!(result, 1, "Valid parameters should succeed"); println!("✅ Input validation security verified"); } @@ -404,8 +391,6 @@ fn test_complete_schedule_lifecycle() { let (create_cpu, create_mem, schedule_id) = measure_gas(&env, || { client.create_remittance_schedule(&owner, &amount, &next_due, &interval) }); - assert!(schedule_id.is_ok(), "Schedule creation should succeed"); - let schedule_id = schedule_id.unwrap(); println!(" Create - CPU: {}, Memory: {}", create_cpu, create_mem); // 2. Query single schedule @@ -430,14 +415,14 @@ fn test_complete_schedule_lifecycle() { let (modify_cpu, modify_mem, modified) = measure_gas(&env, || { client.modify_remittance_schedule(&owner, &schedule_id, &new_amount, &new_next_due, &new_interval) }); - assert!(modified.is_ok() && modified.unwrap(), "Schedule modification should succeed"); + assert!(modified, "Schedule modification should succeed"); println!(" Modify - CPU: {}, Memory: {}", modify_cpu, modify_mem); // 5. Cancel schedule let (cancel_cpu, cancel_mem, cancelled) = measure_gas(&env, || { client.cancel_remittance_schedule(&owner, &schedule_id) }); - assert!(cancelled.is_ok() && cancelled.unwrap(), "Schedule cancellation should succeed"); + assert!(cancelled, "Schedule cancellation should succeed"); println!(" Cancel - CPU: {}, Memory: {}", cancel_cpu, cancel_mem); // 6. Verify cancellation @@ -470,8 +455,8 @@ fn test_performance_stress() { let next_due = env.ledger().timestamp() + 86400 * i; let interval = 2_592_000u64; - let result = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); - assert!(result.is_ok(), "Schedule {} creation should succeed", i); + let schedule_id = client.create_remittance_schedule(&owner, &amount, &next_due, &interval); + assert_eq!(schedule_id, i as u32, "Schedule {} creation should succeed", i); } // Measure query performance with 20 schedules @@ -486,4 +471,4 @@ fn test_performance_stress() { assert!(mem < 500_000, "Memory cost should remain reasonable with 20 schedules"); println!("✅ Stress test passed - 20 schedules query: CPU: {}, Memory: {}", cpu, mem); -} \ No newline at end of file +} diff --git a/remitwise-common/Cargo.toml b/remitwise-common/Cargo.toml index 926e6e4b..c99a09a3 100644 --- a/remitwise-common/Cargo.toml +++ b/remitwise-common/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" publish = false [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" [lib] crate-type = ["cdylib", "rlib"] diff --git a/remitwise-common/src/lib.rs b/remitwise-common/src/lib.rs index 038c09f7..088ea446 100644 --- a/remitwise-common/src/lib.rs +++ b/remitwise-common/src/lib.rs @@ -13,6 +13,19 @@ pub enum Category { Insurance = 4, } +/// Configuration for creating a new bill +#[contracttype] +#[derive(Clone, Debug)] +pub struct CreateBillConfig { + pub name: soroban_sdk::String, + pub amount: i128, + pub due_date: u64, + pub recurring: bool, + pub frequency_days: u32, + pub external_ref: Option, + pub currency: soroban_sdk::String, +} + /// Family roles for access control #[contracttype] #[derive(Clone, Copy, Debug, Eq, PartialEq, PartialOrd, Ord)] @@ -164,8 +177,6 @@ impl RemitwiseEvents { // Standardized TTL Constants (Ledger Counts) pub const DAY_IN_LEDGERS: u32 = 17280; // ~5 seconds per ledger -pub const INSTANCE_BUMP_AMOUNT: u32 = 30 * DAY_IN_LEDGERS; // 30 days -pub const INSTANCE_LIFETIME_THRESHOLD: u32 = 7 * DAY_IN_LEDGERS; // 7 days pub const PERSISTENT_BUMP_AMOUNT: u32 = 60 * DAY_IN_LEDGERS; // 60 days pub const PERSISTENT_LIFETIME_THRESHOLD: u32 = 15 * DAY_IN_LEDGERS; // 15 days diff --git a/reporting/Cargo.toml b/reporting/Cargo.toml index 001bb6a7..4d3e9912 100644 --- a/reporting/Cargo.toml +++ b/reporting/Cargo.toml @@ -7,9 +7,9 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" remitwise-common = { path = "../remitwise-common" } [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } diff --git a/reporting/test_snapshots/tests/test_archive_empty_when_no_old_reports.1.json b/reporting/test_snapshots/tests/test_archive_empty_when_no_old_reports.1.json index fe9a18b4..237233d0 100644 --- a/reporting/test_snapshots/tests/test_archive_empty_when_no_old_reports.1.json +++ b/reporting/test_snapshots/tests/test_archive_empty_when_no_old_reports.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -47,13 +48,13 @@ ] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -236,86 +237,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -349,29 +270,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "u32": 0 - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_archive_old_reports.1.json b/reporting/test_snapshots/tests/test_archive_old_reports.1.json index 3e4afe98..3ae7eb06 100644 --- a/reporting/test_snapshots/tests/test_archive_old_reports.1.json +++ b/reporting/test_snapshots/tests/test_archive_old_reports.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -583,13 +588,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -949,7 +954,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -981,7 +986,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1013,7 +1018,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1045,7 +1050,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1071,3420 +1076,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_stored_report" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_archived_reports" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_archived_reports" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "archived_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "u32": 87 - } - }, - { - "key": { - "symbol": "period_key" - }, - "val": { - "u64": 202401 - } - }, - { - "key": { - "symbol": "user" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_archive_ttl_extended_on_archive_reports.1.json b/reporting/test_snapshots/tests/test_archive_ttl_extended_on_archive_reports.1.json index 7e2379d8..5662f692 100644 --- a/reporting/test_snapshots/tests/test_archive_ttl_extended_on_archive_reports.1.json +++ b/reporting/test_snapshots/tests/test_archive_ttl_extended_on_archive_reports.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -581,7 +586,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1069,2743 +1074,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_archive_unauthorized.1.json b/reporting/test_snapshots/tests/test_archive_unauthorized.1.json index 7923a945..b0509696 100644 --- a/reporting/test_snapshots/tests/test_archive_unauthorized.1.json +++ b/reporting/test_snapshots/tests/test_archive_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,14 +27,14 @@ [] ], "ledger": { - "protocol_version": 20, - "sequence_number": 1, - "timestamp": 1704067200, + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, - "max_entry_ttl": 3110400, + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, "ledger_entries": [ [ { @@ -73,7 +74,7 @@ }, "ext": "v0" }, - 518401 + 518400 ] ], [ @@ -106,7 +107,7 @@ }, "ext": "v0" }, - 3110400 + 6311999 ] ], [ @@ -127,213 +128,10 @@ }, "ext": "v0" }, - 518401 + 518400 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only admin can archive reports' from contract function 'Symbol(obj#15)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract call failed" - }, - { - "symbol": "archive_old_reports" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 2000000000 - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_calculate_health_score.1.json b/reporting/test_snapshots/tests/test_calculate_health_score.1.json index a9e9c97e..eb5457ca 100644 --- a/reporting/test_snapshots/tests/test_calculate_health_score.1.json +++ b/reporting/test_snapshots/tests/test_calculate_health_score.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -376,781 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_health_score" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_health_score" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_cleanup_old_reports.1.json b/reporting/test_snapshots/tests/test_cleanup_old_reports.1.json index 216af9cb..b1e93e7e 100644 --- a/reporting/test_snapshots/tests/test_cleanup_old_reports.1.json +++ b/reporting/test_snapshots/tests/test_cleanup_old_reports.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -604,13 +609,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -946,7 +951,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -978,7 +983,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1010,7 +1015,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1042,7 +1047,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1068,2976 +1073,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_archived_reports" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_archived_reports" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "archived_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "u32": 87 - } - }, - { - "key": { - "symbol": "period_key" - }, - "val": { - "u64": 202401 - } - }, - { - "key": { - "symbol": "user" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cleanup_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ArchivesCleaned" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "cleanup_old_reports" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_archived_reports" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_archived_reports" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_cleanup_unauthorized.1.json b/reporting/test_snapshots/tests/test_cleanup_unauthorized.1.json index ae194c6a..b0509696 100644 --- a/reporting/test_snapshots/tests/test_cleanup_unauthorized.1.json +++ b/reporting/test_snapshots/tests/test_cleanup_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,14 +27,14 @@ [] ], "ledger": { - "protocol_version": 20, - "sequence_number": 1, - "timestamp": 1704067200, + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, - "max_entry_ttl": 3110400, + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, "ledger_entries": [ [ { @@ -73,7 +74,7 @@ }, "ext": "v0" }, - 518401 + 518400 ] ], [ @@ -106,7 +107,7 @@ }, "ext": "v0" }, - 3110400 + 6311999 ] ], [ @@ -127,213 +128,10 @@ }, "ext": "v0" }, - 518401 + 518400 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cleanup_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only admin can cleanup reports' from contract function 'Symbol(obj#15)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract call failed" - }, - { - "symbol": "cleanup_old_reports" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 2000000000 - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "escalating error to panic" - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_configure_addresses_unauthorized.1.json b/reporting/test_snapshots/tests/test_configure_addresses_unauthorized.1.json index c6fde624..7df37b60 100644 --- a/reporting/test_snapshots/tests/test_configure_addresses_unauthorized.1.json +++ b/reporting/test_snapshots/tests/test_configure_addresses_unauthorized.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,14 +27,14 @@ [] ], "ledger": { - "protocol_version": 20, - "sequence_number": 1, - "timestamp": 1704067200, + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, - "max_entry_ttl": 3110400, + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, "ledger_entries": [ [ { @@ -73,7 +74,7 @@ }, "ext": "v0" }, - 518401 + 518400 ] ], [ @@ -106,7 +107,7 @@ }, "ext": "v0" }, - 3110400 + 6311999 ] ], [ @@ -127,207 +128,10 @@ }, "ext": "v0" }, - 518401 + 518400 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "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": "configure_addresses" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_bill_compliance_report.1.json b/reporting/test_snapshots/tests/test_get_bill_compliance_report.1.json index 474e8c68..eb5457ca 100644 --- a/reporting/test_snapshots/tests/test_get_bill_compliance_report.1.json +++ b/reporting/test_snapshots/tests/test_get_bill_compliance_report.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -376,580 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_bill_compliance_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_bill_compliance_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_financial_health_report.1.json b/reporting/test_snapshots/tests/test_get_financial_health_report.1.json index e27795dc..c15ba893 100644 --- a/reporting/test_snapshots/tests/test_get_financial_health_report.1.json +++ b/reporting/test_snapshots/tests/test_get_financial_health_report.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -377,1564 +382,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1961,502 +408,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_insurance_report.1.json b/reporting/test_snapshots/tests/test_get_insurance_report.1.json index 785c1724..eb5457ca 100644 --- a/reporting/test_snapshots/tests/test_get_insurance_report.1.json +++ b/reporting/test_snapshots/tests/test_get_insurance_report.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -376,488 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_insurance_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_insurance_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_remittance_summary.1.json b/reporting/test_snapshots/tests/test_get_remittance_summary.1.json index e84a5d3a..eb5457ca 100644 --- a/reporting/test_snapshots/tests/test_get_remittance_summary.1.json +++ b/reporting/test_snapshots/tests/test_get_remittance_summary.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -376,520 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_remittance_summary" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_remittance_summary" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_savings_report.1.json b/reporting/test_snapshots/tests/test_get_savings_report.1.json index 49481460..eb5457ca 100644 --- a/reporting/test_snapshots/tests/test_get_savings_report.1.json +++ b/reporting/test_snapshots/tests/test_get_savings_report.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -376,462 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_savings_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_savings_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_trend_analysis.1.json b/reporting/test_snapshots/tests/test_get_trend_analysis.1.json index 894c28df..5583cdd5 100644 --- a/reporting/test_snapshots/tests/test_get_trend_analysis.1.json +++ b/reporting/test_snapshots/tests/test_get_trend_analysis.1.json @@ -4,16 +4,17 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -45,7 +46,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -66,118 +67,10 @@ }, "ext": "v0" }, - 10 + 1 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_trend_analysis" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 15000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_trend_analysis" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "change_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "change_percentage" - }, - "val": { - "i32": 50 - } - }, - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - }, - { - "key": { - "symbol": "previous_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_get_trend_analysis_decrease.1.json b/reporting/test_snapshots/tests/test_get_trend_analysis_decrease.1.json index dde41e08..5583cdd5 100644 --- a/reporting/test_snapshots/tests/test_get_trend_analysis_decrease.1.json +++ b/reporting/test_snapshots/tests/test_get_trend_analysis_decrease.1.json @@ -4,16 +4,17 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -45,7 +46,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -66,118 +67,10 @@ }, "ext": "v0" }, - 10 + 1 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_trend_analysis" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "i128": { - "hi": 0, - "lo": 8000 - } - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_trend_analysis" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "change_amount" - }, - "val": { - "i128": { - "hi": -1, - "lo": 18446744073709549616 - } - } - }, - { - "key": { - "symbol": "change_percentage" - }, - "val": { - "i32": -20 - } - }, - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 8000 - } - } - }, - { - "key": { - "symbol": "previous_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_health_score_no_goals.1.json b/reporting/test_snapshots/tests/test_health_score_no_goals.1.json index dde144c2..eb5457ca 100644 --- a/reporting/test_snapshots/tests/test_health_score_no_goals.1.json +++ b/reporting/test_snapshots/tests/test_health_score_no_goals.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,13 +65,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -254,7 +259,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -286,7 +291,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -318,7 +323,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -350,7 +355,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -376,636 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "calculate_health_score" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_health_score" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 75 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_init_twice_fails.1.json b/reporting/test_snapshots/tests/test_init_twice_fails.1.json index 50f5fe38..7bfe2f55 100644 --- a/reporting/test_snapshots/tests/test_init_twice_fails.1.json +++ b/reporting/test_snapshots/tests/test_init_twice_fails.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,14 +27,14 @@ [] ], "ledger": { - "protocol_version": 20, - "sequence_number": 1, - "timestamp": 1704067200, + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, - "max_entry_ttl": 3110400, + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, "ledger_entries": [ [ { @@ -73,7 +74,7 @@ }, "ext": "v0" }, - 518401 + 518400 ] ], [ @@ -106,7 +107,7 @@ }, "ext": "v0" }, - 3110400 + 6311999 ] ], [ @@ -127,173 +128,10 @@ }, "ext": "v0" }, - 518401 + 518400 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "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": "init" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_instance_ttl_extended_on_init.1.json b/reporting/test_snapshots/tests/test_instance_ttl_extended_on_init.1.json index 259d1c79..45b74c32 100644 --- a/reporting/test_snapshots/tests/test_instance_ttl_extended_on_init.1.json +++ b/reporting/test_snapshots/tests/test_instance_ttl_extended_on_init.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -26,7 +27,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 100, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -132,53 +133,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_configure_addresses.1.json b/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_configure_addresses.1.json index 65dc23dc..a19440ac 100644 --- a/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_configure_addresses.1.json +++ b/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_configure_addresses.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -60,7 +65,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -376,146 +381,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_store_report.1.json b/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_store_report.1.json index 8f68b956..b84d3c90 100644 --- a/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_store_report.1.json +++ b/reporting/test_snapshots/tests/test_instance_ttl_refreshed_on_store_report.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -559,7 +564,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 1706745600, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -1405,2653 +1410,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_report_data_persists_across_ledger_advancements.1.json b/reporting/test_snapshots/tests/test_report_data_persists_across_ledger_advancements.1.json index 3256b933..139d4b51 100644 --- a/reporting/test_snapshots/tests/test_report_data_persists_across_ledger_advancements.1.json +++ b/reporting/test_snapshots/tests/test_report_data_persists_across_ledger_advancements.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -1061,7 +1066,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1020000, "timestamp": 1711929600, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -2428,6325 +2433,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 15000 - } - }, - { - "u64": 1706745600 - }, - { - "u64": 1709424000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 7500 - } - }, - { - "i128": { - "hi": 0, - "lo": 4500 - } - }, - { - "i128": { - "hi": 0, - "lo": 2250 - } - }, - { - "i128": { - "hi": 0, - "lo": 750 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1709424000 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 0 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 4500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2250 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 750 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 0 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 4500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2250 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 750 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202402 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202402 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202402 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 100 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 0 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 0 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 4500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2250 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 750 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1709424000 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "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 - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_retrieve_nonexistent_report.1.json b/reporting/test_snapshots/tests/test_retrieve_nonexistent_report.1.json index e9a00dd2..5583cdd5 100644 --- a/reporting/test_snapshots/tests/test_retrieve_nonexistent_report.1.json +++ b/reporting/test_snapshots/tests/test_retrieve_nonexistent_report.1.json @@ -4,16 +4,17 @@ "nonce": 0 }, "auth": [ + [], [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -45,7 +46,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -66,65 +67,10 @@ }, "ext": "v0" }, - 10 + 1 ] ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 999999 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_stored_report" - } - ], - "data": "void" - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_storage_stats.1.json b/reporting/test_snapshots/tests/test_storage_stats.1.json index d55ae4ce..f4a10041 100644 --- a/reporting/test_snapshots/tests/test_storage_stats.1.json +++ b/reporting/test_snapshots/tests/test_storage_stats.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -582,13 +587,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -948,7 +953,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -980,7 +985,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1012,7 +1017,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1044,7 +1049,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1070,2887 +1075,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_storage_stats" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_storage_stats" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active_reports" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "archived_reports" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "last_updated" - }, - "val": { - "u64": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportsArchived" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "archive_old_reports" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_storage_stats" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_storage_stats" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active_reports" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "archived_reports" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "last_updated" - }, - "val": { - "u64": 1704067200 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/reporting/test_snapshots/tests/test_store_and_retrieve_report.1.json b/reporting/test_snapshots/tests/test_store_and_retrieve_report.1.json index 78f30ad4..8441054b 100644 --- a/reporting/test_snapshots/tests/test_store_and_retrieve_report.1.json +++ b/reporting/test_snapshots/tests/test_store_and_retrieve_report.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -23,6 +24,10 @@ } ] ], + [], + [], + [], + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -559,13 +564,13 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1704067200, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, - "min_persistent_entry_ttl": 10, - "min_temp_entry_ttl": 10, + "min_persistent_entry_ttl": 1, + "min_temp_entry_ttl": 1, "max_entry_ttl": 3110400, "ledger_entries": [ [ @@ -1283,7 +1288,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1315,7 +1320,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1347,7 +1352,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1379,7 +1384,7 @@ }, "ext": "v0" }, - 10 + 1 ] ], [ @@ -1405,3182 +1410,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "configure_addresses" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "AddressesConfigured" - } - ] - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "configure_addresses" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1704067200 - }, - { - "u64": 1706745600 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_unpaid_bills" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "get_split" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_split" - } - ], - "data": { - "vec": [ - { - "u32": 50 - }, - { - "u32": 30 - }, - { - "u32": 15 - }, - { - "u32": 5 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000004" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000004", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "calculate_split" - } - ], - "data": { - "vec": [ - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "i128": { - "hi": 0, - "lo": 3000 - } - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000005" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000005", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_goals" - } - ], - "data": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 7000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Education" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "current_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "locked" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Emergency" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "unlock_date" - }, - "val": "void" - } - ] - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000006" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000006", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_all_bills_for_owner" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Electricity" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": "void" - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "string": "XLM" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "frequency_days" - }, - "val": { - "u32": 30 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Water" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "paid" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "paid_at" - }, - "val": { - "u64": 1704153600 - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 0 - }, - { - "u32": 50 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_active_policies" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "count" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "coverage_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - }, - { - "key": { - "symbol": "coverage_type" - }, - "val": { - "string": "health" - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "name" - }, - "val": { - "string": "Health Insurance" - } - }, - { - "key": { - "symbol": "next_payment_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - }, - { - "key": { - "symbol": "schedule_id" - }, - "val": "void" - } - ] - } - ] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000007" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000007", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_total_monthly_premium" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 200 - } - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportGenerated" - } - ] - } - ], - "data": { - "u64": 1704067200 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_financial_health_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "store_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "report" - }, - { - "vec": [ - { - "symbol": "ReportStored" - } - ] - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "store_report" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u64": 202401 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_stored_report" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "bill_compliance" - }, - "val": { - "map": [ - { - "key": { - "symbol": "compliance_percentage" - }, - "val": { - "u32": 50 - } - }, - { - "key": { - "symbol": "overdue_bills" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "paid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50 - } - } - }, - { - "key": { - "symbol": "paid_bills" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 150 - } - } - }, - { - "key": { - "symbol": "total_bills" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "unpaid_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100 - } - } - }, - { - "key": { - "symbol": "unpaid_bills" - }, - "val": { - "u32": 1 - } - } - ] - } - }, - { - "key": { - "symbol": "generated_at" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "health_score" - }, - "val": { - "map": [ - { - "key": { - "symbol": "bills_score" - }, - "val": { - "u32": 35 - } - }, - { - "key": { - "symbol": "insurance_score" - }, - "val": { - "u32": 20 - } - }, - { - "key": { - "symbol": "savings_score" - }, - "val": { - "u32": 32 - } - }, - { - "key": { - "symbol": "score" - }, - "val": { - "u32": 87 - } - } - ] - } - }, - { - "key": { - "symbol": "insurance_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "active_policies" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "annual_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 2400 - } - } - }, - { - "key": { - "symbol": "coverage_to_premium_ratio" - }, - "val": { - "u32": 2083 - } - }, - { - "key": { - "symbol": "monthly_premium" - }, - "val": { - "i128": { - "hi": 0, - "lo": 200 - } - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_coverage" - }, - "val": { - "i128": { - "hi": 0, - "lo": 50000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "remittance_summary" - }, - "val": { - "map": [ - { - "key": { - "symbol": "category_breakdown" - }, - "val": { - "vec": [ - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 50 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 3000 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 30 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 15 - } - } - ] - }, - { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "category" - }, - "val": { - "u32": 4 - } - }, - { - "key": { - "symbol": "percentage" - }, - "val": { - "u32": 5 - } - } - ] - } - ] - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_allocated" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "total_received" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - } - ] - } - }, - { - "key": { - "symbol": "savings_report" - }, - "val": { - "map": [ - { - "key": { - "symbol": "completed_goals" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "completion_percentage" - }, - "val": { - "u32": 80 - } - }, - { - "key": { - "symbol": "period_end" - }, - "val": { - "u64": 1706745600 - } - }, - { - "key": { - "symbol": "period_start" - }, - "val": { - "u64": 1704067200 - } - }, - { - "key": { - "symbol": "total_goals" - }, - "val": { - "u32": 2 - } - }, - { - "key": { - "symbol": "total_saved" - }, - "val": { - "i128": { - "hi": 0, - "lo": 12000 - } - } - }, - { - "key": { - "symbol": "total_target" - }, - "val": { - "i128": { - "hi": 0, - "lo": 15000 - } - } - } - ] - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/Cargo.toml b/savings_goals/Cargo.toml index 228d443a..8c5325ae 100644 --- a/savings_goals/Cargo.toml +++ b/savings_goals/Cargo.toml @@ -7,10 +7,10 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "=21.7.7" +soroban-sdk = "22.0.1" [dev-dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } diff --git a/savings_goals/src/lib.rs b/savings_goals/src/lib.rs index cfa0a2c0..edc7f5f2 100644 --- a/savings_goals/src/lib.rs +++ b/savings_goals/src/lib.rs @@ -421,9 +421,9 @@ impl SavingsGoalContract { panic!("Unauthorized: bootstrap requires caller == new_admin"); } } - Some(current_admin) => { + Some(ref current_admin) => { // Admin transfer - only current admin can transfer - if current_admin != caller { + if current_admin != &caller { panic!("Unauthorized: only current upgrade admin can transfer"); } } diff --git a/savings_goals/test_snapshots/test/test_add_to_goal_emits_event.1.json b/savings_goals/test_snapshots/test/test_add_to_goal_emits_event.1.json index 0a7dfe8b..6bccac8c 100644 --- a/savings_goals/test_snapshots/test/test_add_to_goal_emits_event.1.json +++ b/savings_goals/test_snapshots/test/test_add_to_goal_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -66,7 +67,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -75,68 +76,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -428,253 +367,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Medical" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": "Medical" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -773,32 +465,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_to_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_add_to_goal_increments.1.json b/savings_goals/test_snapshots/test/test_add_to_goal_increments.1.json index acde96ae..ad5a5060 100644 --- a/savings_goals/test_snapshots/test/test_add_to_goal_increments.1.json +++ b/savings_goals/test_snapshots/test/test_add_to_goal_increments.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -66,7 +67,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -75,68 +76,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -428,253 +367,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Save" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "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": "Save" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 2000000000 - } - }, - { - "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": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -773,32 +465,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_to_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 500 - } - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_cancel_savings_schedule.1.json b/savings_goals/test_snapshots/test/test_cancel_savings_schedule.1.json index 5a644444..36db7905 100644 --- a/savings_goals/test_snapshots/test/test_cancel_savings_schedule.1.json +++ b/savings_goals/test_snapshots/test/test_cancel_savings_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -94,14 +95,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -371,7 +372,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -404,7 +405,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -437,7 +438,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -470,7 +471,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -491,505 +492,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "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": "Education" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 5000 - } - ] - } - } - } - }, - "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": "Education" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 5000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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_savings_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "cancel_savings_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleCancelled" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "cancel_savings_schedule" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": false - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 3000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_create_goal_emits_event.1.json b/savings_goals/test_snapshots/test/test_create_goal_emits_event.1.json index e6088a64..7fc60bb8 100644 --- a/savings_goals/test_snapshots/test/test_create_goal_emits_event.1.json +++ b/savings_goals/test_snapshots/test/test_create_goal_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -38,7 +39,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -47,68 +48,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -322,93 +261,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Education" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -506,29 +358,6 @@ } }, "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 } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_create_savings_schedule.1.json b/savings_goals/test_snapshots/test/test_create_savings_schedule.1.json index 34f97851..138f2ff1 100644 --- a/savings_goals/test_snapshots/test/test_create_savings_schedule.1.json +++ b/savings_goals/test_snapshots/test/test_create_savings_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -72,14 +73,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -349,7 +350,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -382,7 +383,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -415,7 +416,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -436,415 +437,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "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": "Education" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 5000 - } - ] - } - } - } - }, - "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": "Education" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 5000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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_savings_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 3000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_execute_missed_savings_schedules.1.json b/savings_goals/test_snapshots/test/test_execute_missed_savings_schedules.1.json index caf06f4a..b1ab0ecd 100644 --- a/savings_goals/test_snapshots/test/test_execute_missed_savings_schedules.1.json +++ b/savings_goals/test_snapshots/test/test_execute_missed_savings_schedules.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -73,14 +74,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 262300, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -352,7 +353,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -385,7 +386,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -418,7 +419,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -439,569 +440,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "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": "Education" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 5000 - } - ] - } - } - } - }, - "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": "Education" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 5000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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_savings_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "execute_due_savings_schedules" - } - ], - "data": "void" - } - } - }, - "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": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleMissed" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "u32": 3 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleExecuted" - } - ] - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "execute_due_savings_schedules" - } - ], - "data": { - "vec": [ - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 86400 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": { - "u64": 262300 - } - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 3 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 348600 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_get_goals_empty.1.json b/savings_goals/test_snapshots/test/test_get_goals_empty.1.json index 575ded51..e84de779 100644 --- a/savings_goals/test_snapshots/test/test_get_goals_empty.1.json +++ b/savings_goals/test_snapshots/test/test_get_goals_empty.1.json @@ -4,11 +4,12 @@ "nonce": 0 }, "auth": [ + [], [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -17,68 +18,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -101,7 +40,24 @@ "executable": { "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "storage": null + "storage": [ + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 0 + } + } + ] } } } @@ -134,135 +90,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_goals" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 0 - }, - { - "u32": 0 - } - ] - } - } - } - }, - "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": 0 - } - }, - { - "key": { - "symbol": "items" - }, - "val": { - "vec": [] - } - }, - { - "key": { - "symbol": "next_cursor" - }, - "val": { - "u32": 0 - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_goal_completed_emits_event.1.json b/savings_goals/test_snapshots/test/test_goal_completed_emits_event.1.json index 2fb1bab3..d0e6ec75 100644 --- a/savings_goals/test_snapshots/test/test_goal_completed_emits_event.1.json +++ b/savings_goals/test_snapshots/test/test_goal_completed_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -66,7 +67,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -75,68 +76,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -428,253 +367,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Emergency Fund" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": "Emergency Fund" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -863,32 +555,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_to_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_create_goal.1.json b/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_create_goal.1.json index cd21663a..5a6b000a 100644 --- a/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_create_goal.1.json +++ b/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_create_goal.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -39,7 +40,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 100, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -48,68 +49,6 @@ "min_temp_entry_ttl": 100, "max_entry_ttl": 700000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 199 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 199 - ] - ], [ { "contract_data": { @@ -322,214 +261,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Emergency Fund" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": "Emergency Fund" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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 - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_lock_goal.1.json b/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_lock_goal.1.json index 275edb6d..fd809242 100644 --- a/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_lock_goal.1.json +++ b/savings_goals/test_snapshots/test/test_instance_ttl_extended_on_lock_goal.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -61,7 +62,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 510000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -70,68 +71,6 @@ "min_temp_entry_ttl": 100, "max_entry_ttl": 700000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 199 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 199 - ] - ], [ { "contract_data": { @@ -422,304 +361,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Retirement" - }, - { - "i128": { - "hi": 0, - "lo": 100000 - } - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "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": "Retirement" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 100000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 2000000000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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": "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 - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_instance_ttl_refreshed_on_add_to_goal.1.json b/savings_goals/test_snapshots/test/test_instance_ttl_refreshed_on_add_to_goal.1.json index a51c5dcf..07518000 100644 --- a/savings_goals/test_snapshots/test/test_instance_ttl_refreshed_on_add_to_goal.1.json +++ b/savings_goals/test_snapshots/test/test_instance_ttl_refreshed_on_add_to_goal.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -67,7 +68,7 @@ [] ], "ledger": { - "protocol_version": 20, + "protocol_version": 22, "sequence_number": 510000, "timestamp": 500000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -76,68 +77,6 @@ "min_temp_entry_ttl": 100, "max_entry_ttl": 700000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 199 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 199 - ] - ], [ { "contract_data": { @@ -428,378 +367,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Vacation" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "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": "Vacation" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 2000000000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "added" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "new_total" - }, - "val": { - "i128": { - "hi": 0, - "lo": 500 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 500000 - } - } - ] - } - } - } - }, - "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": 0, - "lo": 500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_to_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 500 - } - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_lock_goal_emits_event.1.json b/savings_goals/test_snapshots/test/test_lock_goal_emits_event.1.json index c195bda3..494fec67 100644 --- a/savings_goals/test_snapshots/test/test_lock_goal_emits_event.1.json +++ b/savings_goals/test_snapshots/test/test_lock_goal_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -82,7 +83,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -91,68 +92,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -513,337 +452,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Lock Event" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": "Lock Event" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": "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": "lock_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -877,29 +485,6 @@ } }, "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 } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_lock_goal_unauthorized_panics.1.json b/savings_goals/test_snapshots/test/test_lock_goal_unauthorized_panics.1.json index 58921d86..e424e4b3 100644 --- a/savings_goals/test_snapshots/test/test_lock_goal_unauthorized_panics.1.json +++ b/savings_goals/test_snapshots/test/test_lock_goal_unauthorized_panics.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -61,7 +62,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -70,68 +71,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -422,434 +361,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Auth Test" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 2000000000 - } - ] - } - } - } - }, - "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": "Auth Test" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 2000000000 - } - }, - { - "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": "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": "lock_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Only the goal owner can lock this goal' from contract function 'Symbol(lock_goal)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "lock_goal" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - }, - { - "u32": 1 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_lock_nonexistent_goal_panics.1.json b/savings_goals/test_snapshots/test/test_lock_nonexistent_goal_panics.1.json index 4b06ebfc..e84de779 100644 --- a/savings_goals/test_snapshots/test/test_lock_nonexistent_goal_panics.1.json +++ b/savings_goals/test_snapshots/test/test_lock_nonexistent_goal_panics.1.json @@ -4,11 +4,12 @@ "nonce": 0 }, "auth": [ + [], [], [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -17,68 +18,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -101,7 +40,24 @@ "executable": { "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, - "storage": null + "storage": [ + { + "key": { + "symbol": "GOALS" + }, + "val": { + "map": [] + } + }, + { + "key": { + "symbol": "NEXT_ID" + }, + "val": { + "u32": 0 + } + } + ] } } } @@ -134,181 +90,5 @@ ] ] }, - "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "lock_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 99 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "log" - } - ], - "data": { - "vec": [ - { - "string": "caught panic 'Goal not found' from contract function 'Symbol(lock_goal)'" - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 99 - } - ] - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "string": "caught error from function" - } - } - } - }, - "failed_call": true - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "error" - }, - { - "error": { - "wasm_vm": "invalid_action" - } - } - ], - "data": { - "vec": [ - { - "string": "contract try_call failed" - }, - { - "symbol": "lock_goal" - }, - { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 99 - } - ] - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_modify_savings_schedule.1.json b/savings_goals/test_snapshots/test/test_modify_savings_schedule.1.json index 51b36c4a..e96b2097 100644 --- a/savings_goals/test_snapshots/test/test_modify_savings_schedule.1.json +++ b/savings_goals/test_snapshots/test/test_modify_savings_schedule.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -106,14 +107,14 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 1000, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -383,7 +384,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -416,7 +417,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -449,7 +450,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -482,7 +483,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -503,517 +504,10 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, - "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": "Education" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 5000 - } - ] - } - } - } - }, - "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": "Education" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 5000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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_savings_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 500 - } - }, - { - "u64": 3000 - }, - { - "u64": 86400 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleCreated" - } - ] - } - ], - "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_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "modify_savings_schedule" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 4000 - }, - { - "u64": 172800 - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "savings" - }, - { - "vec": [ - { - "symbol": "ScheduleModified" - } - ] - } - ], - "data": { - "vec": [ - { - "u32": 1 - }, - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "modify_savings_schedule" - } - ], - "data": { - "bool": true - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "u32": 1 - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "get_savings_schedule" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "active" - }, - "val": { - "bool": true - } - }, - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": 1000 - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "interval" - }, - "val": { - "u64": 172800 - } - }, - { - "key": { - "symbol": "last_executed" - }, - "val": "void" - }, - { - "key": { - "symbol": "missed_count" - }, - "val": { - "u32": 0 - } - }, - { - "key": { - "symbol": "next_due" - }, - "val": { - "u64": 4000 - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - }, - { - "key": { - "symbol": "recurring" - }, - "val": { - "bool": true - } - } - ] - } - } - } - }, - "failed_call": false - } - ] + "events": [] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_multiple_goals_emit_separate_events.1.json b/savings_goals/test_snapshots/test/test_multiple_goals_emit_separate_events.1.json index a301a299..7da19261 100644 --- a/savings_goals/test_snapshots/test/test_multiple_goals_emit_separate_events.1.json +++ b/savings_goals/test_snapshots/test/test_multiple_goals_emit_separate_events.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -100,7 +101,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -109,68 +110,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -626,419 +565,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Goal 1" - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": 0, - "lo": 1000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": 0, - "lo": 2000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": 0, - "lo": 2000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": 0, - "lo": 3000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1136,29 +662,6 @@ } }, "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 } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_unlock_goal_emits_event.1.json b/savings_goals/test_snapshots/test/test_unlock_goal_emits_event.1.json index 4f395d4e..5ecfd01e 100644 --- a/savings_goals/test_snapshots/test/test_unlock_goal_emits_event.1.json +++ b/savings_goals/test_snapshots/test/test_unlock_goal_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -60,7 +61,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -69,68 +70,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -422,247 +361,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Unlock Event" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": "Unlock Event" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": "unlock_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -696,29 +394,6 @@ } }, "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 } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_withdraw_from_goal_emits_event.1.json b/savings_goals/test_snapshots/test/test_withdraw_from_goal_emits_event.1.json index fd0cdbb8..3ef6c762 100644 --- a/savings_goals/test_snapshots/test/test_withdraw_from_goal_emits_event.1.json +++ b/savings_goals/test_snapshots/test/test_withdraw_from_goal_emits_event.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [], [ [ @@ -116,7 +117,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -125,68 +126,6 @@ "min_temp_entry_ttl": 16, "max_entry_ttl": 6312000, "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "GOALS" - }, - "durability": "persistent", - "val": { - "map": [] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "symbol": "NEXT_ID" - }, - "durability": "persistent", - "val": { - "u32": 1 - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], [ { "contract_data": { @@ -616,507 +555,6 @@ ] }, "events": [ - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "init" - } - ], - "data": "void" - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": null, - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_call" - }, - { - "bytes": "0000000000000000000000000000000000000000000000000000000000000001" - }, - { - "symbol": "create_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "string": "Withdraw Event" - }, - { - "i128": { - "hi": 0, - "lo": 5000 - } - }, - { - "u64": 1735689600 - } - ] - } - } - } - }, - "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": "Withdraw Event" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 1735689600 - } - }, - { - "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": "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": "add_to_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 1500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "added" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "new_total" - }, - "val": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - }, - { - "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": 0, - "lo": 1500 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_to_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 1500 - } - } - } - } - }, - "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": 600 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1156,32 +594,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw_from_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 900 - } - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/savings_goals/test_snapshots/test/test_withdraw_time_locked_goal_after_unlock.1.json b/savings_goals/test_snapshots/test/test_withdraw_time_locked_goal_after_unlock.1.json index 7dcbbf8d..5c276e62 100644 --- a/savings_goals/test_snapshots/test/test_withdraw_time_locked_goal_after_unlock.1.json +++ b/savings_goals/test_snapshots/test/test_withdraw_time_locked_goal_after_unlock.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -140,14 +141,14 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 3500, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", "base_reserve": 10, "min_persistent_entry_ttl": 1, "min_temp_entry_ttl": 1, - "max_entry_ttl": 100000, + "max_entry_ttl": 3110400, "ledger_entries": [ [ { @@ -457,7 +458,7 @@ }, "ext": "v0" }, - 100000 + 518401 ] ], [ @@ -490,7 +491,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -523,7 +524,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -556,7 +557,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -589,7 +590,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -622,7 +623,7 @@ }, "ext": "v0" }, - 100000 + 3110400 ] ], [ @@ -643,527 +644,12 @@ }, "ext": "v0" }, - 100000 + 518401 ] ] ] }, "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": "Education" - }, - { - "i128": { - "hi": 0, - "lo": 10000 - } - }, - { - "u64": 5000 - } - ] - } - } - } - }, - "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": "Education" - } - }, - { - "key": { - "symbol": "target_amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 10000 - } - } - }, - { - "key": { - "symbol": "target_date" - }, - "val": { - "u64": 5000 - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "contract", - "body": { - "v0": { - "topics": [ - { - "symbol": "added" - } - ], - "data": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "goal_id" - }, - "val": { - "u32": 1 - } - }, - { - "key": { - "symbol": "new_total" - }, - "val": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - }, - { - "key": { - "symbol": "timestamp" - }, - "val": { - "u64": 1000 - } - } - ] - } - } - } - }, - "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": 0, - "lo": 5000 - } - } - ] - } - } - } - }, - "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "add_to_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 5000 - } - } - } - } - }, - "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": "set_time_lock" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "u64": 3000 - } - ] - } - } - } - }, - "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": "withdraw_from_goal" - } - ], - "data": { - "vec": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - }, - { - "u32": 1 - }, - { - "i128": { - "hi": 0, - "lo": 1000 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1203,32 +689,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw_from_goal" - } - ], - "data": { - "i128": { - "hi": 0, - "lo": 4000 - } - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file 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 index bfbdc145..df5ebc18 100644 --- 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 @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -121,7 +122,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -559,536 +560,6 @@ ] }, "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", @@ -1187,32 +658,6 @@ } }, "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 index 5cb37082..0d3633ff 100644 --- 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 @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -66,7 +67,7 @@ [] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -365,495 +366,5 @@ ] ] }, - "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 - } - ] + "events": [] } \ 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 index 9540e5bb..915cdab5 100644 --- 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 @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -141,7 +142,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 1, "timestamp": 2000001, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -650,267 +651,6 @@ ] }, "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", @@ -925,7 +665,7 @@ { "vec": [ { - "symbol": "FundsAdded" + "symbol": "FundsWithdrawn" } ] } @@ -940,8 +680,8 @@ }, { "i128": { - "hi": 1152921504606846975, - "lo": 18446744073709551615 + "hi": 0, + "lo": 1000 } } ] @@ -950,423 +690,6 @@ } }, "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/test_snapshots/test_withdraw_from_goal_with_large_amount.1.json b/savings_goals/test_snapshots/test_withdraw_from_goal_with_large_amount.1.json index 4b5bc1c9..fa92af88 100644 --- a/savings_goals/test_snapshots/test_withdraw_from_goal_with_large_amount.1.json +++ b/savings_goals/test_snapshots/test_withdraw_from_goal_with_large_amount.1.json @@ -4,6 +4,7 @@ "nonce": 0 }, "auth": [ + [], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", @@ -115,7 +116,7 @@ ] ], "ledger": { - "protocol_version": 21, + "protocol_version": 22, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -553,462 +554,6 @@ ] }, "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": "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": 1152921504606846975, - "lo": 18446744073709551615 - } - } - ] - } - } - } - }, - "failed_call": false - }, { "event": { "ext": "v0", @@ -1048,32 +593,6 @@ } }, "failed_call": false - }, - { - "event": { - "ext": "v0", - "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", - "type_": "diagnostic", - "body": { - "v0": { - "topics": [ - { - "symbol": "fn_return" - }, - { - "symbol": "withdraw_from_goal" - } - ], - "data": { - "i128": { - "hi": 1152921504606846976, - "lo": 0 - } - } - } - } - }, - "failed_call": false } ] } \ No newline at end of file diff --git a/savings_goals/tests/add_to_goal.rs b/savings_goals/tests/add_to_goal.rs index 84254c83..b565a8a1 100644 --- a/savings_goals/tests/add_to_goal.rs +++ b/savings_goals/tests/add_to_goal.rs @@ -14,7 +14,7 @@ fn bench_env() -> Env { info.sequence_number = 1; }); - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -22,7 +22,7 @@ fn bench_env() -> Env { #[test] fn test_add_to_goal_unauthorized_access() { let env = bench_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); // 1. Setup: Create User A (Owner) and User B (Attacker) diff --git a/savings_goals/tests/gas_bench.rs b/savings_goals/tests/gas_bench.rs index 7c6066ce..1e8f21f7 100644 --- a/savings_goals/tests/gas_bench.rs +++ b/savings_goals/tests/gas_bench.rs @@ -18,7 +18,7 @@ fn bench_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 100_000, }); - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); env } @@ -27,7 +27,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -39,7 +39,7 @@ where #[test] fn bench_get_all_goals_worst_case() { let env = bench_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner =
::generate(&env); diff --git a/savings_goals/tests/stress_test_large_amounts.rs b/savings_goals/tests/stress_test_large_amounts.rs index e12ca6a5..228d0890 100644 --- a/savings_goals/tests/stress_test_large_amounts.rs +++ b/savings_goals/tests/stress_test_large_amounts.rs @@ -34,7 +34,7 @@ fn set_time(env: &Env, timestamp: u64) { #[test] fn test_create_goal_near_max_i128() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -57,7 +57,7 @@ fn test_create_goal_near_max_i128() { #[test] fn test_add_to_goal_with_large_amount() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -84,7 +84,7 @@ fn test_add_to_goal_with_large_amount() { #[test] fn test_add_to_goal_multiple_large_contributions() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -114,10 +114,10 @@ fn test_add_to_goal_multiple_large_contributions() { assert_eq!(total3, contribution + contribution + contribution); } #[test] -#[should_panic(expected = "overflow")] +#[should_panic(expected = "Error(Contract, #6)")] fn test_add_to_goal_overflow_panics() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -144,7 +144,7 @@ fn test_add_to_goal_overflow_panics() { #[test] fn test_withdraw_from_goal_with_large_amount() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -181,7 +181,7 @@ fn test_withdraw_from_goal_with_large_amount() { // #[test] // fn test_withdraw_from_goal_with_large_amount() { // let env = Env::default(); -// let contract_id = env.register_contract(None, SavingsGoalContract); +// let contract_id = env.register(SavingsGoalContract, ()); // let client = SavingsGoalContractClient::new(&env, &contract_id); // let owner = ::generate(&env); @@ -214,7 +214,7 @@ fn test_withdraw_from_goal_with_large_amount() { #[test] fn test_goal_completion_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -244,7 +244,7 @@ fn test_goal_completion_with_large_amounts() { #[test] fn test_batch_add_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -309,7 +309,7 @@ fn test_batch_add_with_large_amounts() { #[test] fn test_multiple_goals_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -318,10 +318,11 @@ fn test_multiple_goals_with_large_amounts() { let large_target = i128::MAX / 10; // Create multiple goals with large targets - for i in 0..5 { + let goal_names = ["Goal 0", "Goal 1", "Goal 2", "Goal 3", "Goal 4"]; + for name in goal_names.iter() { client.create_goal( &owner, - &String::from_str(&env, &format!("Goal {}", i)), + &String::from_str(&env, name), &large_target, &2000000, ); @@ -340,7 +341,7 @@ fn test_multiple_goals_with_large_amounts() { #[test] fn test_edge_case_i128_max_minus_one() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -362,7 +363,7 @@ fn test_edge_case_i128_max_minus_one() { #[test] fn test_pagination_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -371,10 +372,14 @@ fn test_pagination_with_large_amounts() { let large_target = i128::MAX / 100; // Create multiple goals with large targets - for i in 0..15 { + let goal_names = [ + "G0", "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9", "G10", "G11", "G12", "G13", + "G14", + ]; + for name in goal_names.iter() { client.create_goal( &owner, - &String::from_str(&env, &format!("Goal {}", i)), + &String::from_str(&env, name), &large_target, &2000000, ); @@ -401,7 +406,7 @@ fn test_pagination_with_large_amounts() { #[test] fn test_lock_unlock_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -442,7 +447,7 @@ fn test_lock_unlock_with_large_amounts() { #[test] fn test_sequential_large_operations() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -457,10 +462,11 @@ fn test_sequential_large_operations() { i128::MAX / 50, ]; + let goal_names = ["Goal 0", "Goal 1", "Goal 2", "Goal 3", "Goal 4"]; for (i, amount) in amounts_to_test.iter().enumerate() { let goal_id = client.create_goal( &owner, - &String::from_str(&env, &format!("Goal {}", i)), + &String::from_str(&env, goal_names[i]), amount, &2000000, ); @@ -480,7 +486,7 @@ fn test_time_lock_with_large_amounts() { let env = Env::default(); set_time(&env, 1000000); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); @@ -524,7 +530,7 @@ fn test_time_lock_with_large_amounts() { #[test] fn test_export_import_snapshot_with_large_amounts() { let env = Env::default(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = ::generate(&env); diff --git a/savings_goals/tests/stress_tests.rs b/savings_goals/tests/stress_tests.rs index 85569330..19812904 100644 --- a/savings_goals/tests/stress_tests.rs +++ b/savings_goals/tests/stress_tests.rs @@ -43,7 +43,7 @@ fn stress_env() -> Env { min_persistent_entry_ttl: 1, max_entry_ttl: 700_000, }); - env.budget().reset_unlimited(); + env.cost_estimate().budget().reset_unlimited(); env } @@ -51,7 +51,7 @@ fn measure(env: &Env, f: F) -> (u64, u64, R) where F: FnOnce() -> R, { - let mut budget = env.budget(); + let mut budget = env.cost_estimate().budget(); budget.reset_unlimited(); budget.reset_tracker(); let result = f(); @@ -69,7 +69,7 @@ where #[test] fn stress_200_goals_single_user() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -82,7 +82,11 @@ fn stress_200_goals_single_user() { // Verify via get_all_goals (unbounded) let all_goals = client.get_all_goals(&owner); - assert_eq!(all_goals.len(), 200, "get_all_goals must return all 200 goals"); + assert_eq!( + all_goals.len(), + 200, + "get_all_goals must return all 200 goals" + ); // Verify via paginated get_goals (MAX_PAGE_LIMIT = 50 → 4 pages) let mut collected = 0u32; @@ -103,11 +107,18 @@ fn stress_200_goals_single_user() { cursor = page.next_cursor; } - assert_eq!(collected, 200, "Paginated get_goals must return all 200 goals"); + assert_eq!( + collected, 200, + "Paginated get_goals must return all 200 goals" + ); // get_goals sets next_cursor = last_returned_id; when a page is exactly full the // caller receives a non-zero cursor that produces a trailing empty page, so the // number of round-trips is pages = ceil(200/50) + 1 trailing = 5. - assert!(pages >= 4 && pages <= 5, "Expected 4-5 pages for 200 goals at limit 50, got {}", pages); + assert!( + (4..=5).contains(&pages), + "Expected 4-5 pages for 200 goals at limit 50, got {}", + pages + ); } /// Create 200 goals and verify instance TTL stays valid after the instance Map @@ -115,7 +126,7 @@ fn stress_200_goals_single_user() { #[test] fn stress_instance_ttl_valid_after_200_goals() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -142,7 +153,7 @@ fn stress_instance_ttl_valid_after_200_goals() { #[test] fn stress_goals_across_10_users() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); const N_USERS: usize = 10; @@ -182,7 +193,7 @@ fn stress_goals_across_10_users() { #[test] fn stress_ttl_re_bumped_after_ledger_advancement() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -234,7 +245,7 @@ fn stress_ttl_re_bumped_after_ledger_advancement() { #[test] fn stress_ttl_re_bumped_by_add_to_goal_after_ledger_advancement() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -277,7 +288,7 @@ fn stress_ttl_re_bumped_by_add_to_goal_after_ledger_advancement() { #[test] fn stress_batch_add_to_goals_at_max_batch_size() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -342,9 +353,9 @@ fn stress_data_persists_across_multiple_ledger_advancements() { min_persistent_entry_ttl: 1_100_000, max_entry_ttl: 1_200_000, }); - env.budget().reset_unlimited(); + env.cost_estimate().budget().reset_unlimited(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -404,7 +415,10 @@ fn stress_data_persists_across_multiple_ledger_advancements() { // TTL must still be positive let ttl = env.as_contract(&contract_id, || env.storage().instance().get_ttl()); - assert!(ttl > 0, "Instance TTL must be > 0 after all ledger advancements"); + assert!( + ttl > 0, + "Instance TTL must be > 0 after all ledger advancements" + ); } // --------------------------------------------------------------------------- @@ -415,7 +429,7 @@ fn stress_data_persists_across_multiple_ledger_advancements() { #[test] fn bench_get_all_goals_200_goals() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -437,7 +451,7 @@ fn bench_get_all_goals_200_goals() { #[test] fn bench_get_goals_first_page_of_200() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); @@ -459,7 +473,7 @@ fn bench_get_goals_first_page_of_200() { #[test] fn bench_batch_add_to_goals_50_contributions() { let env = stress_env(); - let contract_id = env.register_contract(None, SavingsGoalContract); + let contract_id = env.register(SavingsGoalContract, ()); let client = SavingsGoalContractClient::new(&env, &contract_id); let owner = Address::generate(&env); diff --git a/scenarios/Cargo.toml b/scenarios/Cargo.toml index b317920d..e6262d19 100644 --- a/scenarios/Cargo.toml +++ b/scenarios/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" publish = false [dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } testutils = { path = "../testutils" } remittance_split = { path = "../remittance_split" } savings_goals = { path = "../savings_goals" } diff --git a/scenarios/tests/flow.rs b/scenarios/tests/flow.rs index 3ad51529..05599f02 100644 --- a/scenarios/tests/flow.rs +++ b/scenarios/tests/flow.rs @@ -21,22 +21,22 @@ fn test_end_to_end_flow() { // For simplicity, we bypass native USDC deployment test setups for custom flows // or assume our contracts mock token transfers if `WASM` is unavailable. - let split_id = env.register_contract(None, RemittanceSplit); + let split_id = env.register(RemittanceSplit, ()); let split_client = RemittanceSplitClient::new(&env, &split_id); - let savings_id = env.register_contract(None, SavingsGoalContract); + let savings_id = env.register(SavingsGoalContract, ()); let savings_client = SavingsGoalContractClient::new(&env, &savings_id); - let bills_id = env.register_contract(None, BillPayments); + let bills_id = env.register(BillPayments, ()); let bills_client = BillPaymentsClient::new(&env, &bills_id); - let insurance_id = env.register_contract(None, Insurance); + let insurance_id = env.register(Insurance, ()); //let insurance_client = InsuranceClient::new(&env, &insurance_id); - let family_id = env.register_contract(None, FamilyWallet); + let family_id = env.register(FamilyWallet, ()); //let family_client = FamilyWalletClient::new(&env, &family_id); - let reporting_id = env.register_contract(None, ReportingContract); + let reporting_id = env.register(ReportingContract, ()); let reporting_client = ReportingContractClient::new(&env, &reporting_id); let admin = Address::generate(&env); diff --git a/testutils/Cargo.toml b/testutils/Cargo.toml index 3b1103c0..03c04003 100644 --- a/testutils/Cargo.toml +++ b/testutils/Cargo.toml @@ -5,4 +5,4 @@ edition = "2021" publish = false [dependencies] -soroban-sdk = { version = "=21.7.7", features = ["testutils"] } +soroban-sdk = { version = "22.0.1", features = ["testutils"] } diff --git a/testutils/src/lib.rs b/testutils/src/lib.rs index c4447f22..e47ffde5 100644 --- a/testutils/src/lib.rs +++ b/testutils/src/lib.rs @@ -5,18 +5,15 @@ use soroban_sdk::{ }; pub fn set_ledger_time(env: &Env, sequence_number: u32, timestamp: u64) { - let proto = env.ledger().protocol_version(); - env.ledger().set(LedgerInfo { - protocol_version: proto, + protocol_version: 22, sequence_number, timestamp, network_id: [0; 32], base_reserve: 10, min_temp_entry_ttl: 1, min_persistent_entry_ttl: 1, - // Must exceed any contract bump TTL used in tests (e.g. 518,400). - max_entry_ttl: 3_000_000, + max_entry_ttl: 3_110_400, }); } @@ -26,11 +23,11 @@ pub fn generate_test_address(env: &Env) -> Address { #[macro_export] macro_rules! setup_test_env { - ($env:ident, $contract:ident, $client_struct:ident, $client:ident, $owner:ident) => { + ($env:ident, $contract:ident, $client_type:ident, $client:ident, $owner:ident) => { let $env = Env::default(); $env.mock_all_auths(); - let contract_id = $env.register_contract(None, $contract); - let $client = $client_struct::new(&$env, &contract_id); + let contract_id = $env.register($contract, ()); + let $client = $client_type::new(&$env, &contract_id); let $owner = $crate::generate_test_address(&$env); }; }