**Description:** Verify that a submitted transaction hash is valid and matches the expected donation details. **Tasks:** - [ ] Create `src/services/donation_verifier.rs` - [ ] Implement `verify_donation_tx(tx_hash: &str, campaign_id: u64, expected_amount: i128) -> Result<VerificationResult, StellarAidError>` - [ ] Fetch the transaction from Horizon using `HorizonClient::get_transaction()` - [ ] Parse transaction envelope XDR to extract the Soroban invocation details - [ ] Check that the invoked contract function is `donate` with correct arguments **Acceptance Criteria:** Verification returns `true` only for valid `donate` invocations on the correct campaign with the correct amount. ---
Description:
Verify that a submitted transaction hash is valid and matches the expected donation details.
Tasks:
src/services/donation_verifier.rsverify_donation_tx(tx_hash: &str, campaign_id: u64, expected_amount: i128) -> Result<VerificationResult, StellarAidError>HorizonClient::get_transaction()donatewith correct argumentsAcceptance Criteria:
Verification returns
trueonly for validdonateinvocations on the correct campaign with the correct amount.