From 03ce89b150101b444b18e275ebd536a8777dd70f Mon Sep 17 00:00:00 2001 From: jerrybarry Date: Sat, 28 Mar 2026 10:37:38 +0100 Subject: [PATCH 1/3] feat: implement InvoiceContract on Soroban with full invoice lifecycle --- fluxapay/src/auth_test.rs | 8 +- fluxapay/src/dispute_test.rs | 38 +- fluxapay/src/fx_oracle.rs | 2 - fluxapay/src/integration_test.rs | 20 +- fluxapay/src/invoice.rs | 386 +++++ fluxapay/src/lib.rs | 62 +- fluxapay/src/merchant_registry.rs | 140 +- fluxapay/src/merchant_registry_test.rs | 37 +- fluxapay/src/test.rs | 26 +- ...verify_merchant_called_by_non_admin.1.json | 43 + .../dispute_test/test_create_dispute.1.json | 180 ++- .../test_dispute_invalid_amount.1.json | 162 +- .../test_get_payment_disputes.1.json | 180 ++- .../dispute_test/test_reject_dispute.1.json | 186 ++- ...lve_dispute_with_only_operator_auth.1.json | 186 ++- .../test_resolve_dispute_with_refund.1.json | 186 ++- .../dispute_test/test_review_dispute.1.json | 186 ++- .../test_set_and_get_rate.1.json | 2 +- .../test_settlement_amount_calculation.1.json | 2 +- .../test_staleness_check.1.json | 2 +- .../test_failure_and_expiration_path.1.json | 176 ++- .../test_happy_path_flow.1.json | 233 ++- .../test_settlement_path.1.json | 182 ++- .../cancel_invoice_draft_and_issued.1.json | 649 ++++++++ .../cancel_paid_returns_invalid_status.1.json | 433 ++++++ ...nd_duplicate_returns_already_exists.1.json | 324 ++++ .../invoice/test/get_invoice_not_found.1.json | 156 ++ ...ze_sets_admin_and_payment_processor.1.json | 157 ++ ...ze_sets_admin_and_payment_processor.1.json | 157 ++ .../test/issue_invoice_draft_to_issued.1.json | 376 +++++ ...invoice_draft_to_issued_emits_event.1.json | 376 +++++ ...wrong_status_returns_invalid_status.1.json | 376 +++++ ...k_paid_draft_returns_invalid_status.1.json | 324 ++++ ...id_success_sets_paid_and_payment_id.1.json | 433 ++++++ ...ets_paid_and_payment_id_emits_event.1.json | 433 ++++++ ...ark_paid_twice_returns_already_paid.1.json | 433 ++++++ .../test_merchant_enumeration.1.json | 678 +++++++++ .../test_merchant_registration.1.json | 43 + .../test_merchant_update.1.json | 43 + .../test_merchant_verification.1.json | 43 + .../test_set_kyc_tier.1.json | 43 + .../test_set_kyc_tier_unauthorized.1.json | 43 + .../test_unauthorized_verification.1.json | 43 + ...fied_merchant_cannot_create_payment.1.json | 907 +++++++++++ ...erified_merchant_can_create_payment.1.json | 1336 +++++++++++++++++ .../test_verified_merchants_filter.1.json | 731 +++++++++ ...l_payment_before_expiry_by_merchant.1.json | 162 +- .../test/test_create_payment.1.json | 162 +- .../test_expire_payment_after_deadline.1.json | 162 +- ...chant_payments_index_and_pagination.1.json | 162 +- .../test/test_get_role_members.1.json | 6 +- .../test/test_grant_role.1.json | 2 +- .../test/test_process_refund.1.json | 2 +- .../test/test_transfer_admin.1.json | 2 +- .../test/test_verify_payment_success.1.json | 176 ++- 55 files changed, 11685 insertions(+), 313 deletions(-) create mode 100644 fluxapay/src/invoice.rs create mode 100644 fluxapay/test_snapshots/invoice/test/cancel_invoice_draft_and_issued.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/cancel_paid_returns_invalid_status.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/create_invoice_success_and_duplicate_returns_already_exists.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/get_invoice_not_found.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/invoice_initialize_sets_admin_and_payment_processor.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/issue_invoice_wrong_status_returns_invalid_status.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/mark_paid_draft_returns_invalid_status.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json create mode 100644 fluxapay/test_snapshots/invoice/test/mark_paid_twice_returns_already_paid.1.json create mode 100644 fluxapay/test_snapshots/merchant_registry_test/test_merchant_enumeration.1.json create mode 100644 fluxapay/test_snapshots/merchant_registry_test/test_unverified_merchant_cannot_create_payment.1.json create mode 100644 fluxapay/test_snapshots/merchant_registry_test/test_verified_merchant_can_create_payment.1.json create mode 100644 fluxapay/test_snapshots/merchant_registry_test/test_verified_merchants_filter.1.json diff --git a/fluxapay/src/auth_test.rs b/fluxapay/src/auth_test.rs index d2a05ab..dafff34 100644 --- a/fluxapay/src/auth_test.rs +++ b/fluxapay/src/auth_test.rs @@ -33,7 +33,7 @@ fn setup_contracts( token_admin_client.mint(&refund_manager, &1_000_000_000_000i128); payment_client.initialize_payment_processor(&admin); - merchant_client.initialize(&admin); + merchant_client.merchant_initialize(&admin); (admin, payment_client, refund_client, merchant_client) } @@ -45,7 +45,7 @@ fn test_grant_role_without_admin_signature() { let (admin, _payment_client, refund_client, _merchant_client) = setup_contracts(&env); let account = Address::generate(&env); let role = Symbol::new(&env, "ORACLE"); - refund_client.grant_role(&admin, &role, &account); + refund_client.refund_grant_role(&admin, &role, &account); } #[test] @@ -55,7 +55,7 @@ fn test_revoke_role_without_admin_signature() { let (admin, _payment_client, refund_client, _merchant_client) = setup_contracts(&env); let account = Address::generate(&env); let role = Symbol::new(&env, "ORACLE"); - refund_client.revoke_role(&admin, &role, &account); + refund_client.refund_revoke_role(&admin, &role, &account); } #[test] @@ -64,7 +64,7 @@ fn test_transfer_admin_without_admin_signature() { let env = Env::default(); let (admin, _payment_client, refund_client, _merchant_client) = setup_contracts(&env); let new_admin = Address::generate(&env); - refund_client.transfer_admin(&admin, &new_admin); + refund_client.refund_transfer_admin(&admin, &new_admin); } #[test] diff --git a/fluxapay/src/dispute_test.rs b/fluxapay/src/dispute_test.rs index 3907a44..e63da62 100644 --- a/fluxapay/src/dispute_test.rs +++ b/fluxapay/src/dispute_test.rs @@ -1,4 +1,5 @@ use crate::{ + access_control::role_merchant, Dispute, DisputeStatus, PaymentProcessor, PaymentProcessorClient, Refund, RefundManager, RefundManagerClient, RefundStatus, }; @@ -41,6 +42,8 @@ fn test_create_dispute() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -53,7 +56,7 @@ fn test_create_dispute() { // Verify payment let transaction_hash = BytesN::<32>::random(&env); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment(&oracle, &payment_id, &transaction_hash, &customer, &amount); // Create dispute @@ -83,7 +86,7 @@ fn test_review_dispute() { // Grant operator role let settlement_role = Symbol::new(&env, "SETTLEMENT_OPERATOR"); - refund_client.grant_role(&admin, &settlement_role, &operator); + refund_client.refund_grant_role(&admin, &settlement_role, &operator); // Create and verify payment let payment_id = String::from_str(&env, "payment_002"); @@ -92,6 +95,8 @@ fn test_review_dispute() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -103,7 +108,7 @@ fn test_review_dispute() { let transaction_hash = BytesN::<32>::random(&env); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment(&oracle, &payment_id, &transaction_hash, &customer, &amount); // Create dispute @@ -133,7 +138,7 @@ fn test_resolve_dispute_with_refund() { // Grant operator role let settlement_role = Symbol::new(&env, "SETTLEMENT_OPERATOR"); - refund_client.grant_role(&admin, &settlement_role, &operator); + refund_client.refund_grant_role(&admin, &settlement_role, &operator); // Create and verify payment let payment_id = String::from_str(&env, "payment_003"); @@ -142,6 +147,8 @@ fn test_resolve_dispute_with_refund() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -153,7 +160,7 @@ fn test_resolve_dispute_with_refund() { let transaction_hash = BytesN::<32>::random(&env); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment(&oracle, &payment_id, &transaction_hash, &customer, &amount); // Register payment with refund manager for amount validation @@ -196,7 +203,7 @@ fn test_reject_dispute() { // Grant operator role let oracle_role = Symbol::new(&env, "ORACLE"); - refund_client.grant_role(&admin, &oracle_role, &operator); + refund_client.refund_grant_role(&admin, &oracle_role, &operator); // Create and verify payment let payment_id = String::from_str(&env, "payment_004"); @@ -205,6 +212,8 @@ fn test_reject_dispute() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -216,7 +225,7 @@ fn test_reject_dispute() { let transaction_hash = BytesN::<32>::random(&env); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment(&oracle, &payment_id, &transaction_hash, &customer, &amount); // Create dispute @@ -253,6 +262,8 @@ fn test_get_payment_disputes() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -264,7 +275,7 @@ fn test_get_payment_disputes() { let transaction_hash = BytesN::<32>::random(&env); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment(&oracle, &payment_id, &transaction_hash, &customer, &amount); // Create multiple disputes @@ -295,7 +306,7 @@ fn test_dispute_invalid_amount() { let env = Env::default(); env.mock_all_auths(); - let (_, payment_client, refund_client) = setup_contracts(&env); + let (admin, payment_client, refund_client) = setup_contracts(&env); let merchant = Address::generate(&env); let customer = Address::generate(&env); @@ -306,6 +317,8 @@ fn test_dispute_invalid_amount() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -339,10 +352,13 @@ fn test_resolve_dispute_with_only_operator_auth() { let customer = Address::generate(&env); let operator = Address::generate(&env); - refund_client.grant_role(&admin, &Symbol::new(&env, "SETTLEMENT_OPERATOR"), &operator); + refund_client.refund_grant_role(&admin, &Symbol::new(&env, "SETTLEMENT_OPERATOR"), &operator); let payment_id = String::from_str(&env, "pay_auth_test"); let amount = 500i128; + + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -353,7 +369,7 @@ fn test_resolve_dispute_with_only_operator_auth() { ); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); let tx_hash = BytesN::<32>::random(&env); payment_client.verify_payment(&oracle, &payment_id, &tx_hash, &customer, &amount); diff --git a/fluxapay/src/fx_oracle.rs b/fluxapay/src/fx_oracle.rs index 80d814a..3c39700 100644 --- a/fluxapay/src/fx_oracle.rs +++ b/fluxapay/src/fx_oracle.rs @@ -1,4 +1,3 @@ -#![no_std] use soroban_sdk::{contract, contracterror, contractimpl, contracttype, Address, Env, Symbol}; use crate::access_control::{role_admin, role_oracle, AccessControl}; @@ -53,7 +52,6 @@ impl FXOracle { } pub fn get_oracle_admin(env: Env) -> Option
{ - pub fn get_fx_admin(env: Env) -> Option
{ AccessControl::get_admin(&env) } diff --git a/fluxapay/src/integration_test.rs b/fluxapay/src/integration_test.rs index 43ac05d..ebe1efb 100644 --- a/fluxapay/src/integration_test.rs +++ b/fluxapay/src/integration_test.rs @@ -1,6 +1,7 @@ #![cfg(test)] use crate::{ + access_control::role_merchant, merchant_registry::{KycTier, MerchantRegistry, MerchantRegistryClient}, DisputeStatus, PaymentProcessor, PaymentProcessorClient, PaymentStatus, RefundManager, RefundManagerClient, RefundStatus, @@ -34,7 +35,7 @@ fn setup_integration( token_admin_client.mint(&refund_manager, &1_000_000_000_000i128); payment_client.initialize_payment_processor(&admin); - merchant_client.initialize(&admin); + merchant_client.merchant_initialize(&admin); (admin, payment_client, refund_client, merchant_client) } @@ -65,6 +66,8 @@ fn test_happy_path_flow() { let amount = 1000i128; let expires_at = env.ledger().timestamp() + 3600; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -76,7 +79,7 @@ fn test_happy_path_flow() { let tx_hash = BytesN::<32>::random(&env); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment(&oracle, &payment_id, &tx_hash, &customer, &amount); let payment_info = payment_client.get_payment(&payment_id); @@ -95,7 +98,7 @@ fn test_happy_path_flow() { ); let operator = Address::generate(&env); - refund_client.grant_role(&admin, &Symbol::new(&env, "SETTLEMENT_OPERATOR"), &operator); + refund_client.refund_grant_role(&admin, &Symbol::new(&env, "SETTLEMENT_OPERATOR"), &operator); let refund_id = refund_client.resolve_dispute_with_refund( &operator, @@ -122,10 +125,13 @@ fn test_settlement_path() { let treasury = Address::generate(&env); let operator = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "SETTLEMENT_OPERATOR"), &operator); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "SETTLEMENT_OPERATOR"), &operator); let payment_id = String::from_str(&env, "PAY_SETTLE"); let amount = 2000i128; + + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -136,7 +142,7 @@ fn test_settlement_path() { ); let oracle = Address::generate(&env); - payment_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &oracle); payment_client.verify_payment( &oracle, &payment_id, @@ -165,6 +171,8 @@ fn test_failure_and_expiration_path() { let amount = 500i128; let expires_at = env.ledger().timestamp() + 100; + payment_client.payment_grant_role(&admin, &role_merchant(&env), &merchant); + payment_client.create_payment( &payment_id, &merchant, @@ -194,7 +202,7 @@ fn test_failure_and_expiration_path() { ); let operator = Address::generate(&env); - refund_client.grant_role(&admin, &Symbol::new(&env, "ORACLE"), &operator); + refund_client.refund_grant_role(&admin, &Symbol::new(&env, "ORACLE"), &operator); // Reject dispute refund_client.reject_dispute( diff --git a/fluxapay/src/invoice.rs b/fluxapay/src/invoice.rs new file mode 100644 index 0000000..93e0d3a --- /dev/null +++ b/fluxapay/src/invoice.rs @@ -0,0 +1,386 @@ +use soroban_sdk::{contract, contracterror, contractimpl, contracttype, Address, Env, Symbol}; + +#[contract] +pub struct InvoiceContract; + +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum InvoiceStatus { + Draft, + Issued, + Paid, + Cancelled, +} + +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct Invoice { + pub invoice_id: Symbol, + pub merchant_id: Address, + pub amount: i128, + pub currency: Symbol, + pub due_date: u64, + pub status: InvoiceStatus, + pub payment_id: Option, +} + +#[contracttype] +pub enum DataKey { + Invoice(Symbol), + Admin, + PaymentProcessor, +} + +#[contracterror] +#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] +#[repr(u32)] +pub enum InvoiceError { + NotFound = 1, + AlreadyExists = 2, + Unauthorized = 3, + InvalidStatus = 4, + AlreadyPaid = 5, +} + +#[contractimpl] +impl InvoiceContract { + pub fn invoice_initialize(env: Env, admin: Address, payment_processor: Address) { + env.storage() + .persistent() + .set(&DataKey::Admin, &admin); + env.storage() + .persistent() + .set(&DataKey::PaymentProcessor, &payment_processor); + } + + pub fn get_admin(env: Env) -> Option
{ + env.storage().persistent().get(&DataKey::Admin) + } + + pub fn get_payment_processor(env: Env) -> Option
{ + env.storage().persistent().get(&DataKey::PaymentProcessor) + } + + pub fn create_invoice( + env: Env, + merchant_id: Address, + invoice_id: Symbol, + amount: i128, + currency: Symbol, + due_date: u64, + ) -> Result { + merchant_id.require_auth(); + + let key = DataKey::Invoice(invoice_id.clone()); + if env.storage().persistent().has(&key) { + return Err(InvoiceError::AlreadyExists); + } + + let invoice = Invoice { + invoice_id: invoice_id.clone(), + merchant_id: merchant_id.clone(), + amount, + currency, + due_date, + status: InvoiceStatus::Draft, + payment_id: None, + }; + + env.storage().persistent().set(&key, &invoice); + + Ok(invoice) + } + + pub fn issue_invoice(env: Env, invoice_id: Symbol) -> Result<(), InvoiceError> { + let key = DataKey::Invoice(invoice_id.clone()); + let mut invoice: Invoice = env + .storage() + .persistent() + .get(&key) + .ok_or(InvoiceError::NotFound)?; + + invoice.merchant_id.require_auth(); + + if invoice.status != InvoiceStatus::Draft { + return Err(InvoiceError::InvalidStatus); + } + + invoice.status = InvoiceStatus::Issued; + env.storage().persistent().set(&key, &invoice); + + env.events().publish( + ( + Symbol::new(&env, "INVOICE"), + Symbol::new(&env, "ISSUED"), + ), + invoice_id.clone(), + ); + + Ok(()) + } + + pub fn mark_paid( + env: Env, + invoice_id: Symbol, + payment_id: Symbol, + ) -> Result<(), InvoiceError> { + let processor: Address = env + .storage() + .persistent() + .get(&DataKey::PaymentProcessor) + .ok_or(InvoiceError::Unauthorized)?; + processor.require_auth(); + + let key = DataKey::Invoice(invoice_id.clone()); + let mut invoice: Invoice = env + .storage() + .persistent() + .get(&key) + .ok_or(InvoiceError::NotFound)?; + + if invoice.payment_id.is_some() { + return Err(InvoiceError::AlreadyPaid); + } + + if invoice.status != InvoiceStatus::Issued { + return Err(InvoiceError::InvalidStatus); + } + + invoice.status = InvoiceStatus::Paid; + invoice.payment_id = Some(payment_id.clone()); + env.storage().persistent().set(&key, &invoice); + + env.events().publish( + ( + Symbol::new(&env, "INVOICE"), + Symbol::new(&env, "PAID"), + ), + (invoice_id.clone(), payment_id), + ); + + Ok(()) + } + + pub fn cancel_invoice(env: Env, invoice_id: Symbol) -> Result<(), InvoiceError> { + let key = DataKey::Invoice(invoice_id.clone()); + let mut invoice: Invoice = env + .storage() + .persistent() + .get(&key) + .ok_or(InvoiceError::NotFound)?; + + invoice.merchant_id.require_auth(); + + if invoice.status == InvoiceStatus::Paid { + return Err(InvoiceError::InvalidStatus); + } + + if invoice.status != InvoiceStatus::Draft && invoice.status != InvoiceStatus::Issued { + return Err(InvoiceError::InvalidStatus); + } + + invoice.status = InvoiceStatus::Cancelled; + env.storage().persistent().set(&key, &invoice); + + env.events().publish( + ( + Symbol::new(&env, "INVOICE"), + Symbol::new(&env, "CANCELLED"), + ), + invoice_id.clone(), + ); + + Ok(()) + } + + pub fn get_invoice(env: Env, invoice_id: Symbol) -> Result { + let key = DataKey::Invoice(invoice_id); + env.storage() + .persistent() + .get(&key) + .ok_or(InvoiceError::NotFound) + } +} + +#[cfg(test)] +mod test { + use super::*; + use soroban_sdk::testutils::Address as _; + + fn setup(env: &Env) -> (Address, Address, InvoiceContractClient<'_>) { + let contract_id = env.register(InvoiceContract, ()); + let client = InvoiceContractClient::new(env, &contract_id); + let admin = Address::generate(env); + let payment_processor = Address::generate(env); + client.invoice_initialize(&admin, &payment_processor); + (admin, payment_processor, client) + } + + #[test] + fn invoice_initialize_sets_admin_and_payment_processor() { + let env = Env::default(); + env.mock_all_auths(); + let (admin, payment_processor, client) = setup(&env); + assert_eq!(client.get_admin(), Some(admin)); + assert_eq!(client.get_payment_processor(), Some(payment_processor)); + } + + #[test] + fn create_invoice_success_and_duplicate_returns_already_exists() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INV001"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + let inv = client.create_invoice(&merchant, &inv_id, &100i128, ¤cy, &due); + assert_eq!(inv.status, InvoiceStatus::Draft); + assert_eq!(inv.payment_id, None); + + let err = client.try_create_invoice(&merchant, &inv_id, &100i128, ¤cy, &due); + assert!(matches!( + err, + Err(Ok(InvoiceError::AlreadyExists)) + )); + } + + #[test] + fn issue_invoice_draft_to_issued() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INV002"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + client.create_invoice(&merchant, &inv_id, &50i128, ¤cy, &due); + client.issue_invoice(&inv_id); + + let got = client.get_invoice(&inv_id); + assert_eq!(got.status, InvoiceStatus::Issued); + } + + #[test] + fn issue_invoice_wrong_status_returns_invalid_status() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INV003"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + client.create_invoice(&merchant, &inv_id, &10i128, ¤cy, &due); + client.issue_invoice(&inv_id); + let err = client.try_issue_invoice(&inv_id); + assert!(matches!(err, Err(Ok(InvoiceError::InvalidStatus)))); + } + + #[test] + fn mark_paid_success_sets_paid_and_payment_id() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _payment_processor, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INV004"); + let pay_id = Symbol::new(&env, "PAY99"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + client.create_invoice(&merchant, &inv_id, &200i128, ¤cy, &due); + client.issue_invoice(&inv_id); + client.mark_paid(&inv_id, &pay_id); + + let got = client.get_invoice(&inv_id); + assert_eq!(got.status, InvoiceStatus::Paid); + assert_eq!(got.payment_id, Some(pay_id)); + } + + #[test] + fn mark_paid_twice_returns_already_paid() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _payment_processor, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INV005"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + client.create_invoice(&merchant, &inv_id, &1i128, ¤cy, &due); + client.issue_invoice(&inv_id); + client.mark_paid(&inv_id, &Symbol::new(&env, "P1")); + let err = client.try_mark_paid(&inv_id, &Symbol::new(&env, "P2")); + assert!(matches!(err, Err(Ok(InvoiceError::AlreadyPaid)))); + } + + #[test] + fn mark_paid_draft_returns_invalid_status() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _payment_processor, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INV007"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + client.create_invoice(&merchant, &inv_id, &1i128, ¤cy, &due); + let err = client.try_mark_paid(&inv_id, &Symbol::new(&env, "PX")); + assert!(matches!(err, Err(Ok(InvoiceError::InvalidStatus)))); + } + + #[test] + fn cancel_invoice_draft_and_issued() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _payment_processor, client) = setup(&env); + let merchant = Address::generate(&env); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + let id_draft = Symbol::new(&env, "INVD"); + client.create_invoice(&merchant, &id_draft, &1i128, ¤cy, &due); + client.cancel_invoice(&id_draft); + assert_eq!( + client.get_invoice(&id_draft).status, + InvoiceStatus::Cancelled + ); + + let id_issued = Symbol::new(&env, "INVI"); + client.create_invoice(&merchant, &id_issued, &1i128, ¤cy, &due); + client.issue_invoice(&id_issued); + client.cancel_invoice(&id_issued); + assert_eq!( + client.get_invoice(&id_issued).status, + InvoiceStatus::Cancelled + ); + } + + #[test] + fn cancel_paid_returns_invalid_status() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _payment_processor, client) = setup(&env); + let merchant = Address::generate(&env); + let inv_id = Symbol::new(&env, "INVP"); + let currency = Symbol::new(&env, "USDC"); + let due = env.ledger().timestamp() + 86400; + + client.create_invoice(&merchant, &inv_id, &1i128, ¤cy, &due); + client.issue_invoice(&inv_id); + client.mark_paid(&inv_id, &Symbol::new(&env, "PY")); + let err = client.try_cancel_invoice(&inv_id); + assert!(matches!(err, Err(Ok(InvoiceError::InvalidStatus)))); + } + + #[test] + fn get_invoice_not_found() { + let env = Env::default(); + env.mock_all_auths(); + let (_, _, client) = setup(&env); + let err = client.try_get_invoice(&Symbol::new(&env, "NOPE")); + assert!(matches!(err, Err(Ok(InvoiceError::NotFound)))); + } +} diff --git a/fluxapay/src/lib.rs b/fluxapay/src/lib.rs index aec417b..8cc5718 100644 --- a/fluxapay/src/lib.rs +++ b/fluxapay/src/lib.rs @@ -190,7 +190,7 @@ impl RefundManager { if !env .storage() .persistent() - .has(&DataKey::Payment(payment_id.clone())) + .has(&FluxaDataKey::Payment(payment_id.clone())) { let payment = PaymentCharge { payment_id: payment_id.clone(), @@ -207,7 +207,7 @@ impl RefundManager { }; env.storage() .persistent() - .set(&DataKey::Payment(payment_id.clone()), &payment); + .set(&FluxaDataKey::Payment(payment_id.clone()), &payment); Self::bump_payment_ttl(&env, &payment_id, &payment.status); } } @@ -238,8 +238,8 @@ impl RefundManager { let payment: PaymentCharge = env .storage() .persistent() - .get(&DataKey::Payment(payment_id.clone())) - .ok_or(Error::PaymentNotFound)?; + .get(&FluxaDataKey::Payment(payment_id.clone())) + .ok_or(FluxaError::PaymentNotFound)?; // Sum existing refund amounts for this payment let existing_refunds = Self::get_payment_refunds_internal(env, &payment_id); @@ -253,7 +253,7 @@ impl RefundManager { } if total_refunded + refund_amount > payment.amount { - return Err(Error::RefundExceedsPayment); + return Err(FluxaError::RefundExceedsPayment); } let counter = Self::get_next_refund_id(&env); @@ -282,9 +282,12 @@ impl RefundManager { payment_refunds.push_back(refund_id.clone()); env.storage() .persistent() - .set(&FluxaDataKey::PaymentRefunds(payment_id), &payment_refunds); - .set(&DataKey::PaymentRefunds(payment_id.clone()), &payment_refunds); - Self::bump_ttl(&env, &DataKey::PaymentRefunds(payment_id.clone()), LONG_LIVE_TTL); + .set(&FluxaDataKey::PaymentRefunds(payment_id.clone()), &payment_refunds); + Self::bump_ttl( + &env, + &FluxaDataKey::PaymentRefunds(payment_id.clone()), + LONG_LIVE_TTL, + ); Self::bump_refund_ttl(&env, &refund_id, &refund.status); @@ -339,8 +342,7 @@ impl RefundManager { env.storage() .persistent() - .set(&FluxaDataKey::Refund(refund_id), &refund); - .set(&DataKey::Refund(refund_id.clone()), &refund); + .set(&FluxaDataKey::Refund(refund_id.clone()), &refund); Self::bump_refund_ttl(&env, &refund_id, &refund.status); // Issue #27: emit REFUND/COMPLETED event @@ -353,20 +355,20 @@ impl RefundManager { } /// Reject a pending refund (operator only). Emits REFUND/REJECTED (issue #27). - pub fn reject_refund(env: Env, operator: Address, refund_id: String) -> Result<(), Error> { + pub fn reject_refund(env: Env, operator: Address, refund_id: String) -> Result<(), FluxaError> { operator.require_auth(); let has_settlement = AccessControl::has_role(&env, &role_settlement_operator(&env), &operator); let has_oracle = AccessControl::has_role(&env, &role_oracle(&env), &operator); if !has_settlement && !has_oracle { - return Err(Error::Unauthorized); + return Err(FluxaError::Unauthorized); } let mut refund = Self::get_refund_internal(&env, &refund_id)?; if refund.status != RefundStatus::Pending { - return Err(Error::RefundAlreadyProcessed); + return Err(FluxaError::RefundAlreadyProcessed); } refund.status = RefundStatus::Rejected; @@ -374,7 +376,7 @@ impl RefundManager { env.storage() .persistent() - .set(&DataKey::Refund(refund_id.clone()), &refund); + .set(&FluxaDataKey::Refund(refund_id.clone()), &refund); Self::bump_refund_ttl(&env, &refund_id, &refund.status); // Issue #27: emit REFUND/REJECTED event @@ -468,9 +470,15 @@ impl RefundManager { payment_disputes.push_back(dispute_id.clone()); env.storage() .persistent() - .set(&FluxaDataKey::PaymentDisputes(payment_id), &payment_disputes); - .set(&DataKey::PaymentDisputes(payment_id.clone()), &payment_disputes); - Self::bump_ttl(&env, &DataKey::PaymentDisputes(payment_id.clone()), LONG_LIVE_TTL); + .set( + &FluxaDataKey::PaymentDisputes(payment_id.clone()), + &payment_disputes, + ); + Self::bump_ttl( + &env, + &FluxaDataKey::PaymentDisputes(payment_id.clone()), + LONG_LIVE_TTL, + ); Self::bump_dispute_ttl(&env, &dispute_id, &dispute.status); @@ -504,8 +512,7 @@ impl RefundManager { env.storage() .persistent() - .set(&FluxaDataKey::Dispute(dispute_id), &dispute); - .set(&DataKey::Dispute(dispute_id.clone()), &dispute); + .set(&FluxaDataKey::Dispute(dispute_id.clone()), &dispute); Self::bump_dispute_ttl(&env, &dispute_id, &dispute.status); // Issue #27: emit DISPUTE/UNDER_REVIEW event @@ -561,8 +568,7 @@ impl RefundManager { env.storage() .persistent() - .set(&FluxaDataKey::Dispute(dispute_id), &dispute); - .set(&DataKey::Dispute(dispute_id.clone()), &dispute); + .set(&FluxaDataKey::Dispute(dispute_id.clone()), &dispute); Self::bump_dispute_ttl(&env, &dispute_id, &dispute.status); // Issue #27: emit DISPUTE/RESOLVED event @@ -602,8 +608,7 @@ impl RefundManager { env.storage() .persistent() - .set(&FluxaDataKey::Dispute(dispute_id), &dispute); - .set(&DataKey::Dispute(dispute_id.clone()), &dispute); + .set(&FluxaDataKey::Dispute(dispute_id.clone()), &dispute); Self::bump_dispute_ttl(&env, &dispute_id, &dispute.status); // Issue #27: emit DISPUTE/REJECTED event @@ -669,7 +674,7 @@ impl RefundManager { } fn bump_refund_ttl(env: &Env, refund_id: &String, status: &RefundStatus) { - let key = DataKey::Refund(refund_id.clone()); + let key = FluxaDataKey::Refund(refund_id.clone()); Self::bump_ttl(env, &key, Self::refund_ttl(status)); } @@ -681,7 +686,7 @@ impl RefundManager { } fn bump_dispute_ttl(env: &Env, dispute_id: &String, status: &DisputeStatus) { - let key = DataKey::Dispute(dispute_id.clone()); + let key = FluxaDataKey::Dispute(dispute_id.clone()); Self::bump_ttl(env, &key, Self::dispute_ttl(status)); } @@ -696,11 +701,11 @@ impl RefundManager { } fn bump_payment_ttl(env: &Env, payment_id: &String, status: &PaymentStatus) { - let key = DataKey::Payment(payment_id.clone()); + let key = FluxaDataKey::Payment(payment_id.clone()); Self::bump_ttl(env, &key, Self::payment_ttl(status)); } - fn bump_ttl(env: &Env, key: &DataKey, ttl: u32) { + fn bump_ttl(env: &Env, key: &FluxaDataKey, ttl: u32) { let threshold = core::cmp::max(1, ttl / TTL_BUMP_THRESHOLD_DIVISOR); env.storage().persistent().extend_ttl(key, threshold, ttl); } @@ -735,7 +740,7 @@ impl PaymentProcessor { // Verify that the merchant has the MERCHANT role (granted on verification) if !AccessControl::has_role(&env, &role_merchant(&env), &merchant_id) { - return Err(Error::Unauthorized); + return Err(FluxaError::Unauthorized); } if amount <= 0 { @@ -1021,6 +1026,7 @@ mod dispute_test; mod fx_oracle_test; #[cfg(test)] mod integration_test; +pub mod invoice; pub mod merchant_registry; #[cfg(test)] mod merchant_registry_test; diff --git a/fluxapay/src/merchant_registry.rs b/fluxapay/src/merchant_registry.rs index 228621f..8ef6163 100644 --- a/fluxapay/src/merchant_registry.rs +++ b/fluxapay/src/merchant_registry.rs @@ -1,7 +1,9 @@ use soroban_sdk::{ - contract, contracterror, contractimpl, contracttype, Address, Env, String, Symbol, + contract, contracterror, contractimpl, contracttype, vec, Address, Env, String, Symbol, Vec, }; +use crate::RefundManagerClient; + #[contract] pub struct MerchantRegistry; @@ -70,10 +72,9 @@ impl MerchantRegistry { merchant_id: Address, business_name: String, settlement_currency: String, - ) -> Result<(), MerchantError> { payout_address: Option
, bank_account: Option, - ) -> Result<(), Error> { + ) -> Result<(), MerchantError> { merchant_id.require_auth(); if env @@ -84,8 +85,6 @@ impl MerchantRegistry { return Err(MerchantError::MerchantAlreadyExists); } - let event_currency = settlement_currency.clone(); - let merchant = Merchant { merchant_id: merchant_id.clone(), business_name, @@ -99,7 +98,9 @@ impl MerchantRegistry { env.storage() .persistent() - .set(&MerchantDataKey::Merchant(merchant_id), &merchant); + .set(&MerchantDataKey::Merchant(merchant_id.clone()), &merchant); + + Self::add_to_merchant_list(&env, &merchant_id); Ok(()) } @@ -111,10 +112,9 @@ impl MerchantRegistry { business_name: Option, settlement_currency: Option, active: Option, - ) -> Result<(), MerchantError> { payout_address: Option
, bank_account: Option, - ) -> Result<(), Error> { + ) -> Result<(), MerchantError> { merchant_id.require_auth(); let mut merchant = Self::get_merchant_internal(&env, &merchant_id)?; @@ -137,8 +137,7 @@ impl MerchantRegistry { env.storage() .persistent() - .set(&MerchantDataKey::Merchant(merchant_id), &merchant); - .set(&DataKey::Merchant(merchant_id.clone()), &merchant); + .set(&MerchantDataKey::Merchant(merchant_id.clone()), &merchant); env.events().publish( (Symbol::new(&env, "MERCHANT"), Symbol::new(&env, "UPDATED")), @@ -153,11 +152,9 @@ impl MerchantRegistry { Self::get_merchant_internal(&env, &merchant_id) } - /// Verify merchant (admin only) - pub fn verify_merchant(env: Env, admin: Address, merchant_id: Address) -> Result<(), MerchantError> { /// Verify merchant (admin only) — sets KycTier::Basic for backward compatibility. /// If a RefundManager address is configured, also grants the MERCHANT role there. - pub fn verify_merchant(env: Env, admin: Address, merchant_id: Address) -> Result<(), Error> { + pub fn verify_merchant(env: Env, admin: Address, merchant_id: Address) -> Result<(), MerchantError> { admin.require_auth(); let stored_admin: Address = env @@ -175,23 +172,21 @@ impl MerchantRegistry { env.storage() .persistent() - .set(&DataKey::Merchant(merchant_id.clone()), &merchant); + .set(&MerchantDataKey::Merchant(merchant_id.clone()), &merchant); - // If RefundManager is configured, grant the MERCHANT role if let Some(refund_manager_addr) = env .storage() .persistent() - .get::(&DataKey::RefundManagerAddress) + .get::(&MerchantDataKey::RefundManagerAddress) { - // Call RefundManager::grant_role to grant MERCHANT role - // We use try_invoke to handle cross-contract calls gracefully - let rm_client = crate::RefundManagerClient::new(&env, &refund_manager_addr); - let _ = rm_client.try_grant_role( + let rm_client = RefundManagerClient::new(&env, &refund_manager_addr); + let _ = rm_client.try_refund_grant_role( &admin, &Symbol::new(&env, "MERCHANT"), &merchant_id, ); } + env.events().publish( (Symbol::new(&env, "MERCHANT"), Symbol::new(&env, "VERIFIED")), merchant_id, @@ -206,17 +201,17 @@ impl MerchantRegistry { admin: Address, merchant_id: Address, tier: KycTier, - ) -> Result<(), Error> { + ) -> Result<(), MerchantError> { admin.require_auth(); let stored_admin: Address = env .storage() .persistent() - .get(&DataKey::Admin) - .ok_or(Error::Unauthorized)?; + .get(&MerchantDataKey::Admin) + .ok_or(MerchantError::Unauthorized)?; if admin != stored_admin { - return Err(Error::Unauthorized); + return Err(MerchantError::Unauthorized); } let mut merchant = Self::get_merchant_internal(&env, &merchant_id)?; @@ -234,45 +229,42 @@ impl MerchantRegistry { env: Env, admin: Address, refund_manager: Address, - ) -> Result<(), Error> { + ) -> Result<(), MerchantError> { admin.require_auth(); let stored_admin: Address = env .storage() .persistent() - .get(&DataKey::Admin) - .ok_or(Error::Unauthorized)?; + .get(&MerchantDataKey::Admin) + .ok_or(MerchantError::Unauthorized)?; if admin != stored_admin { - return Err(Error::Unauthorized); + return Err(MerchantError::Unauthorized); } - env.storage() - .persistent() - .set(&DataKey::RefundManagerAddress, &refund_manager); + env.storage().persistent().set( + &MerchantDataKey::RefundManagerAddress, + &refund_manager, + ); Ok(()) } /// Get all registered merchants with pagination support - pub fn get_all_merchants( - env: Env, - offset: u32, - limit: u32, - ) -> Result, Error> { + pub fn get_all_merchants(env: Env, offset: u32, limit: u32) -> Vec { let merchant_ids: Vec
= env .storage() .persistent() - .get(&DataKey::MerchantList) + .get(&MerchantDataKey::MerchantList) .unwrap_or_else(|| vec![&env]); if limit == 0 { - return Ok(vec![&env]); + return vec![&env]; } let mut result = vec![&env]; - let start = offset as usize; - let end = core::cmp::min(merchant_ids.len(), start.saturating_add(limit as usize)); + let start = offset; + let end = core::cmp::min(merchant_ids.len(), start.saturating_add(limit)); let mut i = start; while i < end { @@ -284,15 +276,15 @@ impl MerchantRegistry { i += 1; } - Ok(result) + result } /// Get all verified merchants (kyc_tier != Unverified) - pub fn get_verified_merchants(env: Env) -> Result, Error> { + pub fn get_verified_merchants(env: Env) -> Vec { let merchant_ids: Vec
= env .storage() .persistent() - .get(&DataKey::MerchantList) + .get(&MerchantDataKey::MerchantList) .unwrap_or_else(|| vec![&env]); let mut result = vec![&env]; @@ -304,20 +296,17 @@ impl MerchantRegistry { } } - Ok(result) + result } - // Helper functions - fn get_merchant_internal(env: &Env, merchant_id: &Address) -> Result { fn add_to_merchant_list(env: &Env, merchant_id: &Address) { - let key = DataKey::MerchantList; + let key = MerchantDataKey::MerchantList; let mut merchants: Vec
= env .storage() .persistent() .get(&key) .unwrap_or_else(|| vec![env]); - // Only add if not already present let mut found = false; for m in merchants.iter() { if m == *merchant_id { @@ -332,60 +321,7 @@ impl MerchantRegistry { } } - /// Get all registered merchants with pagination support - pub fn get_all_merchants( - env: Env, - offset: u32, - limit: u32, - ) -> Result, Error> { - let merchant_ids: Vec
= env - .storage() - .persistent() - .get(&DataKey::MerchantList) - .unwrap_or_else(|| vec![&env]); - - if limit == 0 { - return Ok(vec![&env]); - } - - let mut result = vec![&env]; - let start = offset as usize; - let end = core::cmp::min(merchant_ids.len(), start.saturating_add(limit as usize)); - - let mut i = start; - while i < end { - if let Some(merchant_id) = merchant_ids.get(i) { - if let Ok(merchant) = Self::get_merchant_internal(&env, &merchant_id) { - result.push_back(merchant); - } - } - i += 1; - } - - Ok(result) - } - - /// Get all verified merchants (kyc_tier != Unverified) - pub fn get_verified_merchants(env: Env) -> Result, Error> { - let merchant_ids: Vec
= env - .storage() - .persistent() - .get(&DataKey::MerchantList) - .unwrap_or_else(|| vec![&env]); - - let mut result = vec![&env]; - for merchant_id in merchant_ids.iter() { - if let Ok(merchant) = Self::get_merchant_internal(&env, &merchant_id) { - if merchant.kyc_tier != KycTier::Unverified { - result.push_back(merchant); - } - } - } - - Ok(result) - } - - fn get_merchant_internal(env: &Env, merchant_id: &Address) -> Result { + fn get_merchant_internal(env: &Env, merchant_id: &Address) -> Result { env.storage() .persistent() .get(&MerchantDataKey::Merchant(merchant_id.clone())) diff --git a/fluxapay/src/merchant_registry_test.rs b/fluxapay/src/merchant_registry_test.rs index f09ab6d..f7ee5e4 100644 --- a/fluxapay/src/merchant_registry_test.rs +++ b/fluxapay/src/merchant_registry_test.rs @@ -151,7 +151,7 @@ fn test_set_kyc_tier() { let admin = Address::generate(&env); let merchant_id = Address::generate(&env); - client.initialize(&admin); + client.merchant_initialize(&admin); client.register_merchant( &merchant_id, &String::from_str(&env, "BigCorp"), @@ -184,7 +184,7 @@ fn test_set_kyc_tier_unauthorized() { let attacker = Address::generate(&env); let merchant_id = Address::generate(&env); - client.initialize(&admin); + client.merchant_initialize(&admin); client.register_merchant( &merchant_id, &String::from_str(&env, "Merchant"), @@ -206,7 +206,7 @@ fn test_merchant_enumeration() { let client = MerchantRegistryClient::new(&env, &contract_id); let admin = Address::generate(&env); - client.initialize(&admin); + client.merchant_initialize(&admin); // Register multiple merchants let merchant1 = Address::generate(&env); @@ -217,16 +217,22 @@ fn test_merchant_enumeration() { &merchant1, &String::from_str(&env, "Merchant 1"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); client.register_merchant( &merchant2, &String::from_str(&env, "Merchant 2"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); client.register_merchant( &merchant3, &String::from_str(&env, "Merchant 3"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); // Get all merchants - should return all 3 @@ -250,7 +256,7 @@ fn test_verified_merchants_filter() { let client = MerchantRegistryClient::new(&env, &contract_id); let admin = Address::generate(&env); - client.initialize(&admin); + client.merchant_initialize(&admin); // Register merchants let merchant1 = Address::generate(&env); @@ -261,16 +267,22 @@ fn test_verified_merchants_filter() { &merchant1, &String::from_str(&env, "Merchant 1"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); client.register_merchant( &merchant2, &String::from_str(&env, "Merchant 2"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); client.register_merchant( &merchant3, &String::from_str(&env, "Merchant 3"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); // Verify only merchant2 @@ -281,7 +293,10 @@ fn test_verified_merchants_filter() { assert_eq!(verified.len(), 1); assert_eq!(verified.get(0).unwrap().merchant_id, merchant2); assert_eq!(verified.get(0).unwrap().kyc_tier, KycTier::Basic); -#[should_panic(expected = "HostError: Error(Contract, #4)")] +} + +#[test] +#[should_panic(expected = "HostError: Error(Contract, #10)")] fn test_unverified_merchant_cannot_create_payment() { let env = Env::default(); env.mock_all_auths(); @@ -301,7 +316,7 @@ fn test_unverified_merchant_cannot_create_payment() { // Initialize contracts refund_client.initialize_refund_manager(&admin, &usdc_token); payment_client.initialize_payment_processor(&admin); - merchant_client.initialize(&admin); + merchant_client.merchant_initialize(&admin); // Register merchant but DON'T verify them let merchant = Address::generate(&env); @@ -309,6 +324,8 @@ fn test_unverified_merchant_cannot_create_payment() { &merchant, &String::from_str(&env, "Unverified Merchant"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); // Try to create payment - should fail because merchant is not verified @@ -347,7 +364,7 @@ fn test_verified_merchant_can_create_payment() { // Initialize contracts refund_client.initialize_refund_manager(&admin, &usdc_token); payment_client.initialize_payment_processor(&admin); - merchant_client.initialize(&admin); + merchant_client.merchant_initialize(&admin); // Register and verify merchant let merchant = Address::generate(&env); @@ -355,10 +372,12 @@ fn test_verified_merchant_can_create_payment() { &merchant, &String::from_str(&env, "Verified Merchant"), &String::from_str(&env, "USDC"), + &None::
, + &None::, ); - // Manually grant MERCHANT role (simulating what would happen with set_refund_manager_address) - payment_client.grant_role(&admin, &Symbol::new(&env, "MERCHANT"), &merchant); + // Manually grant MERCHANT role on the payment processor + payment_client.payment_grant_role(&admin, &Symbol::new(&env, "MERCHANT"), &merchant); // Now create payment should succeed let payment_id = String::from_str(&env, "PAY_01"); diff --git a/fluxapay/src/test.rs b/fluxapay/src/test.rs index 8813e33..0f624f4 100644 --- a/fluxapay/src/test.rs +++ b/fluxapay/src/test.rs @@ -1,7 +1,7 @@ #![cfg(test)] use super::*; -use access_control::{role_admin, role_oracle, role_settlement_operator}; +use access_control::{role_admin, role_merchant, role_oracle, role_settlement_operator}; use soroban_sdk::{ testutils::{Address as _, BytesN as _, Ledger as _}, token, Address, BytesN, Env, String, Symbol, @@ -34,7 +34,7 @@ fn setup_refund_manager(env: &Env) -> (Address, RefundManagerClient<'_>) { fn test_create_payment() { let env = Env::default(); env.mock_all_auths(); - let (_admin, client) = setup_payment_processor(&env); + let (admin, client) = setup_payment_processor(&env); let payment_id = String::from_str(&env, "payment_123"); let merchant_id = Address::generate(&env); @@ -43,6 +43,8 @@ fn test_create_payment() { let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + client.payment_grant_role(&admin, &role_merchant(&env), &merchant_id); + let payment = client.create_payment( &payment_id, &merchant_id, @@ -71,6 +73,8 @@ fn test_verify_payment_success() { let amount = 1000000000i128; let expires_at = env.ledger().timestamp() + 3600; + client.payment_grant_role(&admin, &role_merchant(&env), &merchant_id); + client.create_payment( &payment_id, &merchant_id, @@ -102,13 +106,15 @@ fn test_verify_payment_success() { fn test_get_merchant_payments_index_and_pagination() { let env = Env::default(); env.mock_all_auths(); - let (_admin, client) = setup_payment_processor(&env); + let (admin, client) = setup_payment_processor(&env); let merchant_id = Address::generate(&env); let currency = Symbol::new(&env, "USDC"); let deposit_address = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + client.payment_grant_role(&admin, &role_merchant(&env), &merchant_id); + let payment_id_1 = String::from_str(&env, "merchant_pay_1"); let payment_id_2 = String::from_str(&env, "merchant_pay_2"); let payment_id_3 = String::from_str(&env, "merchant_pay_3"); @@ -154,12 +160,14 @@ fn test_get_merchant_payments_index_and_pagination() { fn test_cancel_payment_before_expiry_by_merchant() { let env = Env::default(); env.mock_all_auths(); - let (_admin, client) = setup_payment_processor(&env); + let (admin, client) = setup_payment_processor(&env); let payment_id = String::from_str(&env, "cancel_before_expiry"); let merchant_id = Address::generate(&env); let expires_at = env.ledger().timestamp() + 3600; + client.payment_grant_role(&admin, &role_merchant(&env), &merchant_id); + client.create_payment( &payment_id, &merchant_id, @@ -179,12 +187,14 @@ fn test_cancel_payment_before_expiry_by_merchant() { fn test_expire_payment_after_deadline() { let env = Env::default(); env.mock_all_auths(); - let (_admin, client) = setup_payment_processor(&env); + let (admin, client) = setup_payment_processor(&env); let payment_id = String::from_str(&env, "expire_after_deadline"); let merchant_id = Address::generate(&env); let expires_at = env.ledger().timestamp() + 10; + client.payment_grant_role(&admin, &role_merchant(&env), &merchant_id); + client.create_payment( &payment_id, &merchant_id, @@ -409,18 +419,18 @@ fn test_get_role_members() { assert_eq!(members.len(), 0); // Grant oracle to oracle1 - client.grant_role(&admin, &oracle_role, &oracle1); + client.refund_grant_role(&admin, &oracle_role, &oracle1); let members = client.get_role_members(&oracle_role); assert_eq!(members.len(), 1); assert_eq!(members.get(0), Some(oracle1.clone())); // Grant oracle to oracle2 - client.grant_role(&admin, &oracle_role, &oracle2); + client.refund_grant_role(&admin, &oracle_role, &oracle2); let members = client.get_role_members(&oracle_role); assert_eq!(members.len(), 2); // Revoke oracle1 — list should shrink - client.revoke_role(&admin, &oracle_role, &oracle1); + client.refund_revoke_role(&admin, &oracle_role, &oracle1); let members = client.get_role_members(&oracle_role); assert_eq!(members.len(), 1); assert_eq!(members.get(0), Some(oracle2.clone())); diff --git a/fluxapay/test_snapshots/auth_test/test_verify_merchant_called_by_non_admin.1.json b/fluxapay/test_snapshots/auth_test/test_verify_merchant_called_by_non_admin.1.json index 9cd81db..6cc8ca3 100644 --- a/fluxapay/test_snapshots/auth_test/test_verify_merchant_called_by_non_admin.1.json +++ b/fluxapay/test_snapshots/auth_test/test_verify_merchant_called_by_non_admin.1.json @@ -682,6 +682,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json index 98bdcf1..a36f47c 100644 --- a/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json @@ -50,6 +50,31 @@ ] ], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -91,7 +116,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -125,7 +150,7 @@ "string": "payment_001" }, { - "bytes": "bc242e35466a20e480ca0b3b56c8f3d79118af60d6d9bc1cdc3e983dc4a653c7" + "bytes": "b5cc82e3342945096bff842a10576353ac586edb86a26318cf39dea68e55d1e2" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -458,7 +483,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "bc242e35466a20e480ca0b3b56c8f3d79118af60d6d9bc1cdc3e983dc4a653c7" + "bytes": "b5cc82e3342945096bff842a10576353ac586edb86a26318cf39dea68e55d1e2" } } ] @@ -521,6 +546,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -621,6 +697,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1138,7 +1263,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "1033654523790656264" } }, "durability": "temporary" @@ -1153,7 +1278,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1204,7 +1362,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary" @@ -1219,7 +1377,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1237,7 +1395,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1252,7 +1410,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", @@ -1270,7 +1428,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1285,7 +1443,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/dispute_test/test_dispute_invalid_amount.1.json b/fluxapay/test_snapshots/dispute_test/test_dispute_invalid_amount.1.json index 59cecd6..86c4cbd 100644 --- a/fluxapay/test_snapshots/dispute_test/test_dispute_invalid_amount.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_dispute_invalid_amount.1.json @@ -50,6 +50,31 @@ ] ], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -428,6 +453,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -477,6 +553,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -719,6 +844,39 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { @@ -758,7 +916,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary" @@ -773,7 +931,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json b/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json index ee05b49..47c45b8 100644 --- a/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json @@ -50,6 +50,31 @@ ] ], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -91,7 +116,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -125,7 +150,7 @@ "string": "payment_005" }, { - "bytes": "87c69e840ce7a4cdcecc8818dafe631646ca33632e77335acfca8351055fa963" + "bytes": "b0671e9f710416be6964cb0023b672517e44f012c08f90a1878a0fe1228ad9a0" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -489,7 +514,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "87c69e840ce7a4cdcecc8818dafe631646ca33632e77335acfca8351055fa963" + "bytes": "b0671e9f710416be6964cb0023b672517e44f012c08f90a1878a0fe1228ad9a0" } } ] @@ -552,6 +577,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -652,6 +728,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1304,7 +1429,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "1033654523790656264" } }, "durability": "temporary" @@ -1319,7 +1444,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1370,7 +1528,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary" @@ -1385,7 +1543,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1403,7 +1561,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -1418,7 +1576,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -1469,7 +1627,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1484,7 +1642,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json index ea6b7ae..f9a30e5 100644 --- a/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json @@ -57,7 +57,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -75,6 +75,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -116,7 +141,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -150,7 +175,7 @@ "string": "payment_004" }, { - "bytes": "ad4b791251129397560740efb800af49f10280410172bdaf93206953444028a5" + "bytes": "6dbbb6eb28d66f795fac1c029ddfe1ec12c930a7e676e304a81b6650e23246bb" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -508,7 +533,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "ad4b791251129397560740efb800af49f10280410172bdaf93206953444028a5" + "bytes": "6dbbb6eb28d66f795fac1c029ddfe1ec12c930a7e676e304a81b6650e23246bb" } } ] @@ -571,6 +596,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -671,6 +747,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1325,7 +1450,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1340,7 +1465,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1391,7 +1549,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary" @@ -1406,7 +1564,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1424,7 +1582,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -1439,7 +1597,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -1457,7 +1615,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary" @@ -1472,7 +1630,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary", @@ -1490,7 +1648,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1505,7 +1663,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json index 49d89a7..6039e33 100644 --- a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json @@ -57,7 +57,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -75,6 +75,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -116,7 +141,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -150,7 +175,7 @@ "string": "pay_auth_test" }, { - "bytes": "9906a4d1a143e88682941365e1160011d8739f057294667c94328ed29ae106a7" + "bytes": "5dbd4ea0e25852fa390994f5184e7a9275c16b2de06b96f6cbcf3e453583b384" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -510,7 +535,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "9906a4d1a143e88682941365e1160011d8739f057294667c94328ed29ae106a7" + "bytes": "5dbd4ea0e25852fa390994f5184e7a9275c16b2de06b96f6cbcf3e453583b384" } } ] @@ -573,6 +598,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -673,6 +749,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1663,7 +1788,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1678,7 +1803,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1729,7 +1887,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary" @@ -1744,7 +1902,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1762,7 +1920,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -1777,7 +1935,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -1795,7 +1953,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary" @@ -1810,7 +1968,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary", @@ -1828,7 +1986,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1843,7 +2001,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json index 4805880..4edf768 100644 --- a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json @@ -57,7 +57,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -75,6 +75,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -116,7 +141,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -150,7 +175,7 @@ "string": "payment_003" }, { - "bytes": "23e4955c8c5fa22b866a49e56dbc2421ad3729ee329006c66bdeee0effe0c798" + "bytes": "55c3dd450015b46e10fdf1a98be510c95a22661a753e9183248c751ae15cdec9" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -510,7 +535,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "23e4955c8c5fa22b866a49e56dbc2421ad3729ee329006c66bdeee0effe0c798" + "bytes": "55c3dd450015b46e10fdf1a98be510c95a22661a753e9183248c751ae15cdec9" } } ] @@ -573,6 +598,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -673,6 +749,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1663,7 +1788,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1678,7 +1803,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1729,7 +1887,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary" @@ -1744,7 +1902,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1762,7 +1920,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -1777,7 +1935,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -1795,7 +1953,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary" @@ -1810,7 +1968,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary", @@ -1828,7 +1986,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1843,7 +2001,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json index 59b330d..1c22f9c 100644 --- a/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json @@ -57,7 +57,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -75,6 +75,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", @@ -116,7 +141,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" @@ -150,7 +175,7 @@ "string": "payment_002" }, { - "bytes": "13d9bab19435d8ee8460fca5e0256459cd07cbe56812211fd59a7f65469c4bed" + "bytes": "8294b589ed5a11fc490dcaaeb7e17c35baf9248620aea6343434823c3fbe0fc0" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -505,7 +530,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "13d9bab19435d8ee8460fca5e0256459cd07cbe56812211fd59a7f65469c4bed" + "bytes": "8294b589ed5a11fc490dcaaeb7e17c35baf9248620aea6343434823c3fbe0fc0" } } ] @@ -568,6 +593,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -668,6 +744,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1318,7 +1443,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1333,7 +1458,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1384,7 +1542,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary" @@ -1399,7 +1557,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1417,7 +1575,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -1432,7 +1590,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -1450,7 +1608,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary" @@ -1465,7 +1623,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary", @@ -1483,7 +1641,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1498,7 +1656,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/fx_oracle_test/test_set_and_get_rate.1.json b/fluxapay/test_snapshots/fx_oracle_test/test_set_and_get_rate.1.json index afd75dc..d45c196 100644 --- a/fluxapay/test_snapshots/fx_oracle_test/test_set_and_get_rate.1.json +++ b/fluxapay/test_snapshots/fx_oracle_test/test_set_and_get_rate.1.json @@ -14,7 +14,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "oracle_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/fx_oracle_test/test_settlement_amount_calculation.1.json b/fluxapay/test_snapshots/fx_oracle_test/test_settlement_amount_calculation.1.json index 684cb65..2d31577 100644 --- a/fluxapay/test_snapshots/fx_oracle_test/test_settlement_amount_calculation.1.json +++ b/fluxapay/test_snapshots/fx_oracle_test/test_settlement_amount_calculation.1.json @@ -14,7 +14,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "oracle_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/fx_oracle_test/test_staleness_check.1.json b/fluxapay/test_snapshots/fx_oracle_test/test_staleness_check.1.json index 720c7b8..126e06a 100644 --- a/fluxapay/test_snapshots/fx_oracle_test/test_staleness_check.1.json +++ b/fluxapay/test_snapshots/fx_oracle_test/test_staleness_check.1.json @@ -14,7 +14,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "oracle_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/integration_test/test_failure_and_expiration_path.1.json b/fluxapay/test_snapshots/integration_test/test_failure_and_expiration_path.1.json index 00568f1..662a4b2 100644 --- a/fluxapay/test_snapshots/integration_test/test_failure_and_expiration_path.1.json +++ b/fluxapay/test_snapshots/integration_test/test_failure_and_expiration_path.1.json @@ -52,6 +52,31 @@ ], [], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -126,7 +151,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" @@ -513,6 +538,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -562,6 +638,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1205,7 +1330,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "1033654523790656264" } }, "durability": "temporary" @@ -1220,7 +1345,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "4270020994084947596" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "4270020994084947596" } }, "durability": "temporary", @@ -1271,7 +1429,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary" @@ -1286,7 +1444,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1304,7 +1462,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary" @@ -1319,7 +1477,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1337,7 +1495,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1352,7 +1510,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json b/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json index 9fc0873..950ea0f 100644 --- a/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json +++ b/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json @@ -102,6 +102,31 @@ ] ], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -143,7 +168,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" @@ -177,7 +202,7 @@ "string": "PAY_01" }, { - "bytes": "33a58796cb91464cc864485256ac71f4ae46ff82e805ac616af0ff956bc08bc4" + "bytes": "83b50608cc7e96a7943e9aa2504614d37076f87849986a70cec42659ef8d5e1d" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" @@ -232,7 +257,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" @@ -563,7 +588,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "33a58796cb91464cc864485256ac71f4ae46ff82e805ac616af0ff956bc08bc4" + "bytes": "83b50608cc7e96a7943e9aa2504614d37076f87849986a70cec42659ef8d5e1d" } } ] @@ -626,6 +651,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -726,6 +802,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1826,6 +1951,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1864,7 +2032,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "1194852393571756375" } }, "durability": "temporary" @@ -1879,7 +2047,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "1194852393571756375" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1930,7 +2131,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "5806905060045992000" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1945,7 +2146,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "5806905060045992000" + "nonce": "8370022561469687789" } }, "durability": "temporary", @@ -2029,7 +2230,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -2044,7 +2245,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary", @@ -2062,7 +2263,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary" @@ -2077,7 +2278,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5", "key": { "ledger_key_nonce": { - "nonce": "6277191135259896685" + "nonce": "5806905060045992000" } }, "durability": "temporary", @@ -2095,7 +2296,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -2110,7 +2311,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -2128,7 +2329,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N", "key": { "ledger_key_nonce": { - "nonce": "1194852393571756375" + "nonce": "115220454072064130" } }, "durability": "temporary" @@ -2143,7 +2344,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI7N", "key": { "ledger_key_nonce": { - "nonce": "1194852393571756375" + "nonce": "115220454072064130" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json b/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json index 7f18753..f0e830e 100644 --- a/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json +++ b/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json @@ -59,7 +59,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" @@ -77,6 +77,31 @@ } ] ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", @@ -118,7 +143,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" @@ -152,7 +177,7 @@ "string": "PAY_SETTLE" }, { - "bytes": "d669b7ba6870d46791d179e525878478ad898113a4a7b3cace4b4a71a94b956b" + "bytes": "4d0c91851ab783baec6eb65bd1c6afee47d1a6357775ef1f7f9a30e73758db1e" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" @@ -479,7 +504,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "d669b7ba6870d46791d179e525878478ad898113a4a7b3cace4b4a71a94b956b" + "bytes": "4d0c91851ab783baec6eb65bd1c6afee47d1a6357775ef1f7f9a30e73758db1e" } } ] @@ -542,6 +567,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -693,6 +769,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1143,7 +1268,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" } }, "durability": "temporary" @@ -1158,7 +1283,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", "key": { "ledger_key_nonce": { - "nonce": "2032731177588607455" + "nonce": "4270020994084947596" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" } }, "durability": "temporary", @@ -1209,7 +1367,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary" @@ -1224,7 +1382,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", "key": { "ledger_key_nonce": { - "nonce": "4837995959683129791" + "nonce": "2032731177588607455" } }, "durability": "temporary", @@ -1242,7 +1400,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary" @@ -1257,7 +1415,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAX5", "key": { "ledger_key_nonce": { - "nonce": "8370022561469687789" + "nonce": "6277191135259896685" } }, "durability": "temporary", @@ -1275,7 +1433,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary" @@ -1290,7 +1448,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYRE5", "key": { "ledger_key_nonce": { - "nonce": "4270020994084947596" + "nonce": "8370022561469687789" } }, "durability": "temporary", diff --git a/fluxapay/test_snapshots/invoice/test/cancel_invoice_draft_and_issued.1.json b/fluxapay/test_snapshots/invoice/test/cancel_invoice_draft_and_issued.1.json new file mode 100644 index 0000000..e055e8a --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/cancel_invoice_draft_and_issued.1.json @@ -0,0 +1,649 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INVD" + }, + { + "i128": "1" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "cancel_invoice", + "args": [ + { + "symbol": "INVD" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INVI" + }, + { + "i128": "1" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INVI" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "cancel_invoice", + "args": [ + { + "symbol": "INVI" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INVD" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INVD" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "1" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INVD" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Cancelled" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INVI" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INVI" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "1" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INVI" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Cancelled" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "2032731177588607455" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/cancel_paid_returns_invalid_status.1.json b/fluxapay/test_snapshots/invoice/test/cancel_paid_returns_invalid_status.1.json new file mode 100644 index 0000000..29e6c22 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/cancel_paid_returns_invalid_status.1.json @@ -0,0 +1,433 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INVP" + }, + { + "i128": "1" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INVP" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_paid", + "args": [ + { + "symbol": "INVP" + }, + { + "symbol": "PY" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INVP" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INVP" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "1" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INVP" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": { + "symbol": "PY" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Paid" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/create_invoice_success_and_duplicate_returns_already_exists.1.json b/fluxapay/test_snapshots/invoice/test/create_invoice_success_and_duplicate_returns_already_exists.1.json new file mode 100644 index 0000000..763e841 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/create_invoice_success_and_duplicate_returns_already_exists.1.json @@ -0,0 +1,324 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV001" + }, + { + "i128": "100" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV001" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV001" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "100" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV001" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Draft" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/get_invoice_not_found.1.json b/fluxapay/test_snapshots/invoice/test/get_invoice_not_found.1.json new file mode 100644 index 0000000..2f7d169 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/get_invoice_not_found.1.json @@ -0,0 +1,156 @@ +{ + "generators": { + "address": 3, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json b/fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json new file mode 100644 index 0000000..602ac7c --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json @@ -0,0 +1,157 @@ +{ + "generators": { + "address": 3, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/invoice_initialize_sets_admin_and_payment_processor.1.json b/fluxapay/test_snapshots/invoice/test/invoice_initialize_sets_admin_and_payment_processor.1.json new file mode 100644 index 0000000..602ac7c --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/invoice_initialize_sets_admin_and_payment_processor.1.json @@ -0,0 +1,157 @@ +{ + "generators": { + "address": 3, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued.1.json b/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued.1.json new file mode 100644 index 0000000..c451eec --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued.1.json @@ -0,0 +1,376 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV002" + }, + { + "i128": "50" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INV002" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV002" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV002" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "50" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV002" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Issued" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json b/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json new file mode 100644 index 0000000..c451eec --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json @@ -0,0 +1,376 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV002" + }, + { + "i128": "50" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INV002" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV002" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV002" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "50" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV002" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Issued" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/issue_invoice_wrong_status_returns_invalid_status.1.json b/fluxapay/test_snapshots/invoice/test/issue_invoice_wrong_status_returns_invalid_status.1.json new file mode 100644 index 0000000..3412f23 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/issue_invoice_wrong_status_returns_invalid_status.1.json @@ -0,0 +1,376 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV003" + }, + { + "i128": "10" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INV003" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV003" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV003" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "10" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV003" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Issued" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/mark_paid_draft_returns_invalid_status.1.json b/fluxapay/test_snapshots/invoice/test/mark_paid_draft_returns_invalid_status.1.json new file mode 100644 index 0000000..1525625 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/mark_paid_draft_returns_invalid_status.1.json @@ -0,0 +1,324 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV007" + }, + { + "i128": "1" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV007" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV007" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "1" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV007" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Draft" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id.1.json b/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id.1.json new file mode 100644 index 0000000..06ad1f8 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id.1.json @@ -0,0 +1,433 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV004" + }, + { + "i128": "200" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INV004" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_paid", + "args": [ + { + "symbol": "INV004" + }, + { + "symbol": "PAY99" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV004" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV004" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "200" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV004" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": { + "symbol": "PAY99" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Paid" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json b/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json new file mode 100644 index 0000000..06ad1f8 --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json @@ -0,0 +1,433 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV004" + }, + { + "i128": "200" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INV004" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_paid", + "args": [ + { + "symbol": "INV004" + }, + { + "symbol": "PAY99" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV004" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV004" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "200" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV004" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": { + "symbol": "PAY99" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Paid" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/mark_paid_twice_returns_already_paid.1.json b/fluxapay/test_snapshots/invoice/test/mark_paid_twice_returns_already_paid.1.json new file mode 100644 index 0000000..6c5f03e --- /dev/null +++ b/fluxapay/test_snapshots/invoice/test/mark_paid_twice_returns_already_paid.1.json @@ -0,0 +1,433 @@ +{ + "generators": { + "address": 4, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_invoice", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "INV005" + }, + { + "i128": "1" + }, + { + "symbol": "USDC" + }, + { + "u64": "86400" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_invoice", + "args": [ + { + "symbol": "INV005" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_paid", + "args": [ + { + "symbol": "INV005" + }, + { + "symbol": "P1" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV005" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Invoice" + }, + { + "symbol": "INV005" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "1" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "due_date" + }, + "val": { + "u64": "86400" + } + }, + { + "key": { + "symbol": "invoice_id" + }, + "val": { + "symbol": "INV005" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payment_id" + }, + "val": { + "symbol": "P1" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Paid" + } + ] + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "PaymentProcessor" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_enumeration.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_enumeration.1.json new file mode 100644 index 0000000..e9437c5 --- /dev/null +++ b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_enumeration.1.json @@ -0,0 +1,678 @@ +{ + "generators": { + "address": 5, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "Merchant 1" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "Merchant 2" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "string": "Merchant 3" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Merchant 1" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Merchant 2" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Merchant 3" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_registration.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_registration.1.json index be2384b..d9067be 100644 --- a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_registration.1.json +++ b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_registration.1.json @@ -163,6 +163,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_update.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_update.1.json index dea0940..b010a37 100644 --- a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_update.1.json +++ b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_update.1.json @@ -193,6 +193,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_verification.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_verification.1.json index d3b7510..e5d8cf1 100644 --- a/fluxapay/test_snapshots/merchant_registry_test/test_merchant_verification.1.json +++ b/fluxapay/test_snapshots/merchant_registry_test/test_merchant_verification.1.json @@ -217,6 +217,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier.1.json index ac24851..c12e4b2 100644 --- a/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier.1.json +++ b/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier.1.json @@ -254,6 +254,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier_unauthorized.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier_unauthorized.1.json index b97b893..60bccc3 100644 --- a/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier_unauthorized.1.json +++ b/fluxapay/test_snapshots/merchant_registry_test/test_set_kyc_tier_unauthorized.1.json @@ -195,6 +195,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_unauthorized_verification.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_unauthorized_verification.1.json index b97b893..60bccc3 100644 --- a/fluxapay/test_snapshots/merchant_registry_test/test_unauthorized_verification.1.json +++ b/fluxapay/test_snapshots/merchant_registry_test/test_unauthorized_verification.1.json @@ -195,6 +195,49 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_unverified_merchant_cannot_create_payment.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_unverified_merchant_cannot_create_payment.1.json new file mode 100644 index 0000000..22cc042 --- /dev/null +++ b/fluxapay/test_snapshots/merchant_registry_test/test_unverified_merchant_cannot_create_payment.1.json @@ -0,0 +1,907 @@ +{ + "generators": { + "address": 8, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + { + "function": { + "contract_fn": { + "contract_address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "Unverified Merchant" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + "balance": "0", + "seq_num": "0", + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "UsdcToken" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "UsdcToken" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Unverified Merchant" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000006" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_verified_merchant_can_create_payment.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_verified_merchant_can_create_payment.1.json new file mode 100644 index 0000000..1fd1b5e --- /dev/null +++ b/fluxapay/test_snapshots/merchant_registry_test/test_verified_merchant_can_create_payment.1.json @@ -0,0 +1,1336 @@ +{ + "generators": { + "address": 8, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + { + "function": { + "contract_fn": { + "contract_address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "Verified Merchant" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "create_payment", + "args": [ + { + "string": "PAY_01" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "i128": "1000" + }, + { + "symbol": "USDC" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "u64": "3600" + } + ] + } + }, + "sub_invocations": [] + } + ] + ] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + "balance": "0", + "seq_num": "0", + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantPayments" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantPayments" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "PAY_01" + } + ] + } + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Payment" + }, + { + "string": "PAY_01" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Payment" + }, + { + "string": "PAY_01" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": "1000" + } + }, + { + "key": { + "symbol": "confirmed_at" + }, + "val": "void" + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "currency" + }, + "val": { + "symbol": "USDC" + } + }, + { + "key": { + "symbol": "deposit_address" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + }, + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": "3600" + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "payer_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "payment_id" + }, + "val": { + "string": "PAY_01" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Pending" + } + ] + } + }, + { + "key": { + "symbol": "transaction_hash" + }, + "val": "void" + } + ] + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "ADMIN" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "ADMIN" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "UsdcToken" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "UsdcToken" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Verified Merchant" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CACMVW2KK4H5FZDFF2AUCAKQTEJMZZWJUIZF23XMRVYQBSXYLHZ6BKWN", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHUF" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000006" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "PAYMENT" + }, + { + "symbol": "CREATED" + } + ], + "data": { + "string": "PAY_01" + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/merchant_registry_test/test_verified_merchants_filter.1.json b/fluxapay/test_snapshots/merchant_registry_test/test_verified_merchants_filter.1.json new file mode 100644 index 0000000..ba9b9a9 --- /dev/null +++ b/fluxapay/test_snapshots/merchant_registry_test/test_verified_merchants_filter.1.json @@ -0,0 +1,731 @@ +{ + "generators": { + "address": 5, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "Merchant 1" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "Merchant 2" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "string": "Merchant 3" + }, + { + "string": "USDC" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "verify_merchant", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 23, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Merchant 1" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Merchant 2" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Basic" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Merchant" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "bank_account" + }, + "val": "void" + }, + { + "key": { + "symbol": "business_name" + }, + "val": { + "string": "Merchant 3" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "0" + } + }, + { + "key": { + "symbol": "kyc_tier" + }, + "val": { + "vec": [ + { + "symbol": "Unverified" + } + ] + } + }, + { + "key": { + "symbol": "merchant_id" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "symbol": "payout_address" + }, + "val": "void" + }, + { + "key": { + "symbol": "settlement_currency" + }, + "val": { + "string": "USDC" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "MerchantList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/fluxapay/test_snapshots/test/test_cancel_payment_before_expiry_by_merchant.1.json b/fluxapay/test_snapshots/test/test_cancel_payment_before_expiry_by_merchant.1.json index 907df4e..09b88e5 100644 --- a/fluxapay/test_snapshots/test/test_cancel_payment_before_expiry_by_merchant.1.json +++ b/fluxapay/test_snapshots/test/test_cancel_payment_before_expiry_by_merchant.1.json @@ -7,6 +7,31 @@ "auth": [ [], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", @@ -346,6 +371,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -395,6 +471,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -430,7 +555,7 @@ [ { "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -445,7 +570,7 @@ "data": { "contract_data": { "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -460,6 +585,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/test/test_create_payment.1.json b/fluxapay/test_snapshots/test/test_create_payment.1.json index 8cc8b08..b67cd6c 100644 --- a/fluxapay/test_snapshots/test/test_create_payment.1.json +++ b/fluxapay/test_snapshots/test/test_create_payment.1.json @@ -7,6 +7,31 @@ "auth": [ [], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", @@ -323,6 +348,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -372,6 +448,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -407,7 +532,7 @@ [ { "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -422,7 +547,7 @@ "data": { "contract_data": { "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -437,6 +562,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_code": { diff --git a/fluxapay/test_snapshots/test/test_expire_payment_after_deadline.1.json b/fluxapay/test_snapshots/test/test_expire_payment_after_deadline.1.json index 355d899..dd3fc79 100644 --- a/fluxapay/test_snapshots/test/test_expire_payment_after_deadline.1.json +++ b/fluxapay/test_snapshots/test/test_expire_payment_after_deadline.1.json @@ -7,6 +7,31 @@ "auth": [ [], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", @@ -325,6 +350,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -374,6 +450,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -409,7 +534,7 @@ [ { "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -424,7 +549,7 @@ "data": { "contract_data": { "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -439,6 +564,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "5541220902715666415" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_code": { diff --git a/fluxapay/test_snapshots/test/test_get_merchant_payments_index_and_pagination.1.json b/fluxapay/test_snapshots/test/test_get_merchant_payments_index_and_pagination.1.json index 696f353..a9d39e0 100644 --- a/fluxapay/test_snapshots/test/test_get_merchant_payments_index_and_pagination.1.json +++ b/fluxapay/test_snapshots/test/test_get_merchant_payments_index_and_pagination.1.json @@ -7,6 +7,31 @@ "auth": [ [], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", @@ -663,6 +688,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -712,6 +788,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -747,7 +872,7 @@ [ { "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -762,7 +887,7 @@ "data": { "contract_data": { "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { "nonce": "801925984706572462" @@ -810,6 +935,39 @@ 6311999 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": "4837995959683129791" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], [ { "contract_data": { diff --git a/fluxapay/test_snapshots/test/test_get_role_members.1.json b/fluxapay/test_snapshots/test/test_get_role_members.1.json index 06d68f8..7009433 100644 --- a/fluxapay/test_snapshots/test/test_get_role_members.1.json +++ b/fluxapay/test_snapshots/test/test_get_role_members.1.json @@ -56,7 +56,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" @@ -82,7 +82,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" @@ -108,7 +108,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "revoke_role", + "function_name": "refund_revoke_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/test/test_grant_role.1.json b/fluxapay/test_snapshots/test/test_grant_role.1.json index 81832b8..25c42b3 100644 --- a/fluxapay/test_snapshots/test/test_grant_role.1.json +++ b/fluxapay/test_snapshots/test/test_grant_role.1.json @@ -55,7 +55,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/test/test_process_refund.1.json b/fluxapay/test_snapshots/test/test_process_refund.1.json index a06e7df..0decb2d 100644 --- a/fluxapay/test_snapshots/test/test_process_refund.1.json +++ b/fluxapay/test_snapshots/test/test_process_refund.1.json @@ -84,7 +84,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "refund_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/test/test_transfer_admin.1.json b/fluxapay/test_snapshots/test/test_transfer_admin.1.json index 15a16db..00ae503 100644 --- a/fluxapay/test_snapshots/test/test_transfer_admin.1.json +++ b/fluxapay/test_snapshots/test/test_transfer_admin.1.json @@ -55,7 +55,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "transfer_admin", + "function_name": "refund_transfer_admin", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" diff --git a/fluxapay/test_snapshots/test/test_verify_payment_success.1.json b/fluxapay/test_snapshots/test/test_verify_payment_success.1.json index 3deca2d..6b1418d 100644 --- a/fluxapay/test_snapshots/test/test_verify_payment_success.1.json +++ b/fluxapay/test_snapshots/test/test_verify_payment_success.1.json @@ -7,6 +7,31 @@ "auth": [ [], [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "payment_grant_role", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], [ [ "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", @@ -48,7 +73,7 @@ "function": { "contract_fn": { "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "grant_role", + "function_name": "payment_grant_role", "args": [ { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" @@ -82,7 +107,7 @@ "string": "payment_123" }, { - "bytes": "2cc7295348c2f9695f0afd32bdd6a19f05c8e66eeb24cd3c5c3bd1ff0ab62933" + "bytes": "17a93d01153c1351d9579973e72920e9167b8ecb562714a243f5c3b6b6352e1b" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" @@ -323,7 +348,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "2cc7295348c2f9695f0afd32bdd6a19f05c8e66eeb24cd3c5c3bd1ff0ab62933" + "bytes": "17a93d01153c1351d9579973e72920e9167b8ecb562714a243f5c3b6b6352e1b" } } ] @@ -386,6 +411,57 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Role" + }, + { + "symbol": "MERCHANT" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "bool": true + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -486,6 +562,55 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "RoleMembers" + }, + { + "symbol": "MERCHANT" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -573,7 +698,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { - "nonce": "5541220902715666415" + "nonce": "801925984706572462" } }, "durability": "temporary" @@ -588,7 +713,40 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", "key": { "ledger_key_nonce": { - "nonce": "5541220902715666415" + "nonce": "801925984706572462" + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": "1033654523790656264" } }, "durability": "temporary", @@ -606,7 +764,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "801925984706572462" + "nonce": "5541220902715666415" } }, "durability": "temporary" @@ -621,7 +779,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", "key": { "ledger_key_nonce": { - "nonce": "801925984706572462" + "nonce": "5541220902715666415" } }, "durability": "temporary", @@ -639,7 +797,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary" @@ -654,7 +812,7 @@ "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4", "key": { "ledger_key_nonce": { - "nonce": "1033654523790656264" + "nonce": "4837995959683129791" } }, "durability": "temporary", From 3c0a5dd68a01e71ef79da215df13f2acfc585013 Mon Sep 17 00:00:00 2001 From: jerrybarry Date: Sat, 28 Mar 2026 10:42:45 +0100 Subject: [PATCH 2/3] chore: remove obsolete invoice test snapshot files Made-with: Cursor --- .../dispute_test/test_create_dispute.1.json | 4 +- .../test_get_payment_disputes.1.json | 4 +- .../dispute_test/test_reject_dispute.1.json | 4 +- ...lve_dispute_with_only_operator_auth.1.json | 4 +- .../test_resolve_dispute_with_refund.1.json | 4 +- .../dispute_test/test_review_dispute.1.json | 4 +- .../test_happy_path_flow.1.json | 4 +- .../test_settlement_path.1.json | 4 +- ...ze_sets_admin_and_payment_processor.1.json | 157 ------- ...invoice_draft_to_issued_emits_event.1.json | 376 --------------- ...ets_paid_and_payment_id_emits_event.1.json | 433 ------------------ .../test/test_verify_payment_success.1.json | 4 +- 12 files changed, 18 insertions(+), 984 deletions(-) delete mode 100644 fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json delete mode 100644 fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json delete mode 100644 fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json diff --git a/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json index a36f47c..f62c8f7 100644 --- a/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json @@ -150,7 +150,7 @@ "string": "payment_001" }, { - "bytes": "b5cc82e3342945096bff842a10576353ac586edb86a26318cf39dea68e55d1e2" + "bytes": "7a3adbb785239d195ace9e7a7e273920bfa43173c3bd2fdb5b0e4573f6283dad" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -483,7 +483,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "b5cc82e3342945096bff842a10576353ac586edb86a26318cf39dea68e55d1e2" + "bytes": "7a3adbb785239d195ace9e7a7e273920bfa43173c3bd2fdb5b0e4573f6283dad" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json b/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json index 47c45b8..0dc6af1 100644 --- a/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json @@ -150,7 +150,7 @@ "string": "payment_005" }, { - "bytes": "b0671e9f710416be6964cb0023b672517e44f012c08f90a1878a0fe1228ad9a0" + "bytes": "5b3e2101a7e853f8e23f2ea7510cc2e92dbe375a824e6b6cd4d5ef529b964b2a" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -514,7 +514,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "b0671e9f710416be6964cb0023b672517e44f012c08f90a1878a0fe1228ad9a0" + "bytes": "5b3e2101a7e853f8e23f2ea7510cc2e92dbe375a824e6b6cd4d5ef529b964b2a" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json index f9a30e5..8ee8e8d 100644 --- a/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json @@ -175,7 +175,7 @@ "string": "payment_004" }, { - "bytes": "6dbbb6eb28d66f795fac1c029ddfe1ec12c930a7e676e304a81b6650e23246bb" + "bytes": "b1eb2196145f9f7ff97fd8144cb4033ace5bcb88e3a846954aaf73435fcf740d" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -533,7 +533,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "6dbbb6eb28d66f795fac1c029ddfe1ec12c930a7e676e304a81b6650e23246bb" + "bytes": "b1eb2196145f9f7ff97fd8144cb4033ace5bcb88e3a846954aaf73435fcf740d" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json index 6039e33..714b9b5 100644 --- a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json @@ -175,7 +175,7 @@ "string": "pay_auth_test" }, { - "bytes": "5dbd4ea0e25852fa390994f5184e7a9275c16b2de06b96f6cbcf3e453583b384" + "bytes": "115e567e2f5f0b15ee24e4c41ad287567fe161972017c1901ddd01c915825602" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -535,7 +535,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "5dbd4ea0e25852fa390994f5184e7a9275c16b2de06b96f6cbcf3e453583b384" + "bytes": "115e567e2f5f0b15ee24e4c41ad287567fe161972017c1901ddd01c915825602" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json index 4edf768..a19e1a1 100644 --- a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json @@ -175,7 +175,7 @@ "string": "payment_003" }, { - "bytes": "55c3dd450015b46e10fdf1a98be510c95a22661a753e9183248c751ae15cdec9" + "bytes": "6e5a7be2a5e74044e99c71ea8b94e50472593cf73d14298bfd64bb4cda7e031f" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -535,7 +535,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "55c3dd450015b46e10fdf1a98be510c95a22661a753e9183248c751ae15cdec9" + "bytes": "6e5a7be2a5e74044e99c71ea8b94e50472593cf73d14298bfd64bb4cda7e031f" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json index 1c22f9c..d3ffc28 100644 --- a/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json @@ -175,7 +175,7 @@ "string": "payment_002" }, { - "bytes": "8294b589ed5a11fc490dcaaeb7e17c35baf9248620aea6343434823c3fbe0fc0" + "bytes": "e663f18aad088efac467944c680d84b49a3f55c643771b7b800b392a33999598" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -530,7 +530,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "8294b589ed5a11fc490dcaaeb7e17c35baf9248620aea6343434823c3fbe0fc0" + "bytes": "e663f18aad088efac467944c680d84b49a3f55c643771b7b800b392a33999598" } } ] diff --git a/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json b/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json index 950ea0f..12cced7 100644 --- a/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json +++ b/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json @@ -202,7 +202,7 @@ "string": "PAY_01" }, { - "bytes": "83b50608cc7e96a7943e9aa2504614d37076f87849986a70cec42659ef8d5e1d" + "bytes": "c33d557af1b5a6b1f269bf38e53116a204eb734b7b7e3e235fe6cedcd335834f" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" @@ -588,7 +588,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "83b50608cc7e96a7943e9aa2504614d37076f87849986a70cec42659ef8d5e1d" + "bytes": "c33d557af1b5a6b1f269bf38e53116a204eb734b7b7e3e235fe6cedcd335834f" } } ] diff --git a/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json b/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json index f0e830e..e106b5b 100644 --- a/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json +++ b/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json @@ -177,7 +177,7 @@ "string": "PAY_SETTLE" }, { - "bytes": "4d0c91851ab783baec6eb65bd1c6afee47d1a6357775ef1f7f9a30e73758db1e" + "bytes": "6893ac13ca1ccbf847925a4be493d418ee1e2c01fb1110c54e2adf4c6697f832" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" @@ -504,7 +504,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "4d0c91851ab783baec6eb65bd1c6afee47d1a6357775ef1f7f9a30e73758db1e" + "bytes": "6893ac13ca1ccbf847925a4be493d418ee1e2c01fb1110c54e2adf4c6697f832" } } ] diff --git a/fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json b/fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json deleted file mode 100644 index 602ac7c..0000000 --- a/fluxapay/test_snapshots/invoice/test/initialize_sets_admin_and_payment_processor.1.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "generators": { - "address": 3, - "nonce": 0, - "mux_id": 0 - }, - "auth": [ - [], - [], - [], - [] - ], - "ledger": { - "protocol_version": 23, - "sequence_number": 0, - "timestamp": 0, - "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 0, - "min_persistent_entry_ttl": 4096, - "min_temp_entry_ttl": 16, - "max_entry_ttl": 6312000, - "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "durability": "persistent", - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "PaymentProcessor" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "PaymentProcessor" - } - ] - }, - "durability": "persistent", - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent", - "val": { - "contract_instance": { - "executable": { - "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "storage": null - } - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_code": { - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_code": { - "ext": "v0", - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "code": "" - } - }, - "ext": "v0" - }, - 4095 - ] - ] - ] - }, - "events": [] -} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json b/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json deleted file mode 100644 index c451eec..0000000 --- a/fluxapay/test_snapshots/invoice/test/issue_invoice_draft_to_issued_emits_event.1.json +++ /dev/null @@ -1,376 +0,0 @@ -{ - "generators": { - "address": 4, - "nonce": 0, - "mux_id": 0 - }, - "auth": [ - [], - [], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "create_invoice", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "symbol": "INV002" - }, - { - "i128": "50" - }, - { - "symbol": "USDC" - }, - { - "u64": "86400" - } - ] - } - }, - "sub_invocations": [] - } - ] - ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "issue_invoice", - "args": [ - { - "symbol": "INV002" - } - ] - } - }, - "sub_invocations": [] - } - ] - ], - [] - ], - "ledger": { - "protocol_version": 23, - "sequence_number": 0, - "timestamp": 0, - "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 0, - "min_persistent_entry_ttl": 4096, - "min_temp_entry_ttl": 16, - "max_entry_ttl": 6312000, - "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "durability": "persistent", - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Invoice" - }, - { - "symbol": "INV002" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Invoice" - }, - { - "symbol": "INV002" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": "50" - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "symbol": "USDC" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": "86400" - } - }, - { - "key": { - "symbol": "invoice_id" - }, - "val": { - "symbol": "INV002" - } - }, - { - "key": { - "symbol": "merchant_id" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "payment_id" - }, - "val": "void" - }, - { - "key": { - "symbol": "status" - }, - "val": { - "vec": [ - { - "symbol": "Issued" - } - ] - } - } - ] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "PaymentProcessor" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "PaymentProcessor" - } - ] - }, - "durability": "persistent", - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent", - "val": { - "contract_instance": { - "executable": { - "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "storage": null - } - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "801925984706572462" - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "801925984706572462" - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "5541220902715666415" - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "5541220902715666415" - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_code": { - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_code": { - "ext": "v0", - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "code": "" - } - }, - "ext": "v0" - }, - 4095 - ] - ] - ] - }, - "events": [] -} \ No newline at end of file diff --git a/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json b/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json deleted file mode 100644 index 06ad1f8..0000000 --- a/fluxapay/test_snapshots/invoice/test/mark_paid_success_sets_paid_and_payment_id_emits_event.1.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "generators": { - "address": 4, - "nonce": 0, - "mux_id": 0 - }, - "auth": [ - [], - [], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "create_invoice", - "args": [ - { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - }, - { - "symbol": "INV004" - }, - { - "i128": "200" - }, - { - "symbol": "USDC" - }, - { - "u64": "86400" - } - ] - } - }, - "sub_invocations": [] - } - ] - ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "issue_invoice", - "args": [ - { - "symbol": "INV004" - } - ] - } - }, - "sub_invocations": [] - } - ] - ], - [ - [ - "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", - { - "function": { - "contract_fn": { - "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "function_name": "mark_paid", - "args": [ - { - "symbol": "INV004" - }, - { - "symbol": "PAY99" - } - ] - } - }, - "sub_invocations": [] - } - ] - ], - [] - ], - "ledger": { - "protocol_version": 23, - "sequence_number": 0, - "timestamp": 0, - "network_id": "0000000000000000000000000000000000000000000000000000000000000000", - "base_reserve": 0, - "min_persistent_entry_ttl": 4096, - "min_temp_entry_ttl": 16, - "max_entry_ttl": 6312000, - "ledger_entries": [ - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Admin" - } - ] - }, - "durability": "persistent", - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Invoice" - }, - { - "symbol": "INV004" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "Invoice" - }, - { - "symbol": "INV004" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "amount" - }, - "val": { - "i128": "200" - } - }, - { - "key": { - "symbol": "currency" - }, - "val": { - "symbol": "USDC" - } - }, - { - "key": { - "symbol": "due_date" - }, - "val": { - "u64": "86400" - } - }, - { - "key": { - "symbol": "invoice_id" - }, - "val": { - "symbol": "INV004" - } - }, - { - "key": { - "symbol": "merchant_id" - }, - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" - } - }, - { - "key": { - "symbol": "payment_id" - }, - "val": { - "symbol": "PAY99" - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "vec": [ - { - "symbol": "Paid" - } - ] - } - } - ] - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "PaymentProcessor" - } - ] - }, - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": { - "vec": [ - { - "symbol": "PaymentProcessor" - } - ] - }, - "durability": "persistent", - "val": { - "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", - "key": "ledger_key_contract_instance", - "durability": "persistent", - "val": { - "contract_instance": { - "executable": { - "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - }, - "storage": null - } - } - } - }, - "ext": "v0" - }, - 4095 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", - "key": { - "ledger_key_nonce": { - "nonce": "1033654523790656264" - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", - "key": { - "ledger_key_nonce": { - "nonce": "1033654523790656264" - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "801925984706572462" - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "801925984706572462" - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_data": { - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "5541220902715666415" - } - }, - "durability": "temporary" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", - "key": { - "ledger_key_nonce": { - "nonce": "5541220902715666415" - } - }, - "durability": "temporary", - "val": "void" - } - }, - "ext": "v0" - }, - 6311999 - ] - ], - [ - { - "contract_code": { - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" - } - }, - [ - { - "last_modified_ledger_seq": 0, - "data": { - "contract_code": { - "ext": "v0", - "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "code": "" - } - }, - "ext": "v0" - }, - 4095 - ] - ] - ] - }, - "events": [] -} \ No newline at end of file diff --git a/fluxapay/test_snapshots/test/test_verify_payment_success.1.json b/fluxapay/test_snapshots/test/test_verify_payment_success.1.json index 6b1418d..39fb42f 100644 --- a/fluxapay/test_snapshots/test/test_verify_payment_success.1.json +++ b/fluxapay/test_snapshots/test/test_verify_payment_success.1.json @@ -107,7 +107,7 @@ "string": "payment_123" }, { - "bytes": "17a93d01153c1351d9579973e72920e9167b8ecb562714a243f5c3b6b6352e1b" + "bytes": "9de9a950340d9bb03178d4d08947316672dd14b8c0d8051d08b9017c67e36f04" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" @@ -348,7 +348,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "17a93d01153c1351d9579973e72920e9167b8ecb562714a243f5c3b6b6352e1b" + "bytes": "9de9a950340d9bb03178d4d08947316672dd14b8c0d8051d08b9017c67e36f04" } } ] From dac7382e847cce13a089d10b1a5b58cd5d38b288 Mon Sep 17 00:00:00 2001 From: jerrybarry Date: Sat, 28 Mar 2026 10:43:30 +0100 Subject: [PATCH 3/3] chore: resolve merge conflicts with main --- .../test_snapshots/dispute_test/test_create_dispute.1.json | 4 ++-- .../dispute_test/test_get_payment_disputes.1.json | 4 ++-- .../test_snapshots/dispute_test/test_reject_dispute.1.json | 4 ++-- .../test_resolve_dispute_with_only_operator_auth.1.json | 4 ++-- .../dispute_test/test_resolve_dispute_with_refund.1.json | 4 ++-- .../test_snapshots/dispute_test/test_review_dispute.1.json | 4 ++-- .../integration_test/test_happy_path_flow.1.json | 4 ++-- .../integration_test/test_settlement_path.1.json | 4 ++-- .../test_snapshots/test/test_verify_payment_success.1.json | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json index f62c8f7..c64c276 100644 --- a/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_create_dispute.1.json @@ -150,7 +150,7 @@ "string": "payment_001" }, { - "bytes": "7a3adbb785239d195ace9e7a7e273920bfa43173c3bd2fdb5b0e4573f6283dad" + "bytes": "bcaa0b7bc66890683c144b0e063f2b8b3bf65a278420bfff36a695982266b29f" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -483,7 +483,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "7a3adbb785239d195ace9e7a7e273920bfa43173c3bd2fdb5b0e4573f6283dad" + "bytes": "bcaa0b7bc66890683c144b0e063f2b8b3bf65a278420bfff36a695982266b29f" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json b/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json index 0dc6af1..13b625e 100644 --- a/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_get_payment_disputes.1.json @@ -150,7 +150,7 @@ "string": "payment_005" }, { - "bytes": "5b3e2101a7e853f8e23f2ea7510cc2e92dbe375a824e6b6cd4d5ef529b964b2a" + "bytes": "8c87bc1f48c8e69809855a2093e23366aac82a451e5678be7f389b3a5e1d824c" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -514,7 +514,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "5b3e2101a7e853f8e23f2ea7510cc2e92dbe375a824e6b6cd4d5ef529b964b2a" + "bytes": "8c87bc1f48c8e69809855a2093e23366aac82a451e5678be7f389b3a5e1d824c" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json index 8ee8e8d..cdb4b48 100644 --- a/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_reject_dispute.1.json @@ -175,7 +175,7 @@ "string": "payment_004" }, { - "bytes": "b1eb2196145f9f7ff97fd8144cb4033ace5bcb88e3a846954aaf73435fcf740d" + "bytes": "09a99bcfd0c2f4b48beef0d3403543318f999c7838e960b292c74a25447a6a0c" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -533,7 +533,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "b1eb2196145f9f7ff97fd8144cb4033ace5bcb88e3a846954aaf73435fcf740d" + "bytes": "09a99bcfd0c2f4b48beef0d3403543318f999c7838e960b292c74a25447a6a0c" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json index 714b9b5..53e76e3 100644 --- a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_only_operator_auth.1.json @@ -175,7 +175,7 @@ "string": "pay_auth_test" }, { - "bytes": "115e567e2f5f0b15ee24e4c41ad287567fe161972017c1901ddd01c915825602" + "bytes": "b1366dec60d1ed1c5c501b1c93604bbb4abb983c5a2b79a102709a3910a0b265" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -535,7 +535,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "115e567e2f5f0b15ee24e4c41ad287567fe161972017c1901ddd01c915825602" + "bytes": "b1366dec60d1ed1c5c501b1c93604bbb4abb983c5a2b79a102709a3910a0b265" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json index a19e1a1..96b3726 100644 --- a/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_resolve_dispute_with_refund.1.json @@ -175,7 +175,7 @@ "string": "payment_003" }, { - "bytes": "6e5a7be2a5e74044e99c71ea8b94e50472593cf73d14298bfd64bb4cda7e031f" + "bytes": "440f0cdb4dd195e018894201077fe9a0b6688a6c5aeed3ba08e9d11ddbd4a8c7" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -535,7 +535,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "6e5a7be2a5e74044e99c71ea8b94e50472593cf73d14298bfd64bb4cda7e031f" + "bytes": "440f0cdb4dd195e018894201077fe9a0b6688a6c5aeed3ba08e9d11ddbd4a8c7" } } ] diff --git a/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json b/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json index d3ffc28..7636f3a 100644 --- a/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json +++ b/fluxapay/test_snapshots/dispute_test/test_review_dispute.1.json @@ -175,7 +175,7 @@ "string": "payment_002" }, { - "bytes": "e663f18aad088efac467944c680d84b49a3f55c643771b7b800b392a33999598" + "bytes": "b0b566f4359e57153b0a9c589877cddba12fd74c511f0208fa25273644b4354c" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" @@ -530,7 +530,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "e663f18aad088efac467944c680d84b49a3f55c643771b7b800b392a33999598" + "bytes": "b0b566f4359e57153b0a9c589877cddba12fd74c511f0208fa25273644b4354c" } } ] diff --git a/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json b/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json index 12cced7..0ab0ec2 100644 --- a/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json +++ b/fluxapay/test_snapshots/integration_test/test_happy_path_flow.1.json @@ -202,7 +202,7 @@ "string": "PAY_01" }, { - "bytes": "c33d557af1b5a6b1f269bf38e53116a204eb734b7b7e3e235fe6cedcd335834f" + "bytes": "c57dbd6d0edd5706573af5f861ff38ea0047565f19fd4178cc6fb2915bcb15a0" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" @@ -588,7 +588,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "c33d557af1b5a6b1f269bf38e53116a204eb734b7b7e3e235fe6cedcd335834f" + "bytes": "c57dbd6d0edd5706573af5f861ff38ea0047565f19fd4178cc6fb2915bcb15a0" } } ] diff --git a/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json b/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json index e106b5b..bbb9a4e 100644 --- a/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json +++ b/fluxapay/test_snapshots/integration_test/test_settlement_path.1.json @@ -177,7 +177,7 @@ "string": "PAY_SETTLE" }, { - "bytes": "6893ac13ca1ccbf847925a4be493d418ee1e2c01fb1110c54e2adf4c6697f832" + "bytes": "64b2b01f13b66c4b884dd65ced9f450742c7cc75be5c8c6f107b463e75faed09" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" @@ -504,7 +504,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "6893ac13ca1ccbf847925a4be493d418ee1e2c01fb1110c54e2adf4c6697f832" + "bytes": "64b2b01f13b66c4b884dd65ced9f450742c7cc75be5c8c6f107b463e75faed09" } } ] diff --git a/fluxapay/test_snapshots/test/test_verify_payment_success.1.json b/fluxapay/test_snapshots/test/test_verify_payment_success.1.json index 39fb42f..b0e726b 100644 --- a/fluxapay/test_snapshots/test/test_verify_payment_success.1.json +++ b/fluxapay/test_snapshots/test/test_verify_payment_success.1.json @@ -107,7 +107,7 @@ "string": "payment_123" }, { - "bytes": "9de9a950340d9bb03178d4d08947316672dd14b8c0d8051d08b9017c67e36f04" + "bytes": "cac2b06768523b2c1571c5cded172032fed543dac5e641d4d0f877267c0f1f20" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" @@ -348,7 +348,7 @@ "symbol": "transaction_hash" }, "val": { - "bytes": "9de9a950340d9bb03178d4d08947316672dd14b8c0d8051d08b9017c67e36f04" + "bytes": "cac2b06768523b2c1571c5cded172032fed543dac5e641d4d0f877267c0f1f20" } } ]